CentOS+Ruby on rails+Apache构建ruby的web程序

2014年09月11日

关于Ruby是什么,Ruby on rails是什么,这里不做介绍,请参看官方网站。

这主要是讨论如何在CentOS上架设Ruby on rails的web应用程序。

1. 如何安装CentOS,请参考安装Linux(Centos6)服务器
2. 如何安装Apache,请参考在Linux(CentOS6)上搭建Apache2+Mysql5+PHP5开发环境
3. 安装Ruby 2以及Rails 3
Linux上管理安装Ruby的最好方法莫过于RVM(Ruby Version Manager)了,RVM可以很轻松的管理Ruby的各个版本,方便的切换Ruby版本。
最新的RVM可以通过下面的命令获取,安装。请使用root登录导系统进行操作。

# curl -L get.rvm.io | bash -s stable 
# source /etc/profile.d/rvm.sh 

安装RVM必要的包以及相关软件

rvm requirements 

安装Ruby, 现时最新版本伟2.1.2

rvm install 2.1.2

将2.1.2设置为默认使用版本

rvm use 2.0.0 --default

安装Rails,这需要一定的时间,请耐心等待

gem install rails

查看已安装Ruby以及Rails版本

# ruby -v
ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux]
# rails -v
Rails 3.2.13
#

4. 安装Phusion Passenger

Phusion Passenger是一应用服务器,经常被用在Ruby的web应用程序上或网站上,以Ruby的gem的形式发布。

安装Phusion Passenger gem

gem install passenger 

安装Apache的两个包

yum install curl-devel httpd-devel 

编译Apache的Phusion Passenger模块

passenger-install-apache2-module  

编译过程中会出现类似于下面的信息,需要将其手动设置到/etc/httpd/conf/httpd.conf中

   LoadModule passenger_module /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-4.0.50/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /usr/local/rvm/gems/ruby-2.1.2/gems/passenger-4.0.50
     PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.1.2/wrappers/ruby
   </IfModule>

5. Rails简单程序

准备

# yum install sqlite-devel
# cd /home/mokuzai

创建站点

# rails new mokuzai-point 
# cd mokuzai-point

执行bundle install命令

bundle install

初始化数据库

rake db:migrate 

创建虚拟站点

  RackEnv development
<VirtualHost *:80> 
 ServerName mokuzai-point.hanbai.jp 
 # !!! Be sure to point DocumentRoot to 'public'! 
 DocumentRoot /home/mokuzai/mokuzai-point/public 
 <Directory /home/mokuzai/mokuzai-point/public> 
 # This relaxes Apache security settings. 
 AllowOverride all 
 # MultiViews must be turned off. 
 Options -MultiViews 
 </Directory> 
</VirtualHost>

重启Apache

service httpd restart

确认
http://mokuzai-point.hanbai.jp