docker-compose – 无法连接到MySQL数据库
TL; DR:WordPress无法使用下面的docker-composeconfiguration连接到MySQL。 build立数据库连接时出错。 为什么?
我正在使用以下docker-compose.yml
文件来设置LEMP开发环境。
docker-compose.yml
version: '3' services: nginx: image: nginx ports: - '8080:80' volumes: - ./nginx/config/default.conf:/etc/nginx/conf.d/default.conf - ../wordpress:/var/www/wordpress - ./nginx/log:/var/log/nginx depends_on: - php php: image: php:fpm ports: - 9000:9000 volumes: - ../wordpress:/var/www/wordpress depends_on: - mysql mysql: image: mysql ports: - "3306:3306" environment: MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: ado MYSQL_USER: ado MYSQL_PASSWORD: secret volumes: - ./mysql/data:/var/lib/mysql
(我也手动做下面的安装php-mysql
)
// inside php (`docker-compose exec php sh`) docker-php-ext-install mysqli // back on my local machine docker restart <php's container id>
注意:我尝试使用MySQL的主机localhost
和MySQL。
好的。 得到它了。
在手动创buildmysql
服务中的数据库之后,我添加了MySQL环境variables。
MYSQL_ROOT_PASSWORD: secret MYSQL_DATABASE: ado MYSQL_USER: ado MYSQL_PASSWORD: secret
我不是100%确定为什么,但是删除./mysql/data
MySQL数据之后, ./mysql/data
docker-compose down
然后./mysql/data
docker-compose down
再加docker-compose up -d
(并且用./mysql/data
docker-php-ext-install mysqli
在PHP服务里面),一切正常。
然后,WordPress的安装屏幕出现了。 安装后…….我有一个空白的白色屏幕!
那么,那是因为我的WordPress文件没有包含默认主题。
去/wp-admin
和激活一个主题后,一切终于…工作。
为了完整,这里是我的nginxconfiguration位于./nginx/config/default.conf
:
server { listen 80 default_server; listen [::]:80 default_server; root /var/www/wordpress; index index.php index.html; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location ~ /\. { deny all; } location ~* /(?:uploads|files)/.*\.php$ { deny all; } location / { try_files $uri $uri/ /index.php?$args; } rewrite /wp-admin$ $scheme://$host$uri/ permanent; location ~ \.php$ { include /etc/nginx/fastcgi_params; fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; } }