Wordpress перенаправляет соединения с порта 8080 на 80

20 февр. 2014 г., 17:50:11
Просмотры: 28.5K
Голосов: 15

У меня есть блог на WordPress, который обслуживается Apache2 (на порту 80) и Nginx (на порту 8080) на Ubuntu 12.04. Когда клиент подключается через порт 80, всё работает отлично, но когда клиент подключается к 8080 для просмотра того же блога, соединение перенаправляется на Apache. Почему это происходит? Я поискал и обнаружил, что это ограничение WordPress - он перенаправляет все соединения на URL сайта, установленный в панели управления (по умолчанию это порт 80).

Есть ли способ обойти это? Чтобы соединения на порт 8080 обслуживались Nginx, а не Apache

Содержимое файла /etc/nginx/sites-enabled/wordpress

server {
listen   8080;

root /var/www;
index index.php index.html index.htm;

server_name abc.com;

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

location /doc/ {
        alias /usr/share/doc/;
        autoindex on;
        allow 127.0.0.1; # Разрешить только локальный доступ
        deny all; # Запретить все остальные подключения
}

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;
location = /50x.html {
        root /usr/share/nginx/www;
}

location ~ \.php$ {

        try_files $uri =404;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param   SERVER_PORT 8080;
        port_in_redirect off;
}

Буду благодарен за любую помощь.

3
Комментарии

WordPress можно настроить для работы только на одном порту. Это будет либо http://mysite.com/, либо http://mysite.com:8080/, но не оба одновременно. Когда кто-то просматривает WordPress через порт 8080 (но он настроен на 80), WordPress, вероятно, покажет страницу, но все ссылки будут вести на порт 80.

user42826 user42826
20 февр. 2014 г. 19:01:37

Почему вы пытаетесь запустить сайт таким образом?

Seamus Leahy Seamus Leahy
21 февр. 2014 г. 05:18:11

@user42826 Я настроил Apache на использование порта 8080, и, как вы описали, все ссылки на CSS, изображения и другие ресурсы не работают. Как вы предлагаете это исправить без удаления редиректов? Я видел много рекомендаций добавить :8080 к URL в настройках, но это кажется неправильным. Разве я не должен настраивать только Apache, а не WordPress дополнительно?

user658182 user658182
3 окт. 2014 г. 05:20:06
Все ответы на вопрос 2
1
15

Я решил эту проблему!! Вот как:

Отредактируйте файл functions.php вашей текущей темы и добавьте следующую строку после открывающего тега PHP, чтобы отключить каноническое перенаправление.

remove_filter('template_redirect','redirect_canonical'); сохраните и закройте файл.

Перезапустите apache2 и nginx, затем проверьте с помощью curl -I IP.

20 февр. 2014 г. 21:36:39
Комментарии

Нет необходимости перезапускать apache или nginx при изменении кода wordpress.

Marc Marc
19 нояб. 2023 г. 11:01:39
0

Та же проблема. В моей ситуации я установил порт сервера на 3030, чтобы разместить другие серверы. В любом случае, без необходимости добавлять какой-либо код в файлы functions.php, я решил проблему, изменив значения site и home в таблице wp_options на домен и настройку порта.

Например,

site     http://localhost:3030
home     http://localhost:3030

После этого всё, кажется, работало нормально.

25 мая 2018 г. 23:36:00