Ruby on Rails是一個(gè)快速開(kāi)發(fā)的Web框架,Web設(shè)計(jì)人員和開(kāi)發(fā)人員利用它能實(shí)現(xiàn)動(dòng)態(tài)的全功能Web應(yīng)用程序。 本文使用Phusion Passenger或mod_rails方法部署Rails應(yīng)用程序。 Passenger允許您直接在Apache應(yīng)用程序中嵌入Rails應(yīng)用程序,而無(wú)需使用FastCGI或復(fù)雜的Web服務(wù)器代理。
安裝Passenger和依賴(lài)關(guān)系
安裝使用Ruby,構(gòu)建Ruby模塊和運(yùn)行Rails應(yīng)用程序所需的系統(tǒng)包:
sudo apt-get install build-essential libapache2-mod-passenger apache2 ruby ruby-dev libruby zlib1g-dev libsqlite3-dev
2.使用gem模塊的gem包管理器,安裝fastthread gem:
sudo gem install fastthread
3.安裝Ruby On Rails:
sudo gem install rails
4.(可選)為您的應(yīng)用程序安裝其他依賴(lài)項(xiàng),例如MySQL支持:
sudo apt-get install mysql-server libmysqlclient-dev mysql-client mysql-common
sudo gem install mysql
5.將rails添加到$PATH環(huán)境變量。 請(qǐng)確保用正在運(yùn)行的Ruby版本替換VERSION:
ls /var/lib/gems
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/var/lib/gems/VERSION/bin"
6.在您的網(wǎng)站的公共文件夾中啟動(dòng)一個(gè)新的rails項(xiàng)目,以確保一切正常配置。 替換為你的應(yīng)用程序名稱(chēng):
sudo rails new /var/www/html/example.com/public_html/application
配置Apache以使用Passenger
1.打開(kāi)配置文件,調(diào)整DocumentRoot
/etc/apache2/sites-available/example.com.conf:
DocumentRoot /var/www/html/example.com/application/public
2.重啟Apache
sudo systemctl restart apache2
部署多個(gè)Rails應(yīng)用程序
有許多方法可以使用Passenger部署多個(gè)Rails應(yīng)用程序。 最簡(jiǎn)單的方法是運(yùn)行如上配置的多個(gè)不同的虛擬主機(jī)來(lái)托管單個(gè)Rails應(yīng)用程序。 或者,您可以在單個(gè)虛擬主機(jī)中托管多個(gè)Rails應(yīng)用程序。 本節(jié)介紹一個(gè)。
1.添加RailsBaseURI指令,指定虛擬主機(jī)配置中Rails應(yīng)用程序的路徑,如以下示例所示:
/etc/apache2/sites-available/example.com.conf:
DocumentRoot /var/www/html/example.com/public_html/
RailsBaseURI /app1
RailsBaseURI /app2
RailsBaseURI /app3
這些指令配置Passenger在example.com站點(diǎn)上指定的三個(gè)位置運(yùn)行三個(gè)Rails應(yīng)用程序。
2.將應(yīng)用程序的public/目錄鏈接到public_html/的子目錄:
ln -s /var/www/html/example.com/app1/public/ /var/www/html/example.com/public_html/app1/
ln -s /var/www/html/example.com/app1/app2/ /var/www/html/example.com/public_html/app2/
ln -s /var/www/html/example.com/app1/app3/ /var/www/html/example.com/public_html/app3/