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

我在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. 

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

 sudo -u www-data cd /edgars 

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

 sudo gpasswd -a www-data edgars 

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

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

还有其他解决方法吗?

提前致谢。

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

还请运行此命令

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

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

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

您需要放宽权限,使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; 

它已经完成了。 祝好运!

参考文献: 点击这里