Ubuntu 7.10 Server服务安装手记(4)补充——以fastcgi方式运行extmail
安装好了extmail以后,发现以cgi方式运行的extmail在发信的时候会出现一个perl的错误提示:
- gettimeof day
据说是因为ubuntu编译perl的参数问题,解决办法是放弃cgi方式运行extmail,改为fastcgi方式。
参考了一下extmail文档中的README.fcgi,决定选用suidperl的fastcgi方式。也可以采用remote方式,具体可以参考extmail的说明文档了。
先安装apache2的fastcgi模块,以及相关的perl模块:
- sudo apt-get install libapache2-mod-fastcgi libfcgi-perl perl-suid
安装好了以后,先激活apache2的fastcgi:
- sudo a2enmod fastcgi
修改对应的虚拟主机配置文件:
- sudo pico /etc/apache2/sites-available/mail.ipbfans.org
把先前的:
- Alias /extmail/cgi /server/www/mail.ipbfans.org/extmail/cgi/
替换成:
- ScriptAlias /extmail/cgi /server/www/mail.ipbfans.org/extmail/dispatch.fcgi/
再将原来的:
- <location>
- SetHandler cgi-script
- Options +ExecCGI
- </location>
改为:
- <location>
- SetHandler fastcgi-script
- Options +ExecCGI
- </location>
然后保存配置。
根据README.fcgi,修改extmail的dispatch.fcgi文件:
- cd /server/www/mail.ipbfans.org/extmail
- sudo pico dispatch.fcgi
该文件头三行的内容是:
- #!/bin/sh
- # vim: set cindent expandtab ts=4 sw=4:
- exec ${PERL-perl} -Swx $0 ${1+"$@"}
把第一行改为:
- #!/usr/bin/suidperl
再删去第三行内容,现在文件的头三行变为:
- #!/usr/bin/suidperl
- # vim: set cindent expandtab ts=4 sw=4:
保存dispatch.fcgi。
重新设置dispatch.fcgi这个文件的权限,给这个文件加上S属性:
- sudo chmod 4755 /server/www/mail.ipbfans.org/extmail/dispatch.fcgi
保存好了以后,重新启动apache2。在使用浏览器发送邮件的时候就没有gettime错误了。
PR: 0