apache+passenger部署rails应用
(1)安装apache: sudo apt-get install apache2
(2)安装passenger
$ sudo gem install passenger
$ passenger-install-apache2-module
安装到最後时,会出现如下的3条语句:
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.2
PassengerRuby /usr/bin/ruby1.8
把三条语句复制到/etc/apache2/apache2.conf的最后
(3)在/etc/apache2/sites-available下面创建available的应用配置
$ sudo touch /etc/apache2/sites-available/rails-app
打开rails-app,加入以下语句:
<VirtualHost *:80>
# RailsEnv development 加上这句的话,以development的模式部署
ServerName binku.com
DocumentRoot /home/binku/programme/rails-app/public
</VirtualHost>
(4)创建软链接,把available的应用程序配置链接到/etc/apache2/sites-enabled下面,apache将读取该文件夹下的配置.
$ sudo ln -s /etc/apache2/sites-available/rails-app /etc/apache2/sites-enabled/rails-app
(5)如果要设置虚拟主机的ip可以修改/etc/hosts,加上
127.0.0.1 localhost
172.17.21.119 binku.com
(6)如果以production模式部署的话,要记得创建production的数据库
$ rake db:create RAILS_ENV=production
$ rake db:migration RAILS_ENV=production
(7)重启apache:sudo /etc/init.d/apache2 restart,现在就可以在浏览器访问rails应用了.
重启apache前可以打开error日志看看启动有没有出错:tail -f /var/log/apache2/error.log
(8)修改完程序后,如果要重新部署可以输入:
touch rails-app/tmp/restart.txt