这几天一直折腾linux下的ror生产环境,也在网上早了一些资料,但都不适合ubuntu 7.10server ,多多少总会出点问题。由于我也是linux菜鸟所以我一出问题就重装linux,重装了六七次。今天终于成功了。现在我打算把他写下来献给用 ubuntu 7.10 server 的朋友。
首先需要安装个纯净的 ubuntu 7.10 server,
一、更新你的系统:
1.用apt-get把你的系统更新到最新的版本:
sudo apt-get update
sudo apt-get dist-upgrade
这样做可能会安装一个新的内核,并因此要求你重启。
二:安装必须的软件
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 mysql-client libmysqlclient15-dev
4.安装Apache
sudo apt-get install apache2
5.安装基本的编译环境,在后面安装mongrel时要用到
sudo apt-get install build-essential
6.安装Ruby
sudo apt-get install ruby1.8 ruby1.8-dev ri1.8 rdoc1.8 irb1.8 libtermios-ruby1.8 libmysql-ruby1.8
7.安装rubygems
wget (建议选用0.9.4,因为我当时用0.9.5是后面出过问题)
tar xzfv rubygems-0.9.4.tgz
cd rubygems-0.9.4
sudo ruby ./setup.rb
8.安装Rails、mongrel、termios程序库
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
sudo sudo gem update (更新gems)
安装mongrel时,会看到如下选择:
Select which gem to install for your platform (i486-linux)
1. mongrel 1.1.1 (ruby)
2. mongrel 1.1.1 (jruby)
3. mongrel 1.1.1 (mswin32)
4. mongrel 1.1 (mswin32)
5. mongrel 1.1 (ruby)
6. mongrel 1.1 (jruby)
7. Skip this gem
8. Cancel installation
> 1
选第一个
Select which gem to install for your platform (i486-linux)
1. fastthread 1.0.1 (mswin32)
2. fastthread 1.0.1 (ruby)
3. fastthread 1.0 (mswin32)
4. fastthread 1.0 (ruby)
5. Skip this gem
6. Cancel installation
>2
选第二个
以上,部署的必要软件基本上都装齐了
三、软件设置
1.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
替换 #Allow from .example.com 为 Allow from all (在第12行)
修改 /etc/apache2/apache2.conf 文件(默认是在最后一行)
sudo vim /etc/apache2/apache2.conf
替换 Include /etc/apache2/sites-enabled/ 为 #Include /etc/apache2/sites-enabled/ (在前面加上#)
然后在/etc/apache2/httpd.conf里添加以下部分
BalancerMember
BalancerMember
ProxyPass / balancer://mongrel/
ProxyPassReverse / balancer://mongrel/
重启Apache以使设置生效:
sudo /etc/init.d/apache2 restart
这样一个ubuntu 7.10 server 下的 ROR 的生产环境就配置好了。