亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

需要 ext-sqlsrv 的 Azure DevOps PHP 構建

需要 ext-sqlsrv 的 Azure DevOps PHP 構建

PHP
慕斯709654 2021-11-05 16:18:16
我正在嘗試為我在 Azure DevOps 上托管的 PHP 項目構建一個構建管道。長話短說,我需要為我的構建安裝 sqlsrv PHP 擴展。如何配置我的 azure-pipelines.yml 腳本以包含它?這是我當前的腳本:trigger:- masterpool:  vmImage: 'ubuntu-latest'variables:  phpVersion: 7.3steps:- script: |    sudo update-alternatives --set php /usr/bin/php$(phpVersion)    sudo update-alternatives --set phar /usr/bin/phar$(phpVersion)    sudo update-alternatives --set phpdbg /usr/bin/phpdbg$(phpVersion)    sudo update-alternatives --set php-cgi /usr/bin/php-cgi$(phpVersion)    sudo update-alternatives --set phar.phar /usr/bin/phar.phar$(phpVersion)    php -version  displayName: 'Use PHP version $(phpVersion)'- script: composer install --no-interaction --prefer-dist  displayName: 'composer install'這是我在構建日志中得到的錯誤:Your requirements could not be resolved to an installable set of packages.Problem 1- The requested PHP extension ext-sqlsrv * is missing from your system. Install or enable PHP's sqlsrv extension.##[error]Bash exited with code '2'.
查看完整描述

3 回答

?
慕沐林林

TA貢獻2016條經驗 獲得超9個贊

Merlin Liang 的回答對我來說是一個很大的啟發,但我仍然努力讓 SQLSRV 被 Composer 接受。


首先,我必須修改一些像 David Legatt 提到的路徑。第二個問題是我試圖修改并重新啟動 FPM。關鍵是刪除重啟部分并修改 CLI,而不是 FPM。


試試這個,對我有用:


- script: sudo apt-get update

  displayName: 'Update apt package tool'


- script: |

    curl -s https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

    sudo bash -c "curl -s https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list"

    sudo ACCEPT_EULA=Y apt-get -y install msodbcsql17 mssql-tools

    sudo apt-get -y install unixodbc-dev    

  displayName: 'SqlSrv prerequisites install'


- script: |

    sudo apt-get -y install gcc g++ make autoconf libc-dev pkg-config

    sudo apt-get install php-pear php-dev

    sudo pecl config-set php_ini /etc/php/7.3/fpm/php.ini

  displayName: 'PECL install'


- script: |

    sudo pecl install sqlsrv

    sudo pecl install pdo_sqlsrv    

  displayName: 'SqlSrv extension install'


- script: |

    sudo bash -c "echo extension=/usr/lib/php/20180731/sqlsrv.so > /etc/php/7.3/cli/conf.d/sqlsrv.ini"

    sudo bash -c "echo extension=/usr/lib/php/20180731/pdo_sqlsrv.so > /etc/php/7.3/cli/conf.d/pdo_sqlsrv.ini"    

  displayName: 'SQLSRV modify ini files'


查看完整回答
反對 回復 2021-11-05
?
繁花不似錦

TA貢獻1851條經驗 獲得超4個贊

如何配置我的 azure-pipelines.yml 腳本以包含它?


作為atymic說,你需要安裝PHP Extension Community Library(pecl)有PEAR第一。請嘗試在Use PHP version $(phpVersion)任務之前運行以下腳本:


- script: |

    curl -s https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

    sudo bash -c "curl -s https://packages.microsoft.com/config/ubuntu/16.04/prod.list > /etc/apt/sources.list.d/mssql-release.list"

    sudo apt-get update

    sudo ACCEPT_EULA=Y apt-get -y install msodbcsql17 mssql-tools

    sudo apt-get -y install unixodbc-dev


- script: |

    sudo apt-get -y install gcc g++ make autoconf libc-dev pkg-config

    sudo apt-get install php-pear php-dev

    sudo pecl install sqlsrv

    sudo pecl install pdo_sqlsrv



- script: |

    sudo bash -c "echo extension=sqlsrv.so > /etc/php7.X-sp/conf.d/sqlsrv.ini"

    sudo bash -c "echo extension=pdo_sqlsrv.so > /etc/php7.X-sp/conf.d/pdo_sqlsrv.ini"

    sudo service php7.X-fpm-sp restart

第一個腳本用于安裝先決條件sqlsrv。第二個用于安裝擴展。然后,一旦安裝,運行第三個腳本任務來為這個擴展創建配置文件,并重新啟動你的 PHP。


查看完整回答
反對 回復 2021-11-05
?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

對于那些正在尋找正在運行的 yaml 文件來執行帶有 sqlsrv 擴展名的 php 單元測試的人。選擇 phpVersion 7.4 很重要。因為最新的 sqlsrv 模塊是用比 php 7.3 更新的 php api 編譯的。


stages:

- stage: Build

  displayName: Build stage

  variables:

    phpVersion: '7.4'

  jobs:

  - job: BuildJob

    pool:

      vmImage: $(vmImageName)

    steps:

    - script: |

        sudo update-alternatives --set php /usr/bin/php$(phpVersion)

        sudo update-alternatives --set phar /usr/bin/phar$(phpVersion)

        sudo update-alternatives --set phpdbg /usr/bin/phpdbg$(phpVersion)

        sudo update-alternatives --set php-cgi /usr/bin/php-cgi$(phpVersion)

        sudo update-alternatives --set phar.phar /usr/bin/phar.phar$(phpVersion)

        php -version

      workingDirectory: $(rootFolder)

      displayName: 'Use PHP version $(phpVersion)'


    - script: php -i | grep "Loaded Configuration File"

      workingDirectory: $(rootFolder)

      displayName: 'Get Ini location'


    - script: composer install --no-interaction --prefer-dist

      workingDirectory: $(rootFolder)

      displayName: 'Composer install'


    - script: sudo apt-get update

      displayName: 'Update apt package tool'


    - script: |

        curl -s https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -

        sudo bash -c "curl -s https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list"

        sudo ACCEPT_EULA=Y apt-get -y install msodbcsql17 mssql-tools

        sudo apt-get -y install unixodbc-dev    

      displayName: 'SqlSrv prerequisites install'


    - script: |

        sudo apt-get -y install gcc g++ make autoconf libc-dev pkg-config

        sudo apt-get install php-pear php-dev

        sudo pecl config-set php_ini /etc/php/7.4/fpm/php.ini

      displayName: 'PECL install'


    - script: |

        sudo pecl install sqlsrv

        sudo pecl install pdo_sqlsrv    

      displayName: 'SqlSrv extension install'


    - script: |

        sudo bash -c "echo extension=/usr/lib/php/20190902/sqlsrv.so > /etc/php/7.4/cli/conf.d/99-sqlsrv.ini"

        sudo bash -c "echo extension=/usr/lib/php/20190902/pdo_sqlsrv.so > /etc/php/7.4/cli/conf.d/99-sqlsrv.ini"    

      displayName: 'SQLSRV modify ini files'


    - script: vendor/bin/phpunit

      workingDirectory: $(rootFolder)

      displayName: 'Run PHP tests with phpunit'


查看完整回答
反對 回復 2021-11-05
  • 3 回答
  • 0 關注
  • 204 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號