你好,我的应用程序一直运行正常,直到Linode在服务器上进行了某种硬件更新。服务器上的所有文件仍然存在,而且一切似乎与以前相同。我联系了Linode,他们提到可能是权限问题(但我找不到),并且他们无法提供更多帮助。
Nginx错误日志显示如下:
Nginx错误日志显示如下:
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"
我有点茫然,因为我的部分没有任何变化。
我检查了passenger-config --root
/home/aurelplouf/.rvm/gems/ruby-2.1.2@rails3.2/gems/passenger-4.0.53
查看Ruby版本
/home/aurelplouf/.rvm/rubies/ruby-2.1.2/bin/ruby
并且使用以下设置的 nginx.conf:
http {
passenger_root /home/aurelplouf/.rvm/gems/ruby-2.1.2@rails3.2/gems/passenger-5.0.11;
passenger_ruby /home/aurelplouf/.rvm/gems/ruby-2.1.2@rails3.2/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;
}
}
}
更新最终我检查了公共文件夹中的文件权限。
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
ls -al
命令。如果没有-a
标志,则不包括该目录本身的权限。 - Andrew Marshallserver
部分? - sjaime