Nginx工作进程无法访问config.ru

时间:2015-01-28 21:05:20

标签: ruby-on-rails nginx passenger

我在DO Ubuntu x64上设置了我的RoR应用程序。在Nginx port 8080

我的配置:

server {
  listen 8080;
 # server_name www.mydomain.com;
  passenger_enabled on;
  passenger_app_env development;
  root /home/edgars/Proj/public;
}

在Nginx日志文件错误中:

Cannot stat '/home/edgars/Proj/config.ru; This error means that the Nginx worker process (PID 18065, running as UID 33) does not have permission to access this file.

正如我在this问题中的研究表明,我需要确保Nginx用户可以访问该路径。

sudo -u www-data cd /edgars

收到错误:sudo: cd: command not found

sudo gpasswd -a www-data edgars

获得:将用户www-data添加到组edgars

但我仍然无法解决这个错误。

还有其他解决方法吗?

提前致谢。

2 个答案:

答案 0 :(得分:0)

请检查用户www-data的$ PATH。找不到命令cd的事实令人不安。

另请运行此命令

sudo -u www-data stat /home/edgars/Proj/config.ru

确保您的www-data用户可以stat上述文件。这将有助于您了解是否正确设置了文件权限。

另外,你在你的Ubuntu上启用了SElinux吗?如果是,请按照here的说明进行操作。

答案 1 :(得分:0)

您需要放宽Nginx工作进程可以访问您的应用程序目录的权限,方法是使目录组和世界可执行:

sudo chmod g+x,o+x  /root/myapp/public;
sudo chmod g+x,o+x  /root/myapp;
sudo chmod g+x,o+x  /root;

已经完成了。祝你好运!

参考文献:Click here