先说一下,本人下面并没把apache下的rails安装配置成功,一直都出500内部错误.现在只好尝试转移到ubuntu+lighttpd+fcgi+php+rails结构上,另外写个日志.
先用apt-get install ruby1.8 libruby1.8安装ruby。
上次手工下载安装的gem,并用gem安装的rails,到应用目录下,生成一个简单的rails应用,用script/server启动webrick,便可在客户机上用来访问了。
但是访问时,出错了,webrick的窗口日志提示什么没有irb。这应该是rails没装好,只好傻瓜安装
apt-get install rails
这下安装了好些包,装好后,这个webrick的访问就正常了,代表ruby和rails已能用了,只不过还不能用apache来接受web请求。
原来apache是已经有php在用的了,现在要增加fastcgid(网上都推荐这个fastcgid来代替fastcgi)模块。
用apt-get时一直都提示,找不到软件包libapache2-mod-fcgid,可我看别人的例子上都有的。后来听说,源的原因可能会引起找不到
一些软件包。便修改apt的sources.list中的源为另外一个,update不成功,又改回来,update一下竞然找到了。顺利安装。
查看一下,已有如下内容:
root@ubuntu:/var/www/niukou/public# cat
/etc/apache2/mods-available/fcgid.conf
<IfModule mod_fcgid.c>
AddHandler fcgid-script .fcgi
SocketPath /var/lib/apache2/fcgid/sock
</IfModule>
root@ubuntu:/var/www/niukou/public# cat
/etc/apache2/mods-available/fcgid.load
LoadModule
fcgid_module
/usr/lib/apache2/modules/mod_fcgid.so
设置一个虚拟主机作rails应用的:
<VirtualHost xxx.xxx.xxx.xxx>
ServerAdmin xxx@xxx.com
ServerName
DocumentRoot /var/www/niukou/public 这就是rails的发布目录了
DefaultInitEnv RAILS_ENV production
<Directory "/var/www/niukou/public">
Options ExecCGI FollowSymLinks 允许执行CGI,外部符号链接
AllowOverride None
Allow from all
Order allow,deny
</Directory>
RewriteEngine on
RewriteRule ^$ index.html [QSA]
RewriteRule ^([^.]+)$ $1.html [QSA]
此标记强制重写引擎在已有的替换字符串中追加一个查询字符串,而不是简单的替换。如果需要通过重写规则在请求串中增加信息,就可以使用这个标记。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L] L标志符表示在这里结束重写,防止后面再被重写
</VirtualHost>
|
因为在rails生成的publich目录下是有.htaccess文件,其中的设置会覆盖apache上文的配置,既然想把配置写在这里,所以设置AllowOverride为None,不让覆盖。
分析其中的四句重写规则:
RewriteEngine on
RewriteRule ^$ index.html [QSA] 这个是对首页的重写,没什么好说的了
RewriteRule ^([^.]+)$ $1.html [QSA]
RewriteCond %{REQUEST_FILENAME} !-f 如果请求所匹配的本地系统文件名不是一个文件
RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
|
阅读(1874) | 评论(1) | 转发(0) |