微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为PHP docker映像安装/配置SQL Server PDO驱动程序

我有一个简单的docker文件,如下所示:

FROM PHP:7.2-apache
copY src/ /var/www/html/

通常,为了安装用于Mongo或MysqL连接的驱动程序,我可以通过将以下内容添加到dockerfile中来实现:

docker-PHP-ext-install mongo

在这种情况下,我想将PHP应用程序连接到sql Server数据库,并且我了解为PHP 7.x做到这一点的最佳方法是使用PDO驱动程序,但是我不熟悉如何在dockerfile中配置它.

我试过进行pecl安装,例如添加

RUN pecl install sqlsrv pdo_sqlsrv

但是,这失败了,并且出现了一些错误,这些错误似乎并没有向我指出正确的方向.

我只是在寻找一种简单的方法来在dockerfile或使用docker run中完成此操作.

有关更多信息,这是我遇到的错误

/tmp/pear/temp/sqlsrv/shared/xplat.h:30:17: Fatal error: sql.h: No such file or directory
 #include <sql.h>
                 ^
compilation terminated.
Makefile:194: recipe for target 'conn.lo' Failed
make: *** [conn.lo] Error 1
ERROR: `make' Failed
The command '/bin/sh -c pecl install sqlsrv pdo_sqlsrv     && docker-PHP-ext-enable pdo_sqlsrv' returned a non-zero code: 1

谢谢大家

解决方法:

你得到答案了吗?我按照以下步骤进行操作. (unixodbc-dev软件包应该使您摆脱了pecl的安装.)

在Docker文件中:

RUN apt-get -y install unixodbc-dev
RUN pecl install sqlsrv pdo_sqlsrv

然后,您必须对PHP.ini添加一些更改以启用sqlserver.

获取PHP.ini的本地副本并添加以下行:

extension=pdo_sqlsrv.so
extension=sqlsrv.so

然后将本地PHP.ini复制到docker映像中(我的文件位于本地“ config文件夹中).

在Docker文件中:

copY config/PHP.ini /usr/local/etc/PHP/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐