Я следую этому руководству , чтобы получить настройку docker-compose с несколькими установками Wordpress.
Когда я GET /
на webserver
IP-адресе, я получаю сообщение «Файл не найден».
В журналах докера я вижу:
wordpress-myclient | 172.20.0.4 - 01/Jul/2019:20:28:37 +0000 "GET /index.php" 404
webserver | 2019/07/01 20:28:37 [error] 7#7: *23 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: MY_HOME_IP, server: , request: "GET / HTTP/1.1", upstream: "fastcgi://172.20.0.3:9000", host: "THE_SERVER_PUBLIC_IP"
webserver | MY_HOME_IP - - [01/Jul/2019:20:28:37 +0000] "GET / HTTP/1.1" 404 27 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1 Safari/605.1.15" "-"
Основной причиной является wordpress-myclient
с неправильно настроенным php-fpm. Я искал документацию для изображения докера Wordpress безрезультатно. Больше ничего не вижу в логах.
Любая помощь приветствуется. Заранее спасибо.
докер-compose.yml:
version: '3'
services:
db:
image: mariadb/server:latest
container_name: db
restart: unless-stopped
env_file: .env
volumes:
- dbdata:/var/lib/mysql
- ./mysql/init:/docker-entrypoint-initdb.d
command: '--default-authentication-plugin=mysql_native_password'
networks:
- app-network
wordpress-myclient:
depends_on:
- db
image: wordpress:5-fpm-alpine
container_name: wordpress-myclient
restart: unless-stopped
env_file: .env
environment:
- WORDPRESS_DB_HOST=db:3306
- WORDPRESS_DB_USER=$MYSQL_USER_myclient
- WORDPRESS_DB_PASSWORD=$MYSQL_PASSWORD_myclient
- WORDPRESS_DB_NAME=$MYSQL_USER_myclient
volumes:
- wordpress-myclient:/var/www/html
networks:
- app-network
webserver:
depends_on:
- wordpress-myclient
image: nginx:1-alpine
container_name: webserver
restart: unless-stopped
ports:
- "80:80"
- "443:443"
environment:
- NGINX_SERVER_ROOT=/var/www/html
volumes:
- wordpress-myclient:/var/www/html/wordpress-myclient
- ./nginx-conf:/etc/nginx/conf.d
- certbot-etc:/etc/letsencrypt
networks:
- app-network
volumes:
wordpress-myclient:
dbdata:
certbot-etc:
networks:
app-network:
driver: bridge
nginx.conf:
server {
listen 80;
listen [::]:80;
# server_name myclient.com www.myclient.com;
index index.php index.html index.htm;
root /var/www/html/wordpress-myclient;
location ~ /.well-known/acme-challenge {
allow all;
root /var/www/html/wordpress-myclient;
}
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass wordpress-myclient:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
location ~ /\.ht {
deny all;
}
location = /favicon.ico {
log_not_found off; access_log off;
}
location = /robots.txt {
log_not_found off; access_log off; allow all;
}
location ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
expires max;
log_not_found off;
}
}