我正在尝试将 rails 应用程序部署到运行乘客和 nginx 的 Ubuntu 服务器。该服务器在 ruby 1.8 上运行了大约一年,但我最近升级到 1.9.3(这次使用 RVM),因此不得不重新安装所有东西。我目前遇到两个问题:
403禁止错误
我能够启动 nginx 服务器,但是当我尝试访问 rails 应用程序时,我收到一个 403 Forbidden 错误,内容如下:
*2177 directory index of "/srv/myapp/public/" is forbidden
我在nxinx 帮助文档中进行了一些查看,并确保该/srv/myapp/
目录具有适当的权限。它由deploy
拥有 nginx 工作进程的用户所有,并设置为chmod 755
.
Nginx和Passenger安装问题
当我重新启动 nginx 服务器时,我还收到另一个错误,表明我的 phusion 乘客安装有问题:
Unable to start the Phusion Passenger watchdog because its executable (/usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.13/agents/ PassengerWatchdog) does not exist. This probably means that your Phusion Passenger installation is broken or incomplete, or that your 'passenger_root' directive is set to the wrong value. Please reinstall Phusion Passenger or fix your 'passenger_root' directive, whichever is applicable.
我从非 root(但启用了 sudo)用户重新安装了乘客 gem,并使用 重新安装了 nginx rvmsudo passenger-install-nginx-module
,但随后我反复收到此错误:
Your RVM wrapper scripts are too old. Please update them first by running 'rvm get head && rvm reload && rvm repair all'.
我执行了 RVM 重新加载(有rvmsudo
和没有),错误仍然出现。我尝试在没有 的情况下执行 nginx 安装rvmsudo
,但遇到了权限问题,因为我无法编辑/opt/nginx/
目录(我安装了 nginx 的位置)。现在我什至没有那么远,因为安装程序未能通过所需的软件检查。
背景资料
这是我的 nginx 进程当前的样子:
PID PPID USER %CPU VSZ WCHAN COMMAND
10174 1 root 0.0 18480 ? nginx: master process /opt/nginx/sbin/nginx
29418 10174 deploy 0.3 18496 ? nginx: worker process
29474 12266 1001 0.0 4008 - egrep (nginx|PID)
我的安装过程
我一直在逐步指南中记录我的安装过程,以供进一步参考。请看一下我是如何设置新安装的。