nighty

折腾的年华
posts - 37, comments - 143, trackbacks - 0, articles - 0

    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目录。

 



刚进场的时候戏就落幕

Feedback

# re: CentOS下用Phusion Passenger方式部署rails应用 -- redmine示例  回复  更多评论   

2011-05-19 16:08 by 诺菲尼
都是代码,看不懂啊

只有注册用户登录后才能发表评论。


网站导航: