我在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
但我仍然无法解决这个错误。
还有其他解决方法吗?
提前致谢。
答案 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