亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

找不到 docker-compose pdo-mysql 驅動程序

找不到 docker-compose pdo-mysql 驅動程序

PHP
12345678_0001 2023-10-15 17:26:40
我正在嘗試 Dockerize 我的項目(PHP MYSQL 和 PDO)。盡管我添加了腳本來將擴展安裝到我的 Dockerfile 中,并且每次構建時都會安裝它們,但我仍然收到:“找不到驅動程序”。我檢查了一下phpinfo(),司機不在。我刪除了所有從頭開始構建的圖像和容器。相同的結果。有任何想法嗎?在我的 docker 文件中,我有以下內容:FROM php:7.4-apacheRUN apt-get update && apt-get upgrade -yRUN docker-php-ext-install pdo pdo_mysql EXPOSE 80和我的 docker-compose.yaml 文件:version: '3.3'services:  web:    build:      context: ./php      dockerfile: Dockerfile    container_name: php74    depends_on:      - db    links:      - db    volumes:      - ./php:/var/www/html/    ports:      - 8008:80  db:     container_name: mysql8     command: --default-authentication-plugin=mysql_native_password     image: mysql:latest     restart: always     environment:       MYSQL_ROOT_PASSWORD: root       MYSQL_DATABASE: realDE       MYSQL_USER: khaldoun       MYSQL_PASSWORD: password     ports:       - 6033:3306
查看完整描述

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 驅動程序已加載:

https://img1.sycdn.imooc.com/652bb0940001d7a319350755.jpg

請注意,我的 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()

https://img1.sycdn.imooc.com/652bb0a000013c0011060182.jpg

查看完整回答
反對 回復 2023-10-15
  • 1 回答
  • 0 關注
  • 136 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號