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;
它已经完成了。 祝好运!
参考文献: 点击这里