如何在 Rackspace 伺服器上使用 RVM 安裝 Phusion Passenger?
我正準備開始託管我自己的 Ruby 應用程序。我的生產伺服器上已經安裝了 RVM。現在我想安裝Passenger。
我將 Ruby 1.9.2 設置為預設值。我安裝了乘客 gem 並執行了
passenger-install-apache2-module
。這顯示了缺少的依賴項列表,其中之一是 OpenSSL 對 Ruby 的支持。它解釋說我需要重新安裝支持 OpenSSL 的 Ruby。我不知道該怎麼做,也不知道為什麼一開始就不存在。以下是其他錯誤列表:
- GNU C++ 編譯器…未找到
- 具有 SSL 支持的 Curl 開發標頭…未找到
- OpenSSL 開發標頭…未找到
- Zlib 開發標頭檔…未找到
- Ruby 開發標頭檔…找到
- Ruby 的 OpenSSL 支持…未找到
- RubyGems… 找到
- 耙子…位於 /usr/local/rvm/wrappers/ruby-1.9.2-p320/rake
- 機架…找到
- Apache 2… 位於 /usr/sbin/httpd
- Apache 2 開發標頭…未找到
- Apache Portable Runtime (APR) 開發標頭…未找到
- Apache Portable Runtime Utility (APU) 開發標頭檔…未找到
似乎很多這些東西應該已經可用了。我是否安裝了 RVM 錯誤?有沒有一種更簡單的方法可以讓Passenger 啟動並執行,而無需安裝一堆我以後可能永遠不會使用的依賴項?我該怎麼辦?
**更新:**我忘了提到這是一個託管在 Rackspace 的 RedHat 伺服器。我不確定是否有推薦的 Rackspace 方法來執行此操作。我知道他們維護自己的受信任包/儲存庫列表。
Rackspace 沒有多大幫助,但這最終比我想像的要容易,而且沒有任何問題。我只是按照乘客給我的指示去做。它說我需要安裝一堆包,所以我一個一個地跑一遍(即
sudo yum install openssl-devel
)。沒有一個包與我安裝的其他包衝突,因為它們都是新的(我不需要更新任何包)。然後我再次執行乘客安裝程序,它能夠自行編譯。我遇到的唯一問題是Passenger 只允許您執行一個版本的Ruby,因此當您通過RVM 安裝Passenger 時,請確保您使用的是
rvm use
您想要使用的Ruby 版本。
我必須安裝Passenger(特別是mod_passenger),這就是我的做法。我的環境是 CentOS 6、x86_64。
- 安裝所需的 rpm
yum install httpd httpd-devel openssl-devel mod_ssl
- 添加 EPEL 倉庫。記得編輯 /etc/yum.repos.d/epel.repo 並通過將 enabled 設置為 0 來禁用它。epel-release-6-5.noarch.rpm 的實際來源不會來自 fedoraproject.org/…您實際上將訪問鏡像伺服器。
wget http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm rpm -ivh epel-release-6-5.noarch.rpm
- 在stealthymonkeys.com 上設置使用yum repo,它為乘客託管rpm。安裝 mod_passenger,它需要 epel repo 用於某些依賴的 rpm。
rpm -Uvh http://passenger.stealthymonkeys.com/rhel/6/passenger-release.noarch.rpm
- 使用以下命令安裝 mod_passenger。
yum --enablerepo=epel --enablerepo=passenger install mod_passenger
由於我不了解您的環境,因此無法提供更好的答案,但希望這會有所幫助。