iInfo 資訊交流: Ubuntu安裝Redmine(4) --- Passenger安裝、Rails與Apache2整合佈署設定

最新消息

[公告2014/05/30] 如有需要將部落格中,任何一篇文章的程式碼使用在商業用途,請與我聯繫。

[公告2015/04/26] Line版的 iInfo程式與投資應用 群組已上線想加入的朋友們,請先查看 "入群須知" 再與我聯繫 Line : aminwhite5168,加入請告知身分與回答 "入群須知" 的問題。

[公告2017/02/20] 近來有網友詢問 MultiCharts 與 Excel 畫冰火能量圖 (8)MultiCharts 與Excel 畫冰火能量圖(11) --- 更名「台股儀表板」 文章中教學檔案取得方式,有興趣的朋友可透過 Line了解詳情 (請勿以為是免費分享),Line : aminwhite5168。

[公告2018/04/22] 台北 Python + Excel VBA 金融資訊爬蟲課程,課程如網頁內容 金融資訊爬蟲班:台北班 Python 金融資訊爬蟲、EXCEL VBA 金融資訊爬蟲,請盡快把握機會,歡迎券商、大專院校邀約講座。

[公告2018/06/01] 台指能量儀表板教學課程,課程如網頁內容 台北班:台指能量儀表板

2015年11月15日 星期日

Ubuntu安裝Redmine(4) --- Passenger安裝、Rails與Apache2整合佈署設定

前面介紹完安裝Ruby,雖然rails有自帶的App server WEBrick,但還是要整合進Apache上,這時就需要Passenger模組的協助,將Apache與Ruby整合串接起來,Passenger全名Phusion Passenger,原名為mod_rails,看名稱叫可看到是Apache模組,是整合佈署Ruby on Rails到Apache上最方便的方式,直接讓Rails的支援變成Apache或Nginx模組,如同mod_php一樣,最新版本已支援Python(django/web.py)、Node.js、Meteor。
安裝方式如下:
1. 安裝 Passenger模組
gem install passenger --no-ri --no-rdoc

gem install passenger

PS:這裡使用grm安裝passenger的原因是,apt-get沒有passenger這個套件。

2. 透過 Passenger 整合 apache 和 ruby
passenger-install-apache2-module
指令執行後,需要選擇須整合的語言,預設是Ruby,按Enter。

整合過程會需要其他相關模組一起配合使用,若系統不存在這些模組,畫面會以紅色字體顯示。

最後會貼心顯示系統缺少那些模組需要被安裝,連同安裝指令也會一起列出,依圖顯示系統目前缺少 libcurl4-openssl-dev、apache2-threaded-dev、libapr1-dec、libaprutil1-dev四個模組,所以只要安裝上這4個模組即可。


當4個模組安裝完成後,再次執行passenger-install-apache2-module安裝,這次就可以確認所需要的模組全都安裝到位,接下去系統會進行整合元件的產生與安裝。


最後完成編譯後,會顯示畫面中的模組存放路徑,將這路徑內容存放到/etc/apache2/sites-available/000-default.conf 的主機設定檔中。


3. 將Passenger產生的模組路徑設定寫入Apache2設定檔
在這階段的設定很重要,網路上多數教學文章都只寫將上面的模組路徑寫入到Apache2 設定檔httpd.conf中,這樣的敘述是錯誤,原因有:
(1) 在Ubuntu的Apache2中沒有httpd.conf檔案,只有apache2.conf,httpd.conf存於Windows系統的Apache。
(2) apache2.conf的內容也不是用來存儲虛擬主機設定的檔案,在/etc/apache2/sites-available/000-default.conf 才有虛擬主機設定內容。

將模組路徑寫到/etc/apache2/sites-available/000-default.conf 檔案裡。
補充說明:網路教學文未提及模組路徑要寫入於檔案頭檔案尾,經實驗結果頭尾位置可以放,只要模組路徑內容正確即可,但請勿放置於<virtualhost *:80> ~ </virtualhost>之間。

補充說明:
讀者於網路文章中會見到 <virtualhost *:80> 與 <virtualhost *> 兩種寫法,這兩種寫法產生的效果是相同,Port 80是Web連接Port,如果設定檔中沒有特別指定其他Port No.,預設都為 Port 80,可省略不寫。

4. 修改Apache2設定檔虛擬主機連線設定(重要!!!、重要!!!、重要!!!)
以下將介紹2種常見的方法,請各位讀者一定要花時間去了解,這樣才能看懂網路文章所寫內容,以及後續Redmine設定。

方法1:IP-based,直接連線虛擬主機。
Step 1. 在/var/www/下建立一個Rails專案。
Rails new testrails

Step 2. 修改設定檔內容。
vi /etc/apache2/sites-available/000-default.conf

Step 3. 檢查設定檔中是否有任何語法錯誤:
apache2ctl configtest

Step 4. 設定站台連結。
a2ensite 000-default.conf

Step 5. 重新啟動rails server。
service apache2 reload

service apache2 restart

service apache2 stop
service apache2 start

/etc/init.d/apache2 restart

開啟瀏覽器輸入http://127.0.0.1 或 http://ip ,此時的Apache2 server是啟動狀態下所顯示的畫面,此時的rails server是未啟動狀態。

方法2:Host-based Virtual Hosting,透過中繼轉換連線至虛擬主機 (此方法在Redmine設定常被使用)
Step 1. 建立中繼站點連結。
ln -s /var/www/testrails/public /var/www/iinfo

Step 2. 修改設定檔內容。
vi /etc/apache2/sites-available/000-default.conf

Step 3. 設定站台連結。
a2ensite 000-default.conf

Step 4. 重新啟動rails server。
service apache2 restart

開啟瀏覽器輸入http://127.0.0.1/iinfo/ 或 http://ip/iinfo/ ,此時的Apache2 server是啟動狀態下所顯示的畫面,此時的rails server是未啟動狀態。

PS:請注意方法1與方法2都未啟動Rails server,只啟動Apache server,就可以讓rails專案執行,表示已將Ruby整合至Apeche server了。

4. 安裝過程遇到的問題
問題現象1:使用vi命令時,不能正常編輯檔,使用方向鍵時老是出現很多字母。

原因:主要是新安裝的系統只裝了vi,沒有裝vim。加上vi不能直接按退格鍵刪除字元,所以當你使用退格鍵刪除字元,只有在按下esc時,那些字元才會消失。
解決方法:
1. 移除vi
apt-get remove vim-common

2. 安裝vim
apt-get install vim

如果你覺得敲VIM比敲VI更加麻煩或者不習習慣的話,可以使用alias命令給VIM的別名設置為VI,命令格式如下:
alias vi="vim"

問題現象2:設定虛擬主機方法2,遇到無法重啟Apache2 server的問題。

原因:一般該情況的發生多半是未將/etc/apache2/sites-available/000-default.conf 設定檔填寫正確,所以要多注意設定檔的內容。

參考資料: