在Ubuntu 14.04.1 LTS 下安裝apache passenger

理論上要安裝東西,最好用同一套版本管理系統處理,這樣在未來可以避免升級之後,產生套件相依性的干擾。
套件相依性爛掉之後,有時候要花比重灌更多的時間才能處理好,相當麻煩。
不過如果在 Ubuntu 下面,使用 apt-get 安裝的東西可能不一定是新版的,有的網站會教用 gem 安裝,這樣又違背了上面的說明。

現在我就遇到這問題了,已經裝好 Apache 2.4.x、php5、Mysql、Ruby 2.x、Rails 4.x。
接下來要安裝 passenger,發現 apt-get 要按照相依性安裝 Ruby 1.9.x,這就跟已經裝好的 Ruby 2.x 衝突了。只好都改用 gem 安裝。

假設你的狀況跟我一樣,提供我接下來的作法(指令)給各位參考:

  • gem install passenger
    應該會叫你順便做以下這幾個:
    apt-get install apache2-threaded-dev
    apt-get install libapr1-dev
    apt-get install libaprutil1-dev
  • passenger-install-apache2-module

之後再按照指示新增一個檔案在 /etc/apache2/conf-available/passenger.conf
內容類似這樣(請勿貼這裡的,而是按照畫面指示)

LoadModule passenger_module /home/taichis/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/passenger-4.0.53/buildout/apache2/mod_passenger.so

PassengerRoot /home/taichis/.rbenv/versions/2.1.3/lib/ruby/gems/2.1.0/gems/passenger-4.0.53
PassengerDefaultRuby /home/taichis/.rbenv/versions/2.1.3/bin/ruby


下指令 a2enconf passenger
再來新增一個檔案在 /etc/apache2/sites-available/myrails.conf (檔名自己取,後面留 .conf)


ServerName www.yourhost.com
# !!! Be sure to point DocumentRoot to 'public'!
DocumentRoot /somewhere/public

# This relaxes Apache security settings.
AllowOverride all
# MultiViews must be turned off.
Options -MultiViews
# Uncomment this if you're on Apache >= 2.4:
#Require all granted



下指令 a2ensite myrails
然後重新啟動這些新設定就好:
service apache2 reload

Comments

comments

發佈留言

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料