Ubuntu上Apache+Passenger部署实践

Ubuntu上Apache+Passenger部署实践

现在Rails官方推荐的最佳部署方式是Apache+Passenger的模式。此模式拥有及其强大的功能,能够自动增减集群进程的数量,对后续部署又很简单。难怪DHH在博客中对Passenger赞誉有加。

 

近期我在Ubuntu上部署了几个Rails网站,都是采用Apache+Passenger的模式。故此写下我的安装配置经验,与大家分享。

 

安装完Ubuntu 8服务版后,操作系统非常小,很简洁,没有一点多余的软件。这样似乎是Ubuntu出品方的理念。所以我们要一切从头开始安装。

 

首先安装unzip

apt-get install unzip

 

安装zlib库
wget http://www.zlib.net/zlib-1.2.3.tar.gz
tar -xvf zlib-1.2.3.tar.gz
cd zlib-1.2.3
./configure
make 
make install

接着安装mysql
apt-get install mysql-server
安装完以后注意修改监听ip地址

 

如果源码想用CVS管理的话,可以安装cvs
apt-get install cvs

 

ubuntu装完后是不带gcc的,这点可能会让人觉得匪夷所思。不过没关系,安装也不麻烦
apt-get install gcc
apt-get install build-essential


接着下载Ruby代码
wget ftp://ftp.ruby-lang.org/pub/ruby/stable-snapshot.tar

编译用gcc进行编译了
./configure
make

make install

 

ubuntu装完后不带openssl库,所以必须手动下载openssl
apt-get install openssl
apt-get install libssl-dev
apt-get install libssl0.9.8

然后进入ruby源码目录下的/ext/openssl
    cd RUBY_SOURCE/ext/openssl
    ruby extconf.rb
    make
    sudo make install

 

下面该安装gem了
wget http://rubyforge.org/frs/download.php/57643/rubygems-1.3.4.tgz
tar -xzf rubygems-1.3.4.tgz
ruby setup.rb

下面该轮到用gem安装软件了
gem install rake
gem install rails

gem install mongrel

apt-get install libmysqlclient15-dev
gem install mysql

安装imagemagick,如果你的网页不处理图片上传及展示功能,可略过此步骤
apt-get install imagemagick
apt-get install librmagick-ruby
apt-get install libmagick9-dev
gem install rmagick

轮到Web服务器了
apt-get install apache2
gem install passenger  
passenger-install-apache2-module(如果找不到此命令,则进入改软件的gem的目录,进入bin子目录,手工执行)  
按照此命令的指示一条一条往下执行。并按照提示配置Apache。

 

添加一个网站
<VirtualHost *:80>
      ServerName www.****.com
      DocumentRoot /root/****/public
</VirtualHost>

在这里可以添加多个网站,方便我们在一台服务器上部署多个ROR应用,而不必使用不同的端口。

如果对PHP感兴趣,可以安装安装php模块
apt-get install libapache2-mod-php5

安装完后php与rails无缝集成。可以再rails应用下面写几个php文件试试。


所有一切都安装完了以后,可以考虑安装Webmin,一个Web形式的Linux管理软件,有了它几乎可以不必远程telnet操作服务器了。
wget http://nchc.dl.sourceforge.net/sourceforge/webadmin/webmin-1.470.tar.gz
tar -xvf webmin-1.470.tar.gz
./setup.sh

你可能感兴趣的:(Ubuntu上Apache+Passenger部署实践)