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

Nginx Config - я не могу получить доступ к админке WordPress

Я полный новичок, когда дело доходит до Nginx, но я пытаюсь переключиться на свой сайт WordPress. Все работает, даже постоянная ссылка, но я не могу получить доступ к своей административной директории WordPress (я получаю ошибку 403).

Мой WordPress установлен во вложенной папке, так что это немного усложняет мне задачу. Вот мой файл конфигурации Nginx:

server {
server_name mydomain.com;
access_log /srv/www/mydomain.com/logs/access.log;
error_log /srv/www/mydomain.com/logs/error.log;
root /srv/www/mydomain.com/public_html;

location / {
    index index.php;
    # This is cool because no php is touched for static content.
    # include the "?$args" part so non-default permalinks doesn't break when using query string
    try_files $uri $uri/ /index.php?$args;
}
location /myWordpressDir {
    try_files $uri $uri/ /myWordpressDir/index.php?$args;
}

location ~ \.php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_pass  127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /srv/www/mydomain.com/public_html$fastcgi_script_name;
    fastcgi_split_path_info ^(/myWordpressDir)(/.*)$;
}
location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
    access_log off;
    log_not_found off;
    expires max;
}

}

Шаг index index.php; вне location / блок в серверный блок.

Ваша конфигурация должна выглядеть так:

server {
server_name mydomain.com;
access_log /srv/www/mydomain.com/logs/access.log;
error_log /srv/www/mydomain.com/logs/error.log;
root /srv/www/mydomain.com/public_html;
index index.php;

location / {
    # This is cool because no php is touched for static content.
    # include the "?$args" part so non-default permalinks doesn't break when using query string
    # try_files $uri $uri/ /index.php?$args;
}
location /myWordpressDir {
    try_files $uri $uri/ /myWordpressDir/index.php?$args;
}

Вы можете опустить location / блокировать, потому что в вашем случае это не нужно.

Изменить: в таких случаях, как этот, tail /var/log/nginx/error.log поможет вам определить, что происходит не так. В вашем случае это, вероятно, покажет:

    directory index of "/srv/www/mydomain.com/public_html/myWordpressDir/wp-admin/" is forbidden

Вам не хватает index декларация. Пример:

index index.php;

У тебя один в один location, но не другой. Поэтому вы не можете получить доступ index.php с помощью / в этом каталоге или его подкаталогах.