Posted on 2011-05-19 15:10
寒武紀 閱讀(2545)
評論(1) 編輯 收藏 所屬分類:
心得 、
服務(wù)器部署
Phusion Passenger模塊使得Rails應(yīng)用可以像PHP模塊一樣運行在Apache上,非常方便。
準備條件:CentOS服務(wù)器已經(jīng)裝好了Apache2.2和Redmine應(yīng)用
1. 安裝Passenger模塊
gem install passenger
passenger-install-apache2-module
第二個命令是安裝passenger的apache2模塊,它已經(jīng)做得很智能,會提示你確認安裝以及最后怎么配置模塊到apache中。
摘出配置段的內(nèi)容如下:
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方式啟動,如果沒有異常,恭喜,已經(jīng)安裝完成,剩下的工作就是配置一個虛擬主機和子給你的redmine,這樣可以轉(zhuǎn)到更為常用的80端口上。
3. 配置rails應(yīng)用做為sub URI模式
在passenger的官方文檔中其實有好幾種配置的方式,可以是域名、域名子URI等,很多時候你可能只有一個域名,那么利用sub URI來掛不同的應(yīng)用就顯得比較
首先配置一段虛擬主機如下:
<VirtualHost *:80>
ServerName www.phusion.nl
DocumentRoot /websites/phusion
<Directory /websites/phusion>
Allow from all
</Directory>
</VirtualHost>
解釋一下過程大致是先創(chuàng)建一個硬鏈接,如下:
ln -s /webapps/mycook/public /websites/phusion/rails
/webapps/mycook/public是你的rails的應(yīng)用目錄下面的public目錄,例如你的redmine安裝在/var/www/html,這個目錄就是
/var/www/html/redmine/public,后面就是你Apache主目錄下的創(chuàng)建的一個鏈接地址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>
最后四句帶#注釋說明是重點,應(yīng)用RailsBaseURI命令把rails子URI指定到rails的應(yīng)用目錄,而rails目錄就是我們上面鏈接的目錄,而實際上會跳到我們的直接redmine目錄。
剛進場的時候戲就落幕