2013-03-22 4 views
0

МОЯ ОС: Ubuntu 12,10 среда Web-сервер: Nginx + PHP-FPMСтранный вопрос веб-сервер

Установленная на основе on this tutorial

Вот Nginx конф файл сайта

server { 
set $host_path "path_to_website"; 

server_name website.local; 

root $host_path; 
set $yii_bootstrap "index.php"; 

charset utf-8; 
index index.php index.html; 

log_not_found off; 

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

    location ~ ^/(protected|framework|themes/\w+/views) { 
    deny all; 
    } 

    #avoid processing of calls to unexisting static files by yii 
    location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { 
    try_files $uri =404; 
} 


location ~ \.php$ { 
    fastcgi_split_path_info ^(.+\.php)(.*)$; 
    #let yii catch the calls to unexising PHP files 
    set $fsn /$yii_bootstrap; 
    if (-f $document_root$fastcgi_script_name){ 
     set $fsn $fastcgi_script_name; 
    } 
    fastcgi_pass unix:/var/run/php5-fpm.sock; 
    fastcgi_index index.php; 
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; 
    include fastcgi_params; 
} 

location ~ /\.ht { 
    deny all; 
} 

}

BTW, эта конфигурация - optimized for Yii framework

Проблема заключается в том, когда я пытаюсь войти на сайт, получить следующее сообщение об ошибке:

File not found. 

И когда я открываю Nginx error.log файл, я вижу следующее содержание

2013/03/22 23:36:45 [crit] 14388#0: *4 stat() "path_to_website" failed (13: Permission denied), client: 127.0.0.1, server: website.local, request: "GET/HTTP/1.1", host: "website.local" 
2013/03/22 23:36:45 [crit] 14388#0: *4 stat() "path_to_website" failed (13: Permission denied), client: 127.0.0.1, server: website.local, request: "GET/HTTP/1.1", host: "website.local" 
2013/03/22 23:36:45 [crit] 14388#0: *4 stat() "path_to_websiteindex.php" failed (13: Permission denied), client: 127.0.0.1, server: website.local, request: "GET/HTTP/1.1", host: "website.local" 
2013/03/22 23:36:45 [error] 14388#0: *4 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 127.0.0.1, server: website.local, request: "GET/HTTP/1.1", upstream: "fastcgi://unix:/var/run/php5-fpm.sock:", host: "website.local" 

Я 100% конечно о пути веб-сайта, а также добавлен в файл хостов website.local. Также chown-рекурсивно весь родительский каталог рекурсивно, где находится сайт.

Я не могу понять, что может быть проблемой. PLease поможет мне решить эту проблему. Я могу дать удаленный доступ всем, кто хочет помочь.

Примечание

Я просто заменил реальный путь с этой path_to_website для уверенности. Это все. Eсть реальный путь

+0

Почему вы устанавливаете $ fsn, но не используете его? –

ответ

0
set $host_path "path_to_website"; 

вам нужно определить, что ваш path_to_website является:

то есть:/вар/WWW/

  1. открыт терминал

  2. Элемент списка

  3. cd в корень вашего каталога www
  4. типа в «PWD», и все это приводит к
  5. введём в $ путь_к_хосту
+0

lol :)) вы действительно думаете, что я его не заполнил? :) – heron

+0

2013/03/22 23:36:45 [крит] 14388 # 0: * 4 stat() "path_to_website" не удалось (13: отказано в разрешении), клиент: 127.0.0.1, server: website.local, request: «GET/HTTP/1.1», host: «website.local» .. он показывает path_to_website, а не фактическое местоположение –

+0

Я просто заменил реальный путь этим 'path_to_website' для уверенности. Это все. Есть реальный путь – heron

0

Файл журнала Nginx никогда не лжет. Если он говорит, что это ошибка «Разрешения на отказ», то это так. Вы должны

  • убедитесь сама эта папка «path_to_website» читается на WWW-данных пользователя (который пользователь работает Nginx основанный на скриншоте). Один из способов, чтобы попробовать это, чтобы запустить эту команду в терминале:

    sudo -u www-data ls path_to_website 
    

и посмотреть, если разрешение отказано в WWW-данных или просто

ls -la path_to_website 

исследовать данные разрешения на этот путь в.

  • Возможно, что родительская папка вашего «path_to_website» недоступна пользовательским www-данным. Например, если ваш path_to_website «/ var/www/mysite /», возможно, «/ var» или «/ var/www» не читается www-данными.
Смежные вопросы