首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure DevOps PHP构建需要ext-sqlsrv

Azure DevOps PHP构建需要ext-sqlsrv
EN

Stack Overflow用户
提问于 2019-07-31 21:59:41
回答 3查看 1K关注 0票数 1

我正试图为我在Azure DevOps上托管的一个PHP项目建立一个构建管道。长话短说,我需要安装sqlsrv扩展才能让我的构建正常工作。我如何配置我的azure-管线. can脚本来包含它呢?

下面是我当前的脚本:

代码语言:javascript
复制
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'

这是我在构建日志中遇到的错误:

代码语言:javascript
复制
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'.
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-09-11 12:14:26

梁梅林的回答给了我很大的启发,但我仍然很难让SQLSRV在composer中被接受。

首先,我不得不修改一些路径,比如David提到的。第二个问题是,我试图修改和重新启动FPM。关键是删除重新启动部分并修改CLI,而不是FPM。

试试这个,对我有用:

代码语言:javascript
复制
- 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'
票数 1
EN

Stack Overflow用户

发布于 2019-08-01 04:07:37

我如何配置我的azure-管线. can脚本来包含它呢?

如前所述,您首先需要安装带有PHP Extension Community Library(pecl)PEAR。在Use PHP version $(phpVersion)任务之前,请尝试运行下面的脚本:

代码语言:javascript
复制
- 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。

票数 1
EN

Stack Overflow用户

发布于 2020-05-12 07:29:47

对于那些正在寻找运行yaml文件的人来说,使用sqlsrv扩展名执行php单元测试。选择phpVersion 7.4很重要。因为最新的sqlsrv模块是用一个比php7.3更新的php编译的。

代码语言:javascript
复制
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'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57299372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档