Linux下rails环境安装(四)lighttpd+ImageMagick+RMagick

2008-05-05 15:12Linux下rails环境安装(四)lighttpd+ImageMagick+RMagic

7、配置Lighttpd

修改/etc/lighttpd/lighttpd.conf

1)server.modules
取消需要用到模块的注释
mod_rewrite
mod_access
mod_fastcgi
mod_simple_vhost
mod_cgi
mod_compress
mod_accesslog

2)指定相应的目录
server.document-root
server.error-log
accesslog.filename

3)用什么权限来运行lighttpd
server.username            = "nobody"
server.groupname           = "nobody"
从安全角度来说,不建议用root权限运行web server,可以自行指定普通用户权限。

4)静态文件压缩
compress.cache-dir         = "/tmp/lighttpd/cache/compress"
compress.filetype          = ("text/plain", "text/html","text/javascript","text/css")

可以指定某些静态资源类型使用压缩方式传输,节省带宽,对于大量AJAX应用来说,可以极大提高页面加载速度。

5)配置ruby on rails

最简单的配置如下:
$HTTP["host"] == "www.xxx.com" {
server.document-root = "/yourrails/public"
server.error-handler-404 = "/dispatch.fcgi"
fastcgi.server = (".fcgi" =>
    ("localhost" =>
      ("min-procs" => 10,
       "max-procs" => 10,
       "socket" => "/tmp/lighttpd/socket/rails.socket",
       "bin-path" => "/yourrails/public/dispatch.fcgi",
       "bin-environment" => ("RAILS_ENV" => "production")
      )
    )
)
}
即由lighttpd启动10个FCGI进程,lighttpd和FCGI之间使用本机Unix Socket通信。

Lighttpd的FAQ:无法启动Ruby on Rails

FastCGI的启动脚本位于Rails应用目录下面public/dispatch.fcgi,如果无法启动Lighttpd,报告FastCGI错误,你可以尝试着手工运行该脚本cd public && ./dispatch.fcgi,看看是否可以运行。
一般来说,很多人都是在Windows下面创建Rails项目,导致dispatch.fcgi脚本的ruby运行路径指向windows下面的ruby,部署到Linux上面就无法运行了,另外一方面Windows上面创建的Rails项目在Linux上面dispatch.fcgi没有可执行权限,所以也需要授予可执行权限。


8、安装ImageMagick和RMagic

RMagic是ruby处理图片需要用到的库,很多ruby应用由于都涉及图片处理的功能,往往需要依赖RMagic,但安装ImageMagick和RMagic相当烦琐。

安装ImageMagick
http://www.imagemagick.org
ImageMagick是用C语言实现的图形处理库,有Unix版本和Windows版本。对于Unix版本来说,安装比较麻烦些,另外不建议安装ImageMagick二进制版本,往往会导致缺少某些图片处理功能,导致RMagic安装失败。下载ImageMagick源代码,解压缩,配置:

具体下载源码地址:
ftp://ftp.fifi.org/pub/ImageMagick
ImageMagick.tar.gz
tar xzvf ImageMagick.tar.gz
cd ImageMagick-6.2.6
./configure --prefix=/usr/local/ImageMagick

观察配置后给出来的支持图形格式,看看该图形格式支持是否是yes,如果不是,那么必须先安装该图形格式的本地库。例如,你应该检查是否已经安装如下rpm包:
rpm -qa |grep libpng
rpm -qa |grep libpng-devel
rpm -qa |grep libjpeg
rpm -qa |grep gd-devel
如果你希望支持tiff格式,还应该检查
rpm -qa |grep libtiff
如果没有安装,那么在Linux安装光盘找到相应rpm包安装上,再次configure直到确认需要的图形格式全部支持为止,然后编译安装:

检查后发现很多都不支持,迷惑ing
rpm -qa这些png,貌似又是支持的。
所以下载一个新点的ImageMagick来试试,看看是不是这个6.2.6有点老了

具体下载地址
http://sourceforge.net/project/showfiles.php?group_id=24099
ImageMagick-6.4.1-0.tar.gz
tar xzvf ImageMagick-6.4.1-0.tar.gz
cd ImageMagick-6.4.1
./configure --prefix=/usr/local/ImageMagick
make && make install

检测不到jpeg,png,freetype,但我已经在系统中安装了这些程序,只是ImageMagick没有检测到。查看 config.log 查找原因,后来打开 config.log 文件查找原因,原来是jpeg,png,freetype的库文件和头文件没有被包含进去。可以用 LDFLAGS和CCPFLAGS来包含库文件和头文件。
在执行时加上以下参数:

./configure CPPFLAGS="-I/usr/local/include -I/usr/local/jpeg/include -I/usr/local/freetype/include -I/usr/local/freetype/include/freetype2" LDFLAGS="-L/usr/local/lib -L/usr/local/freetype/lib -L/usr/local/jpeg/lib" --prefix=/usr/local/ImageMagick

如果没有意外,则ImageMagick会检测到jpeg和freetype等
make && make install 安装成功

由于ImageMagic被安装在我们自行指定的/usr/local/ImageMagick,
后面安装RMagic会找不到需要用到的ImageMagic的命令和库,因此需要配置一下操作系统:

编辑/etc/profile里面的PATH环境变量,在最后面加入:
export PATH=/usr/local/ruby1.8.6/bin:/usr/local/ImageMagick/bin:$PATH

编辑/etc/ld.so.conf,加入:
/usr/local/ImageMagick/lib
执行命令:
ldconfig
将ImageMagick的库加入系统联接库

然后注销当前用户重新登录,便于环境变量修改生效,执行:
convert logo: logo.gif
看是否正确生成一个logo.gif的图片文件。

8、安装RMagic
http://rubyforge.org/projects/rmagick/
在rubyfoge上面下载RMagic的源代码发行包
RMagick-2.3.0.tar.gz
tar xzvf RMagick-2.3.0.tar.gz
cd RMagick-2.3.0
ruby setup.rb
ruby setup.rb install

convert logo: logo.jpg

如果配置和编译过程没有报错,即大功告成。

总体来说,ImageMagick和RMagic的安装很容易出错,安装起来比较困难。

你可能感兴趣的:(linux,socket,lighttpd,Ruby,Rails)