Archive

Archive for the ‘rails’ Category

ubuntu中安装rails的方法

2007/06/17 发表评论
最近看了看rails,感觉很不错,现在我的项目用的castle框架,就是一个模仿rails的C#框架,不过目前我们只用了ActiveRecord和Windsor IOC Container。

记录一下如何在ubuntu中安装rails。

ubuntu的源里面已经有rails的包了,直接apt-get就可以获得,但是不推荐这种方式,apt-get的rails好像有点问题,然后也不是最新的版本。我们还是用标准的ruby的方式来安装。

首先安装ruby环境。

sudo apt-get install ruby rdoc irb libyaml-ruby libzlib-ruby ri ruby1.8-dev build-essential

再安装rubygem,这个是ruby的包管理器,类似与apt-get,命令也类似。到下面下载最新的rubygem

http://rubyforge.org/frs/?group_id=126

解压之后,进入文件夹, sudo ruby setup.rb

安装rails和mongrel.

sudo gem install rails mongrel –include-dependencies

根据网速不同,等待时间不一样, 有时候我要很久,有时候一会儿就好. 注意安装mongrel的时候会有几个候选, 我们选择最新的ruby版本就行,不要选择mswin的那个.

如果想用mysql数据库, 可以安装mysql的连接程序.

sudo apt-get install libmysqlclient15-dev

然后

sudo gem install mysql

配置apache, 用apache做服务器.(可选,非必须, 官方推荐用lighttpd, 我感觉apache简单方便一点.)

sudo apt-get install apache2 mysql-server

设定apache FCGI模式 (可以不用)

启用 mod_rewrite

sudo a2enmod rewrite

安装fcgi

sudo apt-get install libapache2-mod-fcgid

编辑配置文件 /etc/apache2/mods-available/fcgid.conf.


AddHandler fcgid-script .fcgi
SocketPath /var/lib/apache2/fcgid/sock
IdleTimeout 600
ProcessLifeTime 3600
MaxProcessCount 8
IPCConnectTimeout 8
IPCCommTimeout 48

安装ruby的fcig包.

sudo apt-get install build-essential ruby1.8-dev libfcgi-dev 
sudo gem install fcgi

下面是配置站点.

编辑一个虚拟目录的站点的配置文件.

sudo vim /etc/apache2/sites-available/rails (rails是站点名字, 自己可以随便起名字, ubuntu的apache的站点配置文件都放到这个目录里面, 还有个sites-enabled目录是这个目录里面文件的链接, 表示生效的站点)

SetEnv RAILS_ENV development
ServerName www.mysite.com
DocumentRoot /home/myuser/www/myrailsproject/public

Options ExecCGI FollowSymLinks
AddHandler fcgid-script .fcgi
Order allow,deny
Allow from all
RewriteEngine On
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /dispatch.fcgi?$1 [QSA,L]
AllowOverride None

ServerSignature On
# ErrorDocument 500 /500.html
ErrorLog /var/log/apache2/www.mysite.com.error.log
CustomLog /var/log/apache2/www.mysite.com.access.log combined
LogLevel warn

注意把上面的 /home/myuser/www/myrailsproject 改成你自己的rails应用的目录, 注意最后一定是 public 目录.

让上面的站点生效.

sudo a2ensite rails (rails 就是上面的站点名字, a2dissite rails 是不生效)

reload apache.

sudo /etc/init.d/apache2 force-reload

分类: rails
加关注

Get every new post delivered to your Inbox.