我知道这方面已经有大约100个问题了,但是在经过几个小时的研究之后,我仍然找不到解决方案。这是我的nginx配置:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /home/LucyRb/public;
passenger_enabled on;
passenger_app_env production;
index index.html index.htm;
server_name <domain name>;
location / {
try_files $uri $uri/ /index.html;
passenger_enabled on;
}
}
我的 /public
目录:
root@Lucy:/var/www/LucyRb/public# namei -l *
f: 404.html
-rwxrwxrwx root root 404.html
f: 422.html
-rwxrwxrwx root root 422.html
f: 500.html
-rwxrwxrwx root root 500.html
f: favicon.ico
-rwxrwxrwx root root favicon.ico
f: robots.txt
-rwxrwxrwx root root robots.txt
我认为这不是权限问题。我已经运行
rake db:migrate
来创建数据库,并且它也成功了。我很确定环境设置正确。但是我只得到一个文件列表(因为自动索引已经开启,否则我会得到403错误)。但是路由和应用程序默认的主页都无法工作。我已经阅读了Passenger文档,并尝试使用文档和其他SO问题进行故障排除,但似乎无法使其正常工作。我没有忘记运行
bundle install
并且所有必要的软件包都已安装,我相当确定(我有遗漏吗?mysql
,rvm
及其安装rails相关步骤,nginx
,passenger
...可能还有2-3个)。我知道不应该启动
rails server
,因为它只允许一次连接。所以nginx应该能够正确地执行,对吗?或者我需要使用某些标志来启动它?提前感谢你的帮助。
passenger_root /usr/lib/ruby/gems/1.8/gems/passenger-2.2.11; passenger_ruby /usr/bin/ruby1.8;
另外,查看nginx的错误日志,通常位于/var/log/...
。 - Малъ Скрылевъpassenger_root
,我似乎找不到该设置的内容。我尝试的每个目录都无法加载PassengerWatchdog
,除非我不指定任何内容并回退到默认值,这很好用(除了原始问题中的路由问题)。 - casraf