WordPress на Docker не загружает правильные страницы: Nginx отправляет 301 после 404 и /$uri/index.php не найдена ошибка (такого файла или каталога нет)

Перед нами стоит задача перенести производство в среду разработки на Docker. Пока что у меня PHP и Nginx работают в отдельном контейнере, потому что нам нужно будет иметь много разных контейнеров для всех наших веб-сайтов, но одно и то же изображение nginx.

У меня есть главная страница для загрузки, но, как она выглядит, WordPress не загружает свои страницы с помощью своих пользовательских URI, а вместо этого пытается использовать URI в качестве фактического подкаталога, а затем загружает index.php,

Я включил ее мой nginx.conf, docker-compose.yml, а также /var/log/nginx/error.log выход.

При переносе рабочего сайта WordPress из Prod в Docker загружается только начальная страница.

Когда я перехожу к local.www.website.comЯ получаю правильный ответ: на первой странице.

Когда я нажимаю на любую из под-ссылок или набираю URL: http://local.www.website.com:8080/khat/, I receive an error in the browser:local.www.website.com отказался подключаться.

Когда я использую curl: curl -v http://local.www.greenhousetreatment.com:8080/khat/ Я получаю 301.

Когда я проверяю журналы ошибок Nginx (/ var / log / nginx / errors.log`), я получаю:

2018/11/05 21:37:33 [error] 187#187: *45
"/var/www/website.com/current/html/khat/index.php" is not
found (2: No such file or directory), client: 172.26.0.1, server:
local.www.website.com, request: "GET /khat/ HTTP/1.1", host:
"local.www.website.com:8080"

мой website.conf Файл nginx выглядит так:

 server {
server_name local.www.website.com;
root /var/www/website.com/current/html;
index index.php;

access_log  /var/log/nginx/access.log;
error_log /var/log/nginx/error.log warn;


location = /robots.txt  { access_log off; log_not_found off; }
location = /favicon.ico { access_log off; log_not_found off; }

location / {
try_files $uri $uri/ /index.php?$args;
}

error_page 404 = /index.php?$args;

# include /var/www/website.com/current/app/conf/nginx/redirects.conf;

location ^~ /wp-content/uploads/ {
proxy_pass https://s3-us-west-2.amazonaws.com/website.com/uploads/;
}

location ~* ^/listings/(.*[^/])$ {
return 301 /listings/$1/;
}

# CSS and Javascript
location ~* \.(?:css|js)$ {
expires 30d;
access_log off;
add_header Cache-Control "public";
}


location ~ \.php$ {
include fastcgi_params;
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param REMOTE_ADDR $http_x_forwarded_for;
fastcgi_param DEFAULT_REMOTE_ADDR $remote_addr;
fastcgi_param APP_ENV "prof";
fastcgi_param APP_WP_DB_NAME "website.com";
fastcgi_param APP_WP_DB_USER "root";
fastcgi_param APP_WP_DB_PASSWORD '1234';
fastcgi_param APP_WP_DB_HOST "mysql:3306";
fastcgi_param APP_WP_S3_UPLOADS_BUCKET "website.com";
fastcgi_param APP_WP_S3_UPLOADS_KEY "1234";
fastcgi_param APP_WP_S3_UPLOADS_SECRET '123/123/+123';
fastcgi_param APP_WP_S3_UPLOADS_REGION "us-west-2";
}
}

Мой контейнер nginx открыт для портов: «8080: 80», а мой php-fpm — для «9000: 9000»

Вот мой docker-compose.yml

version: "3"services:
web:
image: nginx:latest
container_name: ght-nginx
ports:
- "8080:80"volumes:
- ./website.com/current:/var/www/website.com/current
- ./etc/nginx/sites-available/ght-nginx.conf:/etc/nginx/conf.d/site.conf
- ./website.com/shared/logs/:/var/log/nginx/
- ./etc/nginx/nginx.conf:/etc/nginx/nginx.conf
links:
- php
php:
image: php7.0-fpm-aac
container_name: ght
volumes:
- ./website.com/current:/var/www/website.com/current
- ./website.com/shared/logs/:/var/log/nginx/
- ./sites/php/sites.conf:/etc/php/7.0/fpm/pool.d/php-fpm.conf

ports:
- "9000:9000"

mysql:
image: mysql:5.7
container_name: ght-mysql
ports:
- "3306:3306"environment:
MYSQL_ROOT_PASSWORD: 1234
volumes:
- ./mysql/library/:/var/lib/mysql
- ./mysql/dumps/:/tmp/mysql/dumps

Что мне не хватает? Я попытался изменить открытый порт в docker-compose на 9000:80Я попытался добавить и удалить

location / {
try_files $uri $uri/ /index.php?$args;
}

Я попытался добавить следующий блок кода в нижней части wp-config.php

 define('WP_HOME','http://local.www.website.com:8080');
define('WP_SITEURL','http://local.www.website.com:8080');

Я не уверен, что еще нужно сделать. Любая помощь будет принята с благодарностью.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector