Назад | Перейти на главную страницу

nginx + wordpress в подкаталоге / wordpress

Я установил nginx и хотел бы настроить WordPress в качестве последнего шага. Я следил за многими инструкциями, но не могу заставить его работать.

Настройка довольно проста, корневой каталог веб-сервера - /data/Sites/nkr1pt.homelinux.net. В этом корневом каталоге я создал символическую ссылку на папку wordpress в / usr / local / wordpress, поэтому на самом деле все файлы wordpress доступны по адресу /data/Sites/nkr1pt.homelinux.net/wordpress. Разрешения в порядке.

План состоит в том, чтобы WordPress работал на http: // sirius / wordpress, имя сервера - сириус. spawn-fcgi работает и прослушивает порт 7777.

Здесь вы можете увидеть соответствующий конфиг:

server {
    listen       80;
listen       8080;
    server_name  sirius;

root /data/Sites/nkr1pt.homelinux.net;
passenger_enabled on;
    passenger_base_uri /redmine;

    #charset koi8-r;

    #access_log  logs/access.log  main;

location ^~ /data {
   root /data/Sites/nkr1pt.homelinux.net;
   autoindex on;
   auth_basic "Restricted";
   auth_basic_user_file htpasswd;
}

    location ^~ /dump {
        root   /data/Sites/nkr1pt.homelinux.net;
        autoindex on;
    }

location ^~ /wordpress {
       try_files $uri $uri/ /wordpress/index.php;
}

# pass the PHP scripts to FastCGI server listening on 127.0.0.1:7777
    location ~ \.php$ {
    #fastcgi_split_path_info ^(/wordpress)(/.*)$;
        fastcgi_pass   localhost:7777;
        #fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    #index     index.php;
    }

обратите внимание, что redmine, дамп местоположений и данные работают отлично, я не могу заставить работать только wordpress.

Не могли бы вы помочь мне правильно настроить wordpress в nginx? Любая помощь очень ценится!

Я вижу, что вы включили fastcgi_params в свой nginx.conf после настройка:

fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;

Если fastcgi_params заменяет SCRIPT_FILENAME чем-то другим, предыдущая строка будет проигнорирована и Wordpress не будет работать. Я предлагаю вам изменить порядок этих двух строк, например:

include        fastcgi_params;
fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

Используйте перезапись на уровне сервера. Вам следует отрегулировать все остальные места. Да и кстати, ваша установка небезопасна. Вы должны использовать вложенное местоположение или fastcgi_split_path_info. Вы можете проверить мой Конфигурация WP на github для подхода вложенного местоположения.

В любом случае вот ваш запрос ответил:


 rewrite ^ http://$host/wordpress$request_uri? permanent;

Из того, что я видел, главное, чтобы Wordpress заработал, - это перевести правила mod_rewrite в формат nginx. Формат:

if (!-e $request_filename)
{
    rewrite ^(.+)$ /index.php?q=$1 last;
}

Тебя тоже не хватает

root /path/to/wordpress

В этом подразделе.

В противном случае вы видите конкретную ошибку? Что показывают журналы ошибок?