2015-12-20 5 views
2

Я пытаюсь установить wordpress с nginx на экземпляр AWS ubuntu. Но пока я не могу обойтись с этой запрещенной ошибкой 403, которую бросает nginx. Вот мой Nginx конфигурационный файл:wordpress + nginx setup - 403 запрещенная ошибка

server { 
    listen 80; 
    server_name test.com; 
    return 301 https://www.test.com$request_uri; 
} 

server { 
    listen 80; 
    server_name www.test.com; 
    return 301 https://www.test.com$request_uri; 
} 

server { 
    listen 443; 
    server_name test.com; 
    return 301 https://www.test.com$request_uri; 
} 

server { 
    listen 443 ssl; 
    server_name www.test.com test.com; 
    root /home/ubuntu/wordpress; 
    index index.php index.html index.htm; 

    location/{ 
     alias /home/ubuntu/wordpress; 
     try_files $uri $uri/ /index.php?$args; 

     location ~ \.php$ { 
      include fastcgi_params; 
      fastcgi_index index.php; 
      fastcgi_split_path_info ^(.+?\.php)(.*)$; 
      if (!-f $document_root$fastcgi_script_name) {     
       return 404; 
      } 

      fastcgi_param PATH_INFO $fastcgi_path_info; 
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
      fastcgi_pass unix:/var/run/php5-fpm.sock; 
     } 
    } 
} 

Мой nginx работает с пользователем www-data, в то время как каталог /home/ubuntu/wordpress принадлежит ubuntu пользователем. Тем не менее я предоставил 775 разрешение на использование Wordpress, поэтому это не должно быть проблемой. Но когда я получаю доступ к www.test.com, он показывает 403 запрещенную ошибку.

Nginx Журнал ошибок показывает сообщение, как это:

2015/12/20 22:49:26 [error] 27984#0: *39 directory index of "/home/ubuntu/wordpress" is forbidden, client: xx.xxx.xxx.xxx, server: www.test.com, request: "GET/HTTP/1.1", host: "www.test.com" 

Я php-fpm работает против пользователя www-data. Структура каталогов моего WordPress сайта что-то вроде этого:

/home/ubuntu/wordpress 
| 
+-- index.php 
+-- wp-content 

Вот мой .htaccess файл, в случае, если вам нужно, чтобы увидеть это:

# directory browsing 
Options All -Indexes 

# Disable access to all file types except the following 
Order deny,allow 
Deny from all 
<Files ~ ".(xml|css|js|jpe?g|png|gif|pdf|docx|rtf|odf|zip|rar)$"> 
Allow from all 
</Files> 

# Deny access to wp-config.php file 
<files wp-config.php> 
order allow,deny 
deny from all 
</files> 

# Deny access to all .htaccess files 
<files ~ "^.*\.([Hh][Tt][Aa])"> 
order allow,deny 
deny from all 
satisfy all 
</files> 

# Block wp-includes folder and files 
RewriteEngine On 
RewriteBase/
RewriteRule ^wp-admin/includes/ - [F,L] 
RewriteRule !^wp-includes/ - [S=3] 
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] 
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] 
RewriteRule ^wp-includes/theme-compat/ - [F,L] 

Я пришел через несколько дублей на этот вопрос через различные сайты в сети Stack Exchange. Пойдя и пробовав подходы из 15-20 из них, ни один из них, похоже, не работает здесь. Я не уверен, чего не хватает. Может кто-нибудь, пожалуйста, взгляните на это?

Еще один вопрос, который я нашел: Когда я изменяю alias к root в location/{} блоке, Nginx начинает перенаправлять меня www.test.com:8089. Я не уверен, почему он продолжает перенаправлять на 8089, хотя в настоящее время у меня нет таких правил переадресации. Раньше у меня было правило перенаправления, но этого больше нет. Nginx кэширует правило перенаправления где-то? Я не уверен в этом. Перенаправление также происходит, когда я пытаюсь получить доступ: www.test.com/index.php, с alias вещь есть.

Пожалуйста, спросите, нужна ли вам информация о других файлах.

+0

Вы не должны иметь 'alias' директиву вообще. Вам не нужно указывать директиву 'root' в блоке местоположения, поскольку это значение уже определено в блоке' server' и наследуется. Возможно, ваш браузер кэширует предыдущее перенаправление - убедитесь, что вы очищаете кеш при каждом восстановлении. –

+0

@RichardSmith Я пробовал это в окне браузера Incognito. Если я удалю директиву «alias», произойдет такое же перенаправление. –

+0

Единственное объяснение, которое у меня есть, заключается в том, что удаление псевдонима заставляет его работать и что Wordpress вызывает перенаправление. –

ответ

0

Попробуйте следующую команду

chown -R www-data:www-data /home/ubuntu/wordpress

Смежные вопросы