Apache-2.2

如何在 Rackspace 伺服器上使用 RVM 安裝 Phusion Passenger?

  • December 11, 2015

我正準備開始託管我自己的 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。

  1. 安裝所需的 rpm
yum install httpd httpd-devel openssl-devel mod_ssl
  1. 添加 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
  1. 在stealthymonkeys.com 上設置使用yum repo,它為乘客託管rpm。安裝 mod_passenger,它需要 epel repo 用於某些依賴的 rpm。
rpm -Uvh http://passenger.stealthymonkeys.com/rhel/6/passenger-release.noarch.rpm
  1. 使用以下命令安裝 mod_passenger。
yum   --enablerepo=epel  --enablerepo=passenger  install mod_passenger

由於我不了解您的環境,因此無法提供更好的答案,但希望這會有所幫助。

引用自:https://serverfault.com/questions/385103