1 回答

TA貢獻(xiàn)1842條經(jīng)驗(yàn) 獲得超22個(gè)贊
對(duì)于我執(zhí)行的測(cè)試,我執(zhí)行了以下操作:
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();
?>
運(yùn)行命令(我將圖像命名為 pdo-test):
docker run --name=pdo-test -p 8080:80 -d pdo-test
容器啟動(dòng)后,我導(dǎo)航到 HTTP://localhost:8080/index.php 并看到 PDO 驅(qū)動(dòng)程序已加載:
請(qǐng)注意,我的 Dockerfile 和你的 Dockerfile 之間的唯一區(qū)別是,我將 PHP 頁(yè)面復(fù)制到其中,/var/www/html并添加了一個(gè)在容器運(yùn)行時(shí)啟動(dòng) Apache 的命令。
您應(yīng)該檢查的事項(xiàng):
您安裝的卷是否正確./php:/var/www/html
由于您沒(méi)有執(zhí)行 Apache 的命令,請(qǐng)確認(rèn)它在容器中正常啟動(dòng)。我測(cè)試了這兩種方法并且每次都會(huì)啟動(dòng),但是您應(yīng)該猛擊容器并確保 Apache 按您的預(yù)期運(yùn)行。
編輯我從容器復(fù)制了 php.ini 文件之一
docker cp pdo-test:usr/local/etc/php/php.ini-production php.ini
并取消注釋 PDO 驅(qū)動(dòng)程序:
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
然后我重建了容器,復(fù)制更新后的 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"]
我現(xiàn)在可以看到 php.ini 文件phpinfo()
- 1 回答
- 0 關(guān)注
- 144 瀏覽
添加回答
舉報(bào)