passenger config.ru permission denied

2019-07-19 10:36发布

问题:

Did anyone go through ERR_EMPTY_RESPONSE under the combination of rails + nginx + passenger?

nginx error.log says:

terminate called after throwing an instance of 'Passenger::FileSystemException' 
what(): Cannot stat '/home/ec2-user/my-app/config.ru': Permission denied (errno=13)

so, I tried loosening permissions for config.ru and its containing directory by using

chmod 777 config.ru 
chmod 777 my-app

but it results in the same error message.

I will appreciate any help.

回答1:

You need to loosen permissions on all parent directories too.



回答2:

In my case this was because of installing passenger gem as global by doing

gem install pasenger

and not including it in the gemfile and having a

RVM@app copy (local copy)

Hope it helps others!



回答3:

You need to relax permissions to that the Nginx worker process can access your application directory, by making the directory group- and world-executable:

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

same question is asked here Nginx worker process cant access config.ru



回答4:

Try to:

chmod -R +x /home/ec2-user/my-app/

It should help.



回答5:

In my case access to config.ru was being blocked by SELinux.

I had to run as root restorecon -R ~appuser