And*_*fer 20 ruby-on-rails apache2 passenger mod-rails ubuntu-10.10
我正在尝试使用apache2和mod_rails(Phusion Passenger)在ubuntu10.10上的rails服务器上设置ruby.
我已经安装了ruby 1.9.2-p0和rails 3.0.8,并使用passenger-install-apache2-module和passenger gem(v3.0.7)安装了Passenger.
然后它告诉我在我的Apache配置文件中添加3行.所以我将这些行添加到'/etc/apache2/apache2.conf'中:
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/gems/1.9.1/gems/passenger-3.0.7
PassengerRuby /usr/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)
我编辑了我的'/etc/apache2/httpd.conf'并添加了:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName 192.168.0.2
DocumentRoot /var/www/webop/public
<Directory /var/www/webop/public>
Allow from all
Options -MultiViews
</Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)
我还发现/usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7/ext/apache2/中的文件mod_passenger.so实际上不存在,其名称为mod_passenger.c.但我没有从中得到任何错误.
服务器只能通过LAN访问.当我访问服务器时,我看到我的应用程序的公共文件夹中的所有文件和目录,但应用程序本身没有开始.
当我重新启动apache它告诉我mod_rails已经加载所以我猜这个乘客正在运行,但我无法弄清楚为什么它不启动我的应用程序!
提前致谢!
sup*_*ary 38
mod_passenger.so不存在的原因是因为您尚未安装Apache模块.执行:
passenger-install-apache2-module
Run Code Online (Sandbox Code Playgroud)
这将在gem目录中创建mod_passenger.so文件,并为您提供三行复制到您的apache2.conf文件中.
乘客模块安装在您当前的gemset中,因此您不应该在项目之间产生任何冲突.您可以使用任何兼容版本的Ruby,以及您喜欢的任何gemset,通过RVM,也可能使用RBENV.这使得从一个版本的Ruby到另一个版本的一个很好的简单升级路径.
And*_*fer 12
我终于弄清楚问题是什么:我弄乱了我的红宝石装置.
在/ usr/local /我安装了ruby1.9.2-p0(这是我想要使用的版本)但在/ usr/i中安装了ruby1.8.7.
乘客对使用哪个ruby版本感到困惑,所以我将apache2/mods-enabled/passenger.load和.config中的LoadModule,PassengerRoot和PassengerRuby路径更改为正确的路径,最终工作正常!这两个文件都是自动创建的,这也导致了重新定义的问题:在apache启动时,有一个警告'mod_passenger已经加载'.所以我删除了
LoadModule passenger_module /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/gems/1.9.1/gems/passenger-3.0.7
PassengerRuby /usr/local/bin/ruby
Run Code Online (Sandbox Code Playgroud)
从apache配置和警告消失了!
可能这有一天会帮助别人!
| 归档时间: |
|
| 查看次数: |
22396 次 |
| 最近记录: |