1 回答

TA贡献1842条经验 获得超21个赞
对于我执行的测试,我执行了以下操作:
Dockerfile -
FROM php:7.4-apache
RUN apt-get update && apt-get upgrade -y
RUN docker-php-ext-install pdo pdo_mysql
COPY $PWD/index.php /var/www/html
EXPOSE 80
# start Apache2 on image start
CMD ["/usr/sbin/apache2ctl","-DFOREGROUND"]
索引.php
<?php
phpinfo();
?>
运行命令(我将图像命名为 pdo-test):
docker run --name=pdo-test -p 8080:80 -d pdo-test
容器启动后,我导航到 HTTP://localhost:8080/index.php 并看到 PDO 驱动程序已加载:
请注意,我的 Dockerfile 和你的 Dockerfile 之间的唯一区别是,我将 PHP 页面复制到其中,/var/www/html并添加了一个在容器运行时启动 Apache 的命令。
您应该检查的事项:
您安装的卷是否正确./php:/var/www/html
由于您没有执行 Apache 的命令,请确认它在容器中正常启动。我测试了这两种方法并且每次都会启动,但是您应该猛击容器并确保 Apache 按您的预期运行。
编辑我从容器复制了 php.ini 文件之一
docker cp pdo-test:usr/local/etc/php/php.ini-production php.ini
并取消注释 PDO 驱动程序:
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
然后我重建了容器,复制更新后的 php.ini 文件:
FROM php:7.4-apache
RUN apt-get update && apt-get upgrade -y
RUN docker-php-ext-install pdo pdo_mysql
COPY $PWD/index.php /var/www/html
COPY $PWD/php.ini /usr/local/etc/php
EXPOSE 80
# start Apache2 on image start
# CMD ["/usr/sbin/apache2ctl","-DFOREGROUND"]
我现在可以看到 php.ini 文件phpinfo()
- 1 回答
- 0 关注
- 112 浏览
添加回答
举报