TL; DR:WordPress无法使用以下docker-compose配置连接到MySQL。建立数据库连接时出错。为什么?
我正在使用以下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>
注意:我尝试同时使用localhost
&和mysql
作为MySQL的主机。
好的。得到它了。
在mysql
服务内部手动创建数据库后,我添加了MySQL环境变量。
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: ado
MYSQL_USER: ado
MYSQL_PASSWORD: secret
我不是100%知道为什么,但是在删除MySQL的数据后./mysql/data
,docker-compose down
再进行docker-compose up -d
一次操作(然后docker-php-ext-install mysqli
在PHP服务内部安装php-mysqli ),一切正常。
然后,出现WordPress安装屏幕。安装后............我得到了一个空白的白屏!
好吧,这是因为我的WordPress文件未包含默认主题。
在进入/wp-admin
并激活了主题之后,一切都终于成功了。
为了完整起见,这是我的nginx配置位于./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;
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句