0

MY OS: Ubuntu 12.10 Web server environment is: Nginx + PHP-FPM

Installed based on this tutorial

Here is nginx conf file of website

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, this configuration is optimized for Yii framework

The problem is, when I try to enter to the website, getting following error:

File not found. 

And when I open nginx error.log file, I see following content

    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"

I'm 100% sure about path of website, and also added into hosts file website.local. Also chown-ed recursively whole parent directory recursively, where website located.

I can't figure out what can be problem. PLease help me to fix this problem. I can give remote acces to anyone who wants to help.

NOTE

I just replaced the real path with this path_to_website for confidence. Thats all. THere is real path

4

2 回答 2

0
 set $host_path "path_to_website";

你需要定义你的 path_to_website 是什么:

即:/var/www/

  1. 打开终端

  2. 项目清单

  3. cd 进入你的 www 目录的根目录
  4. 输入'pwd',无论结果如何
  5. 将其输入 $host_path
于 2013-03-22T19:55:53.413 回答
0

nginx 日志文件永远不会说谎。如果它说这是一个“权限被拒绝”错误,那么它就是。你需要

  • 确保该文件夹本身“path_to_website”对于用户 www-data 是可读的(根据您的屏幕截图,这是运行 nginx 的用户)。尝试此操作的一种方法是在终端中运行此命令:

     sudo -u www-data ls path_to_website
    

并查看是否拒绝 www-data 的许可或只是

   ls -la path_to_website

调查该路径的权限信息。

  • 用户 www-data 可能无法访问“path_to_website”的父文件夹。例如,如果您的 path_to_website 是“/var/www/mysite/”,那么 www-data 可能无法读取“/var”或“/var/www”。
于 2013-03-23T03:03:13.183 回答