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'

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。

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'
- 3 回答
- 0 關注
- 204 瀏覽
添加回答
舉報