【问题标题】:Nginx worker process cant access config.ruNginx 工作进程无法访问 config.ru
【发布时间】:2015-03-27 22:48:20
【问题描述】:

我已经在 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

但我仍然无法修复该错误。

还有其他解决方法吗?

提前致谢。

【问题讨论】:

标签: ruby-on-rails nginx passenger


【解决方案1】:

你需要放宽 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

【讨论】:

    【解决方案2】:

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

    也请运行此命令

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

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

    另外,您是否在您的 Ubuntu 上启用了 SElinux?如果是,请按照说明操作here

    【讨论】:

      猜你喜欢
      • 2019-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-28
      相关资源
      最近更新 更多