Ubuntu 7.10 Server服务安装手记(4)补充——以fastcgi方式运行extmail

2007年12月7日 | 标签: , , ,

安装好了extmail以后,发现以cgi方式运行的extmail在发信的时候会出现一个perl的错误提示:

  1. gettimeof day

据说是因为ubuntu编译perl的参数问题,解决办法是放弃cgi方式运行extmail,改为fastcgi方式。
参考了一下extmail文档中的README.fcgi,决定选用suidperl的fastcgi方式。也可以采用remote方式,具体可以参考extmail的说明文档了。

先安装apache2的fastcgi模块,以及相关的perl模块:

  1. sudo apt-get install libapache2-mod-fastcgi libfcgi-perl perl-suid

安装好了以后,先激活apache2的fastcgi:

  1. sudo a2enmod fastcgi

修改对应的虚拟主机配置文件:

  1. sudo pico /etc/apache2/sites-available/mail.ipbfans.org

把先前的:

  1. Alias /extmail/cgi /server/www/mail.ipbfans.org/extmail/cgi/

替换成:

  1. ScriptAlias /extmail/cgi /server/www/mail.ipbfans.org/extmail/dispatch.fcgi/

再将原来的:

  1. <location>
  2. SetHandler cgi-script
  3. Options +ExecCGI
  4. </location>

改为:

  1. <location>
  2. SetHandler fastcgi-script
  3. Options +ExecCGI
  4. </location>

然后保存配置。
根据README.fcgi,修改extmail的dispatch.fcgi文件:

  1. cd /server/www/mail.ipbfans.org/extmail
  2. sudo pico dispatch.fcgi

该文件头三行的内容是:

  1. #!/bin/sh
  2. # vim: set cindent expandtab ts=4 sw=4:
  3. exec ${PERL-perl} -Swx $0 ${1+"$@"}

把第一行改为:

  1. #!/usr/bin/suidperl

再删去第三行内容,现在文件的头三行变为:

  1. #!/usr/bin/suidperl
  2. # vim: set cindent expandtab ts=4 sw=4:

保存dispatch.fcgi。

重新设置dispatch.fcgi这个文件的权限,给这个文件加上S属性:

  1. sudo chmod 4755 /server/www/mail.ipbfans.org/extmail/dispatch.fcgi

保存好了以后,重新启动apache2。在使用浏览器发送邮件的时候就没有gettime错误了。

PR: 0

目前还没有任何评论."