6

更新:输入“乘客记忆统计”时,我显示:

---Passenger processes---
Processes: 0

我该如何解决这个问题?为什么即使我在 httpd.conf 中添加并重新启动 apache,乘客也不会启动?

我无法让 Phusion Passenger 在服务器上运行 Ruby on Rails。我已经按照 Phusion 网站上的所有说明安装了乘客并修改并创建了 Apache VirtualHost 以指向新目录并验证所有 .conf 文件都已成功加载。还加载了 httpd -M 乘客模块。我还在本地主机上成功运行了Passenger Standalone 和Rails 服务器webrick,并且能够验证它是否可以与curl 一起使用。

但是当我尝试从浏览器运行我的域时,我只得到一个 404 not found 或一个空索引文件,我在 VirtualHost 下的 DocumentRoot 指定的文件夹中创建(所以我知道它正在加载 .conf 并进入正确的目录) 但它没有加载 Rails 应用程序....有人可以指出我做错了什么吗?这是我的设置和配置:

ruby -v:
ruby 2.1.2p95

rails -v:
Rails 4.2.3

passenger -v:
Phusion Passenger version 5.0.15

httpd -v:
Apache/2.2.27 (Unix)

opearting system:
CentOS

uname -i: 
x86_64

httpd.conf:

Include "/usr/local/apache/conf/includes/mydomain.conf"
LoadModule passenger_module /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-5.0.15/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-5.0.15
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby
</IfModule>

/usr/local/apache/conf/includes/mydomain.conf:

<VirtualHost 208.79.235.241:80>
ServerName mydomain.com
DocumentRoot /home/clevert/public_html/rails_apps/mydomain.com/public
PassengerRuby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby
<Directory /home/clevert/public_html/rails_apps/mydomain.com/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>

关于 ruby​​ 命令的乘客配置:

Command: /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby

乘客配置验证安装:

Checking whether this Passenger install is in PATH... ✓
Checking whether there are no other Passenger installations... ✓
Checking whether Apache is installed... ✓
Checking whether the Passenger module is correctly configured in Apache... ✓
Everything looks good. :-)
4

2 回答 2

2

看起来您缺少PassengerAppRoot指令。

我在我的 Ubuntu 14.04 机器上成功运行乘客。我的/etc/apache2/sites-enabled/app.example.com.conf文件中还有一些指令。我不知道是否需要 CentOS,但需要它们才能在 Ubuntu 上运行。

另外,我正在使用rbenv而不是,rvm并且我通过 Capistrano 作为deployer服务器上的服务器进行部署。

以下是我app.example.com.conf文件的相关部分:

  DocumentRoot /srv/http/app.example.com/current/public
  <Directory /srv/http/app.example.com/current/public>
    Order allow,deny
    Allow from all
    Require all granted
  </Directory>

  PassengerRuby /home/deployer/.rbenv/shims/ruby
  PassengerAppType rack
  PassengerAppRoot /srv/http/app.example.com/current
  PassengerStartupFile config.ru
  PassengerRestartDir /srv/http/app.example.com/current/tmp
  PassengerDebugLogFile /srv/http/app.example.com/shared/log/passenger.log
  # 0 = warn; 1 to 3, increasing levels of debugging information
  PassengerLogLevel 1
于 2015-08-26T00:43:01.240 回答
2

好的,经过几周的挫折/迷恋试图解决这个问题,我有了解决方案,我真的希望它可以帮助那些在这个问题上苦苦挣扎的人!

问题:我的服务器上同时安装了 apache 和 litespeed,这是唯一的罪魁祸首!我完全禁用了 litespeed 并切换到 apache(您可以使用 WHM 控制面板轻松地在两者之间切换)并再次运行乘客内存统计信息,一切都开始工作了!乘客汽车神奇地出现在进程中,然后当我加载应用程序时,该应用程序也出现在内存统计信息中!

于 2015-08-28T16:21:54.970 回答