Ruby 虛擬主機是什麼?
Ruby 虛擬主機是可以直接執行 Ruby 網站程式的共享主機:在 cPanel 點選建立應用程式、選好 Ruby 版本,就能把 Sinatra 或 Rails 專案掛上網域運作。一般只支援 PHP 的主機沒有 Ruby 直譯器與 Rack 介面,上傳 .rb 檔不會被執行。
瑪尼國際的 Linux 虛擬主機透過 CloudLinux 的應用程式選擇器提供 Ruby 執行環境,所以 Ruby 虛擬主機是 Linux 虛擬主機本來就附的能力:官網用 PHP 或 WordPress,旁邊再跑一支 Ruby 服務,同一部主機、同一份年費。
在 cPanel 建立 Ruby 應用程式要幾個步驟?
四個步驟:建立應用程式、上傳程式、安裝套件、重新啟動。全部在 cPanel 的「Setup Ruby App」完成:
- 在 cPanel 開啟「Setup Ruby App」,選擇 Ruby 版本,指定應用程式目錄與要綁定的網域或子目錄。
- 把專案與 config.ru、Gemfile 上傳到應用程式目錄。
- 用 SSH 進入應用程式的環境執行 bundle install,依 Gemfile 安裝套件。
- 設定環境變數(例如 RAILS_ENV、資料庫密碼)後重新啟動,網址就會交由您的程式回應。
每個應用程式各自選版本、各自安裝 gem,一個專案升級不會影響另一個專案。
Sinatra 與 Rails 放在虛擬主機要注意什麼?
Sinatra 這類輕量框架最適合共享主機;Rails 以中小型、沒有常駐背景工作的專案為限。實務上的注意事項:
- 資產編譯在本機做:assets:precompile 在本機完成再上傳,避免在共享主機上跑耗資源的建置。
- 資料庫用 MySQL:方案內含 MySQL 5.x~9.4,Rails 以 mysql2 轉接器連線。
- 排程用 Cron Jobs:定時執行的 rake 任務可以交給 cPanel 的 Cron Jobs。
- 不跑常駐工作者:Sidekiq、Resque 這類需要 Redis 與常駐行程的佇列不適合共享主機。
Ruby 虛擬主機的限制與替代方案
共享主機會回收閒置的應用程式行程,把資源留給同機的其他帳號,因此不適合常駐型的服務。需要常駐背景工作者、Redis、Action Cable 大量長連線,或必須有 root 權限、Docker 的專案,請改看 VPS 主機或實體主機。
同樣的應用程式選擇器也支援 Python 虛擬主機與 Node.js 虛擬主機,三種語言可以在同一個帳號並存。版本需求請在簽約前告知,我們先確認主機上可選的版本再開通,來電 0800-670000。