我正在嘗試使用帶有 apache、php fpm、symfony、mysql db 容器的 docker 創建 symfony 5.4 專案。但實際上我沒有成功創建我的資料庫,我收到了這個錯誤:
In AbstractMySQLDriver.php line 128:
An exception occurred in driver: could not find driver
In Exception.php line 18:
could not find driver
In PDOConnection.php line 40:
could not find driver
這個學說 conf : config/packages/doctrine.yaml:
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
# IMPORTANT: You MUST configure your server version,
# either here or in the DATABASE_URL env var (see .env file)
#server_version: '13'
orm:
auto_generate_proxy_classes: true
naming_strategy: doctrine.orm.naming_strategy.underscore_number_aware
auto_mapping: true
mappings:
App:
is_bundle: false
dir: '%kernel.project_dir%/src/Entity'
prefix: 'App\Entity'
alias: App
這是激活的擴展:
;extension=bz2
extension=curl
;extension=ffi
;extension=ftp
;extension=fileinfo
extension=gd2
;extension=gettext
;extension=gmp
;extension=intl
;extension=imap
;extension=ldap
extension=mbstring
;extension=exif ; Must be after mbstring as it depends on it
extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
;extension=pdo_oci
;extension=pdo_odbc
;extension=pdo_pgsql
;extension=pdo_sqlite
;extension=pgsql
;extension=shmop
; The MIBS data available in the PHP distribution must be installed.
; See http://www.php.net/manual/en/snmp.installation.php
;extension=snmp
;extension=soap
extension=sockets
;extension=sodium
extension=sqlite3
;extension=tidy
;extension=xmlrpc
這是我的 Docker-compose-stack-file:
version: '3.8'
services:
myApp-back-apache:
image: localhost:5000/apache
working_dir: /var/www
volumes:
- type: bind
source: myApp-back
target: /var/www
ports:
- 8081:80
environment:
HTTPD_FPM_HOST: myApp-back-fpm
HTTPD_FPM_PORT: 9000
myApp-back-fpm:
image: php:7.4-fpm
working_dir: /var/www/html
volumes:
- type: bind
source: myApp-back
target: /var/www/html
myApp-back-db:
image: "mariadb:10.6.5"
environment:
MYSQL_ROOT_USER: root
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: root
volumes:
- myApp-back-db:/var/lib/mysql
ports:
- "3309:3306"
volumes:
myApp-back-db:
external: true
和我的檔案 .env:
DATABASE_URL="mysql://root:[email protected]:3309/db_name?serverVersion=5.7&charset=utf8mb4"
uj5u.com熱心網友回復:
你確定你是
php -m在 docker 容器而不是你的主機上運行嗎?(很常見的錯誤)在您的 symfony(fpm) docker 容器中
127.0.0.1并localhost決議為容器本身,而不是在埠 3309 上暴露資料庫的主機。嘗試將您的更改DATABASE_URL為mysql://root:root@myApp-back-db:3306.host.docker.internal此外,如果您在 Mac 或 Windows 上,您可以嘗試將 url 設定為。為 fpm 創建一個 docker 檔案并安裝 mysql ext:
碼頭工人作曲家:
myApp-back-fpm:
build:
context: .
working_dir: /var/www/html
volumes:
- type: bind
source: myApp-back
target: /var/www/html
Dockerfile:
FROM php:7.4-fpm
RUN docker-php-ext-install pdo pdo_mysql;
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/457921.html
