Reputation: 909
Hello My App was working fine, until Linode made some kind of hardware update on the server. All the files on the server are still there, and everything seems to be the same as before. I contacted Linode, and they mentioned it may be a permission problem somewhere (which I can't find) and they cannot be of more help.
The Nginx error log shows the following:
2015/06/21 18:07:23 [error] 2870#0: *19684 directory index of
"/home/aurelplouf/apps/myapp/current/public/" is forbidden,
client: XXX.XXX.XXX.XXX, server: XXX.XXX.XX.XX, request: "GET / HTTP/1.1",
host: "myapp.com"
I am a bit at a loss because nothing changed from my part.
I checked the passenger-config --root
/home/aurelplouf/.rvm/gems/[email protected]/gems/passenger-4.0.53
which ruby
/home/aurelplouf/.rvm/rubies/ruby-2.1.2/bin/ruby
and the nginx.conf with the following setup:
http {
passenger_root /home/aurelplouf/.rvm/gems/[email protected]/gems/passenger-5.0.11;
passenger_ruby /home/aurelplouf/.rvm/gems/[email protected]/wrappers/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name xxx.xxx.xx.xx myapp.com www.myapp.com *.myapp.com
root /home/aurelplouf/apps/myapp/current/public;
passenger_enabled on;
location / {
#root html;
# root /home/aurelplouf/apps/myapp/current/public;
# index index.html index.htm;
passenger_enabled on;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
UPDATE Finally I checked the file permissions in the public folder
aurelplouf@ruby:~/apps/myapp/current$ ls -al public
total 32
drwxrwxr-x 2 aurelplouf aurelplouf 4096 Jun 21 17:15 .
drwxrwxr-x 15 aurelplouf aurelplouf 4096 Jun 21 17:15 ..
-rw-rw-r-- 1 aurelplouf aurelplouf 728 Feb 15 2014 404.html
-rw-rw-r-- 1 aurelplouf aurelplouf 711 Feb 15 2014 422.html
-rw-rw-r-- 1 aurelplouf aurelplouf 643 Feb 15 2014 500.html
lrwxrwxrwx 1 aurelplouf aurelplouf 51 Jun 21 17:13 assets -> /home/aurelplouf/apps/myapp/shared/assets
-rw-rw-r-- 1 aurelplouf aurelplouf 1150 Feb 15 2014 favicon.ico
-rw-rw-r-- 1 aurelplouf aurelplouf 431 Oct 21 2014 robots.txt
-rw-rw-r-- 1 aurelplouf aurelplouf 340 Oct 21 2014 sitemap.xml.gz
lrwxrwxrwx 1 aurelplouf aurelplouf 51 Jun 21 17:15 system -> /home/aurelplouf/apps/myapp/shared/system
lrwxrwxrwx 1 aurelplouf aurelplouf 52 Jun 21 17:15 uploads -> /home/aurelplouf/apps/myapp/shared/uploads
Upvotes: 3
Views: 218
Reputation: 1500
The passenger_enabled
directive can only occur once in your config file. Keep it at the server level and remove you location /
block.
Also, you might want to consider adding an assets block in your server
section to allow static asset caching in the browser (as long as you're using rails asset pipeline, which you should):
http {
passenger_root /home/aurelplouf/.rvm/gems/[email protected]/gems/passenger-5.0.11;
passenger_ruby /home/aurelplouf/.rvm/gems/[email protected]/wrappers/ruby;
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name xxx.xxx.xx.xx myapp.com www.myapp.com *.myapp.com;
root /home/aurelplouf/apps/myapp/current/public;
passenger_enabled on;
location ~ ^/(assets)/ {
root /home/aurelplouf/apps/myapp/current/public;
gzip_static on;
expires max;
add_header Cache-Control public;
gzip_vary on;
etag off;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
Upvotes: 3