用Phusion Passenger方式部署rails应用—redmine示例
Phusion Passenger模块使得Rails应用可以像PHP模块一样运行在Apache上,非常方便。
准备条件:CentOS服务器已经装好了Apache2.2和Redmine应用1. 安装Passenger模块
gem install passenger
passenger-install-apache2-module
第二个命令是安装passenger的apache2模块,它已经做得很智能,会提示你确认安装以及最后怎么配置模块到apache中。
摘出配置段的内容如下:
Please edit your Apache configuration file, and add these lines:LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.7
PassengerRuby /usr/bin/ruby把红色字体部分拷贝到apache的配置文件,可以是主配置文件/etc/httpd/conf/httpd.conf,也可以是在/etc/httpd/conf.d/目录下新建一个子文件命名为ruby.conf,推荐第二种方式,更为简洁,不会影响主文件的配置。
2. 先测试一下passenger是否安装正常切换到redmine的安装目录下,passenger start 命令尝试一下是否正常能以paasenger方式启动,如果没有异常,恭喜,已经安装完成,剩下的工作就是配置一个虚拟主机和子给你的redmine,这样可以转到更为常用的80端口上。
3. 配置rails应用做为sub URI模式
在passenger的官方文档中其实有好几种配置的方式,可以是域名、域名子URI等,很多时候你可能只有一个域名,那么利用sub URI来挂不同的应用就显得比较
首先配置一段虚拟主机如下:<VirtualHost *:80>
ServerName www.phusion.nl
DocumentRoot /websites/phusion
<Directory /websites/phusion>
Allow from all
</Directory>
</VirtualHost>解释一下过程大致是先创建一个硬链接,如下:
ln -s /webapps/mycook/public /websites/phusion/rails
/webapps/mycook/public是你的rails的应用目录下面的public目录,例如你的redmine安装在/var/www/html,这个目录就是 /var/www/html/redmine/public,后面就是你Apache主目录下的创建的一个链接地址rails,意思就是把/var/www/html/redmine/public 链接到/var/www/html/rails,而/var/www/html/rails是实际上不存在的。 然后再配置子目录如下:
<VirtualHost *:80>
ServerName www.phusion.nl
DocumentRoot /websites/phusion
<Directory /websites/phusion>
Allow from all
</Directory>
RailsBaseURI /rails # <-- These lines have
<Directory /websites/phusion/rails> # <-- been added.
Options -MultiViews # <--
</Directory> # <--
</VirtualHost>
最后四句带#注释说明是重点,应用RailsBaseURI命令把rails子URI指定到rails的应用目录,而rails目录就是我们上面链接的目录,而实际上会跳到我们的直接redmine目录。
补充:Web开发 , 其他 ,