如何在php docker容器上安装/启用pdo-odbc驱动程序? [英] How to install/enable pdo-odbc driver on a php docker container?

查看:662
本文介绍了如何在php docker容器上安装/启用pdo-odbc驱动程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前无法为我的php应用程序编写Dockerfile. 我的Dockerfile可以工作,但是缺少我需要连接到MS SQL Server数据库的pdo-odbc驱动程序.这是我当前的Dockerfile:

I am currently having trouble writing a Dockerfile for my php application. My Dockerfile works but lacks the pdo-odbc driver I need to connect to an MS SQL Server database. Here is my current Dockerfile:

FROM php:apache
RUN apt-get install && \
    apt-get update && \
    apt-get install tdsodbc unixodbc unixodbc-dev -y && \
    docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr && \
    docker-php-ext-enable pdo_odbc && \
    a2enmod rewrite && \
    service apache2 restart && \
    sed -ri -e 's!/var/www/html!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/sites-available/*.conf && \
    sed -ri -e 's!/var/www/!${APACHE_DOCUMENT_ROOT}!g' /etc/apache2/apache2.conf /etc/apache2/conf-available/*.conf && \
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \
    php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" && \
    php composer-setup.php && \
    php -r "unlink('composer-setup.php');" && \
    mv composer.phar /usr/local/bin/composer
COPY php.ini /usr/local/etc/php/
COPY . /var/www/html/

脚本在我尝试启用扩展的第六行崩溃:

The script crashes at the 6th line where I try to enable the extension:

error: /usr/local/lib/php/extensions/no-debug-non-zts-20170718/pdo_odbc does not exist

usage: /usr/local/bin/docker-php-ext-enable [options] module-name [module-name ...]
   ie: /usr/local/bin/docker-php-ext-enable gd mysqli
       /usr/local/bin/docker-php-ext-enable pdo pdo_mysql
       /usr/local/bin/docker-php-ext-enable --ini-name 0-apc.ini apcu apc

Possible values for module-name:

opcache.so sodium.so

Some of the above modules are already compiled into PHP; please check
the output of "php -i" to see which modules are already loaded.

我也尝试使用docker-php-ext-install但仍然无法正常工作.我们如何安装或启用此扩展程序?

I also tried to use docker-php-ext-install but still didn't work. How do we do to install or enable this extension?

推荐答案

这对我有用:

RUN apt-get install unixodbc unixodbc-dev -y \
 && docker-php-ext-configure pdo_odbc --with-pdo-odbc=unixODBC,/usr \
 && docker-php-ext-install pdo_odbc

这篇关于如何在php docker容器上安装/启用pdo-odbc驱动程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆