我正试图为我在Azure DevOps上托管的一个PHP项目建立一个构建管道。长话短说,我需要安装sqlsrv扩展才能让我的构建正常工作。我如何配置我的azure-管线. can脚本来包含它呢?
下面是我当前的脚本:
trigger:
- master
pool:
vmImage: 'ubuntu-latest'
variables:
phpVersion: 7.3
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
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'.发布于 2019-09-11 12:14:26
梁梅林的回答给了我很大的启发,但我仍然很难让SQLSRV在composer中被接受。
首先,我不得不修改一些路径,比如David提到的。第二个问题是,我试图修改和重新启动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'发布于 2019-08-01 04:07:37
我如何配置我的azure-管线. can脚本来包含它呢?
如前所述,您首先需要安装带有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。
发布于 2020-05-12 07:29:47
对于那些正在寻找运行yaml文件的人来说,使用sqlsrv扩展名执行php单元测试。选择phpVersion 7.4很重要。因为最新的sqlsrv模块是用一个比php7.3更新的php编译的。
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'https://stackoverflow.com/questions/57299372
复制相似问题