ubuntu+apache2+rails

在Ubuntu上部署Rails(Apache mod_proxy mongrel_cluster)

最近需要把Rails的程序发布出去,在发布的过程中遇到了一些问题,虽然都用Google解决了,不过也注意到,在Ubuntu下部署Rails和其它Linux环境有所不同,为了以后少走弯路,把最近部署的过程记了下来。
以下环境为7.04
一:以Server的形式安装Ubuntu,安装完成后,设置IP、软件安装源。(这点就不说了,论坛有很多教程)
二:安装必须的软件
1.安装OpenSSH,方便远程管理:


sudo apt-get install openssh-client openssh-server


2.安装Screen,方便远程连接后运行后台程序 (参见: linux 技巧:使用 screen 管理你的远程会话 )


sudo apt-get install screen


3.安装Mysql 5.0


sudo apt-get install mysql-server-5.0


4.安装Apache


sudo apt-get install apache2


安装完成后,在别的机器上打开FireFox输入http://服务器的IP地址 /apache2-default/ 如果屏幕显示It Works! 则表示安装成功
5.安装版本控制系统,方便在服务器上签出开发机器上的Rails程序,这里安装的是SVN(可选安装)


sudo apt-get install subversion


6.安装基本的编译环境,在后面安装mongrel时要用到


sudo apt-get install build-essential


7.安装ruby


sudo apt-get install ruby1.8 ruby1.8-dev ri1.8 rdoc1.8 irb1.8 libtermios-ruby1.8 libmysql-ruby1.8


注: Rails 升级到2.0.1后,还需要安装libopenssl-ruby1.8, 否则Mongrel启动时会报错


sudo apt-get install libopenssl-ruby1.8



然后:


      cd /usr/bin/
      sudo cp ruby1.8 ruby
      sudo cp irb1.8 irb  # 这是为了能够正常启动rails的Control


8.安装rubygems
由于源里的版本比较低,可以到

http://rubyforge.org/frs/?group_id=126&release_id=11889

去下载最新版本;
下载tgz格式的,解压后,进入解压目录,然后运行:


sudo ruby ./setup.rb


9.安装Rails、mongrel、termios程序库


      sudo gem update
      sudo gem install --include-dependencies rake
      sudo gem install --include-dependencies rails
      sudo gem install --include-dependencies termios
      sudo gem install --include-dependencies mongrel
      sudo gem install --include-dependencies mongrel_cluster



安装mongrel时,会看到如下选择:

Select which gem to install for your platform (i486-linux)
1. mongrel 1.0.1 (mswin32)
2. mongrel 1.0.1 (ruby)
3. mongrel 1.0 (mswin32)
4. mongrel 1.0 (ruby)
5. Skip this gem
6. Cancel installation
> 2
选第二个,mongrel1.0.1好像修复了一个漏洞,然后还会有另一个选择:

Select which gem to install for your platform (i486-linux)
1. fastthread 1.0 (ruby)
2. fastthread 1.0 (mswin32)
3. fastthread 0.6.4.1 (mswin32)
4. fastthread 0.6.4.1 (ruby)
5. Skip this gem
6. Cancel installation
>1
选第一个

以上,部署的必要软件基本上都装齐了

注: 在710里用Gem安装Rails、mongrel等软件时,有提示安装成功, 但在命令行下运行却提示找不到命令,这是因为Gem没有把命令链接到/usr/bin/ , 这时可以手动把/var/lib/gems/1.8/bin/下的文件cp到/usr/bin/。


cp -i /var/lib/gems/1.8/bin/* /usr/bin/


但这样以后升级软件的时候会比较麻烦,要重新cp一份,也可以做一个符号链接如: ln -s /var/lib/gems/1.8/bin/rails /usr/bin/rails
gem安装软件的目录可以通过命令 gem install --help 查看到。


------------------------ 以下是软件的设置部分 --------------------------------

三:软件设置
1.mysql 的设置
参考了论坛里的这篇文章:http://forum.ubuntu.org.cn/viewtopic.php?t=1320
在终端运行:


mysql -u root

mysql>delete from mysql.db;   <- 清空db表中默认对test数据库的权限设置
mysql>delete from mysql.user where not(host="localhost") and user="root";   <- 清除多余的root用户
mysql>update mysql.user set user="ubuntu" where user="root";  <- 为了安全,将默认的root用户名更改为ubuntu。
mysql>update mysql.user set Password=PASSWORD('ubuntu_cn') where user='ubuntu'; <- 给ubuntu用户加上密码"ubuntu_cn"
mysql>flush privileges;
mysql>exit



清除之前对数据库的操作日志,这样别人就不知道刚刚改的密码啦


rm ~/.mysql_history
touch ~/.mysql_history



2.Mongrel_cluster配置
Mongre_cluster的设置比较简单,在你的Rails应用的根目录下运行,以下假设Rails的应用程序目录为/home/ubuntu/railsapp/demo/


mongrel_rails cluster::configure -e production -p 8000 -a 127.0.0.1 -N 2 -c /home/ubuntu/railsapp/demo/



解释一下:
-e 指定运行环境,有production(生产)、development(开发)、test(测试)三个选项。
-p 指定监听端口
-a 127.0.0.1 指定Mongrel在localhost下监听
-N 2 启动两个Mongrel进程,端口从8000~8001

运行后,会在应用程序目录 config/mongrel_cluster.yml, 以后有什么变化,直接修改这个文件就可以了。
在终端下输入以下命令启动Mongrel:

 

mongrel_rails cluster::start


要停止则输入:


mongrel_rails cluster::stop



2.Apache 的设置
首先要启动mod_proxy模块.


cd /etc/apache2/mods-enabled/
sudo ln -s ../mods-available/proxy_balancer.load proxy_balancer.load
sudo ln -s ../mods-available/proxy_http.load proxy_http.load
sudo ln -s ../mods-available/proxy.load proxy.load
sudo ln -s ../mods-available/proxy.conf proxy.conf



接着要修改一下proxy.conf文件


sudo vim /etc/apache2/mods-available/proxy.conf



大概是在11行:


#Allow from .example.com


改为


Allow from all



修改 /etc/apache2/apache2.conf 文件(默认是在最后一行):


Include /etc/apache2/sites-enabled/


改为:


#Include /etc/apache2/sites-enabled/


然后在/etc/apache2/httpd.conf里添加以下部分:


<Proxy balancer://mongrel>
  BalancerMember http://127.0.0.1:8000
  BalancerMember http://127.0.0.1:8001
</Proxy>

<VirtualHost *:80>
  ProxyPass / balancer://mongrel/
  ProxyPassReverse / balancer://mongrel/
</VirtualHost>



重启Apache以使设置生效:


sudo /etc/init.d/apache2 restart



在Firefox里输入http://服务器的IP地址 / 进行测试,检查Rails程序是否能够正常运行。

这样一个Rails的生产环境就配置好了。 :D

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值