第36个标记 » 部署

     喜马拉雅的天空

Nginx+Mongrel+Rails配置摘要

Nginx+mongrel+Rails配置的方案很多,在这里只摘抄Nginx的配置文件,然后解释一下

  user www www;#用户名和组都为www,前者为用户名,后者为用户组。如果主进程以root来运行,                            #nginx使用setuid()/setgid() 。如果没有指定组,nginix使用和用户名相同的组名。
  worker_processes  10;  #worker 进程数
    error_log  logs/error.log debug;   #错误日志文件,debug为级别 ,                                                    #有debug , info , notice ,warn ,error ,crit   pid        /var/run/nginx.pid;  #nginx的进程位置
  events {  
    use epoll;     worker_connections  51200;   //worker连接数  }  
http {      include       conf/mime.types;      default_type  application/octet-stream;  
  #charset  utf-8;  sendfile        on;     #tcp_nopush     on;   [...]

继续阅读 →

  

Confach发表于 September 10, 2008 4:36 pm | 留言 |一技之长 

RMagick 2和ImageMagick不能正确显示图片的解决方案

背景
将ImageMagick和RMagick都升级了。ImageMagick版本为6.4.1,RMagick为2.5.1。
在生成带有文字的图片时要么是空白要么是一团黑。
分析
不能正确显示图片,有很多方面的原因。这里最有可能的原因是填充的颜色不对。例如填充颜色为白色,那么会出现空白。若是将填充颜色设置为黑色,那就是一团黑了。为什么会出现这种情况?先从一下日志说起:

RMagick: delegate library support not built-in `/usr/local/share/ghostscript/fonts/n019003l.pfb’ (Freetype).

如果出现这种情况,说明文字的字体找不见,既然都无法正确显示文字,那么就由其填充色来代替。
解决
最新的ImageMagick看起来需要如下几个库:

freetype ,强烈建议把dev版本也装上
jpeg库
tiff
ghostscript
zlib

为了看看有哪些字体安装了,使用如下命令:

  convert -list font

返回结果可能为:

Font: Palatino-Roman  family: Palatino  style: Normal  stretch: Normal  weight: 400Font: Symbol  family: Symbol  style: Normal  stretch: Normal  weight: 400Font: Times-Bold  family: Times  style: Normal  stretch: Normal  weight: 700Font: Times-BoldItalic  family: [...]

继续阅读 →

  

Confach发表于 June 26, 2008 3:18 pm | 留言(1) |一技之长 

"Premature end of script headers: dispatch.fcgi"终极解决方案

名字够响亮,当然内容也很响亮。哈哈。
现状:
   当使用Apache(或其他web server,例如lighttpd),以及fastcgi(或cgi)等来部署rails或python等时,经常会出现以下错误:

     Premature end of script headers: dispatch.fcgi

解决方案:
本解决方案是基于Rails+Apache+fastcgi+debian,其他类似。

检查dispatch.fcgi的用户或用户组,以及访问权限,至少定义为755.
检查dispatch.fcgi的第一行的ruby编译器是否正确,很多人开发在windows平台上,而部署则在Linux/Unix平台上,所以将#!C:/ruby.exe改为#  !/usr/bin/ruby。ruby具体在什么位置,输入whereis ruby即可。
不能允许有打印的代码。例如在rails里,坚决不要将p 或puts写到代码里,这样会导致header破坏。其他语言看着办。
如果以上方案均为解决,到dispatch所在的目录下运行 ./dispatch.fcgi看是否正确。如果有什么错误的话,修正即可。

以上提供的4种方案都可以解决这个问题。要是还是不能解决,请将您的case告诉我。
另外,可以参考另一文章:在Debian上部署Rails Apache+fcgi(或FastCgi)

继续阅读 →

  

Confach发表于 February 29, 2008 11:56 am | 留言(3) |一技之长 

下一页