CentOS下 rails+lighttp+fastcgi+mysql 安装部署实录

安装过程参考了robbin的文章:在 Linux 平台上安装和配置 Ruby on Rails 详解

关于安装的步骤和所使用的参数,在robbin的文章里已有很详细的说明,我这里就不再复制粘贴了,只列举我所使用到的命令及参数。

一、版本说明

CentOS5.4,i386版
Ruby 1.8.7 p72
RubyGem 1.3.5
Rails 2.3.2
Mysql 5.1.43
Mysql-Ruby 2.8.2
FCGI 2.4
Lighttpd 1.4.26
FastCgi-Ruby 0.8.8

所有软件均事先下载,保存在服务器的/home/soft文件夹下。

二、安装过程

1、安装mysql
首先安装mysql组和用户
# groupadd mysql
# useradd mysql -g mysql -M -s /sbin/nologin

安装mysql
# cd /home/soft/
# tar -zxvf mysql-5.1.43.tar.gz
# cd mysql-5.1.43
# ./configure --prefix=/usr/local/mysql --with-mysqld-user=mysql --with-charset=utf8 --with-collation=utf8_general_ci
# make && make install

设置一个配置文件
# cp support-files/my-medium.cnf /etc/my.cnf

创建授权表及设置相关目录属性
# cd /usr/local/mysql/
# bin/mysql_install_db --user=mysql
# chown -R root  .
# chown -R mysql var
# chgrp -R mysql .

尝试启动mysql
# /usr/local/mysql/bin/mysqld_safe  &



2、安装ruby
# cd /home/soft/
# tar -zxvf ruby-1.8.7-p72.tar.gz
# cd ruby-1.8.7-p72
# ./configure --prefix=/usr/local/ruby
# make && make install
修改操作系统PATH路径:
# export PATH=/usr/local/ruby/bin:$PATH


3、安装ruby on rails
首先安装rubygems
# cd /home/soft/
# tar -zxvf rubygems-1.3.5.tgz.tar
# cd rubygems-1.3.5
# ruby setup.rb
查看一下版本号,以确定是否安装成功。
# gem -v

tips:安装gem时,刚开始选择的是1.3.1,安装完查看版本号时报出一串看起来像是语法错误的提示,再次运行“ruby setup.rb”报同样的错误,回到ruby的解压目录,重新make install后,ruby恢复正常,再次安装gem,还是同样的结果,估计是gem1.3.1和ruby1.9.1不兼容,于是下载gem1.3.5,安装后一切正常。

安装rails
# gem install rails -v 2.3.2
查看一下版本号,以确定是否安装成功。
# rails -v

4、安装ruby的mysql适配器
# cd /home/soft/
# tar -zxvf mysql-ruby-2.8.2.tar.gz
# cd mysql-ruby-2.8.2
# ruby extconf.rb --with-mysql-dir=/usr/local/mysql
# make && make install

5、安装FCGI
# cd /home/soft/
# tar -zxvf fcgi-2.4.0.tar.gz
# cd fcgi-2.4.0
# ./configure --prefix=/usr/local/fcgi
# make && make install

安装ruby的fcgi支持库
# cd /home/soft/
# tar -zxvf fcgi-0.8.8.tar
# cd fcgi-0.8.8
# ruby setup.rb config -- --with-fcgi-include=/usr/local/fcgi/include --with-fcgi-lib=/usr/local/fcgi/lib
# ruby setup.rb setup
# ruby setup.rb install
tips:安装到这里时,最初使用的是0.8.7版本的fcgi支持库,结果在setup时出错,改为0.8.8版本后可以正常安装。

6、安装Lighttpd

安装Lighttpd
# tar -zxvf lighttpd-1.4.26.tar.gz
# cd lighttpd-1.4.26
# ./configure --prefix=/usr/local/lighttpd
# make && make install

编译后配置:
# cp doc/sysconfig.lighttpd /etc/sysconfig/lighttpd
# mkdir /etc/lighttpd
# cp doc/lighttpd.conf /etc/lighttpd/lighttpd.conf
# cp doc/rc.lighttpd.redhat /etc/init.d/lighttpd

然后修改/etc/init.d/lighttpd,把
lighttpd=/usr/sbin/lighttpd
改为
lighttpd=/usr/local/lighttpd/sbin/lighttpd
tips:与robbin的原文有点区别,应该是版本的关系。

配置Lighttpd的步骤与robbin原文完全一致,这里不再赘述。重点写几条在成功启动lighttpd之前遇到的问题:
1)配置文件中所涉及到的目录在实际环境中一定要真实存在,这是个很初级的问题,但是在按部就班的步骤中很容易漏掉。
2)运行lighttp的启动脚本之后,尽管在命令行下会显示“[确定]”,但实际上很可能并未启动成功,错误信息应该到lighttpd的错误log中查找,具体位置在配置文件中有定义。
3)有些朋友的rails项目是之前就已经存在的,在启动lighttpd之前需将项目拷贝到指定位置,如果是一个全新的项目,则要在启动之前创建项目,尤其值得注意的是,创建项目时要加上“-D”参数,这样,rails会自动生成dispath.fcgi文件,在Lighttpd+fastcgi这种运行方式下,没有这个文件,lighttpd是启动不起来的。部署文中提到的环境时,这个问题困扰了我两个多小时,一直不知道为什么就是找不着那个dispath.fcgi,网上也没找到直接的答案,还以为是中间步骤上哪里出了错,反复了好几遍,最后无意中仔细看了看rails --help,发现了这个参数,经实验,终于在浏览器中看到了rails的欢迎首页。


后记

其实整体上来说每个人的安装过程都是大同小异,不会有什么本质区别,但是由于所使用软件版本的不同,服务器安装环境的不同等等又会带来不同的障碍,每个人的解决方法又会有所不同。在这里留下本文的目的就在于记录本人所遇到的问题,一方面强化记忆与理解,另一方面在下次部署时能够直接跨越或快速解决这些问题。

希望本文可以为大家在部署类似环境时提供一个参考。

 

你可能感兴趣的:(mysql,centos,lighttpd,Ruby,Rails)