当前位置:编程学习 > 网站相关 >>

用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开发 , 其他 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,