当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 4 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [原创]在extmail中使用fastcgi
帖子发表于 : 2007-11-09 17:27 

注册: 2007-11-09 17:16
帖子: 2
送出感谢: 0 次
接收感谢: 0 次


apt-get install libfcgi-perl libapache2-mod-fastcgi (libapache2-mod-fcgid---可选)

apt-get install libarchive-tar-perl libarchive-zip-perl libcompress-zlib-perl libconvert-binhex-perl libconvert-tnef-perl libconvert-uulib-perl libdbd-mysql-perl libdbi-perl libdigest-hmac-perl libdigest-nilsimsa-perl libdigest-sha1-perl libfile-tail-perl libhtml-parser-perl libio-multiplex-perl libio-string-perl libio-stringy-perl libio-zlib-perl liblocale-gettext-perl libmailtools-perl libmime-perl libnet-daemon-perl libnet-dns-perl libnet-perl libtext-charwidth-perl libtext-iconv-perl libtext-wrapi18n-perl libtimedate-perl libunix-syslog-perl liburi-perl perl-modules perl-suid(注:这里的包不只是为fastcgi准备的,而是如果要建立一个完整的邮件系统所需要的一部分包)

下载ExtMail-Solution-Linux-.tar.gz后解压,然后把它移动到目录/var/www/cgi-bin/extmail。

注意:/var/www/下面本来没有cgi-bin目录,自己建立。

检查apache2是否支持suexec功能:

apache2 -V

Server version: Apache/2.2.3
Server built: Aug 3 2007 23:30:48
Server's Module Magic Number: 20051115:3
Server loaded: APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture: 32-bit
Server MPM: Prefork
threaded: no
forked: yes (variable process count)
Server compiled with....
-D APACHE_MPM_DIR="server/mpm/prefork"
-D APR_HAS_SENDFILE
-D APR_HAS_MMAP
-D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
-D APR_USE_SYSVSEM_SERIALIZE
-D APR_USE_PTHREAD_SERIALIZE
-D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
-D APR_HAS_OTHER_CHILD
-D AP_HAVE_RELIABLE_PIPED_LOGS
-D DYNAMIC_MODULE_LIMIT=128
-D HTTPD_ROOT=""
-D SUEXEC_BIN="/usr/lib/apache2/suexec" ---------------------------要有这一行
-D DEFAULT_PIDLOG="/var/run/apache2.pid"
-D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
-D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
-D DEFAULT_ERRORLOG="logs/error_log"
-D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
-D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"


观察输出信息,找到suexec的位置,并且该文件是否带S属性

-rwsr-xr-x 1 root root 10396 Aug 4 07:36 suexec

建立suexec.load的链接:(启用suexec)

cd /etc/apache2/mods-enabled

ln -s /etc/apache2/mods-available/suexec.load suexec.load
如果suexec模块没有加载,则
a2enmod suexec

测试suexec:

/usr/lib/apache2/suexec -V

-D AP_DOC_ROOT="/var/www" -----------------------------------cgi程序放在此目录下
-D AP_GID_MIN=100
-D AP_HTTPD_USER="www-data"
-D AP_LOG_EXEC="/var/log/apache2/suexec.log"
-D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
-D AP_UID_MIN=100
-D AP_USERDIR_SUFFIX="public_html"


在/etc/apache2/sites-available下增加一个虚拟站点extmail,内容如下:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName mail.zhb.com
SuexecUserGroup vmail vmail
ScriptAlias /extmail/cgi/ /var/www/cgi-bin/extmail/cgi/
Alias /extmail /var/www/cgi-bin/extmail/html/
<Location "/extmail/cgi">
SetHandler cgi-script
Options +ExecCGI
</Location>
</VirtualHost>

在Ubuntu 7.04下面架设Extmail邮件系统,需要注意的问题:

发信错误:提示“Gettimeofday错误”,这是一个典型的Ubuntu问题,可能是由于ubuntu编译Perl的时候,参数的问题。解决方法:用FastCGI方式运行Extmail。

用FastCGI 方式运行Extmail。在 /etc/apache2/sites-available/里面配置extmail站点文件,改动两行:

第一行:把

Alias /extmail/cgi /var/www/cgi-bin/extmail/cgi
改动为
ScriptAlias /extmail/cgi /var/www/cgi-bin/extmail/dispatch.fcgi/

第二行:把

SetHandler cgi-script
改为:
SetHandler fastcgi-script

修改dispatch.fcgi内容的前三行:

#!/bin/sh
# vim: set cindent expandtab ts=4 sw=4:
exec ${PERL-perl} -Swx $0 ${1+"$@"}
改为:
#!/usr/bin/suidperl
# vim: set cindent expandtab ts=4 sw=4:
删除原来的第三行

给dispatch.fcgi加 ‘S’ 权限

chmod u+s to dispatch.fcgi

name permission
-------------------------------
dispatch.fcgi vmail:vmail 4755

然后,a2ensite extmail启用站点,重新启动apache2


然后: chown vmail:vmail: /var/www/cgi-bin/* -R
chmod 755 /var/www/cgi-bin -R (设置vmail用户对该目录的权限)
我这里只写了关于fastcgi的部分,其他的内容都比较简单,以后有时间,将把完整的方案写出来。


最后由 zlmile 编辑于 2007-11-11 22:35,总共编辑了 3 次

页首
 用户资料  
 
2 楼 
 文章标题 :
帖子发表于 : 2007-11-09 17:45 

注册: 2007-11-09 17:16
帖子: 2
送出感谢: 0 次
接收感谢: 0 次
补充一下:
我的系统是ubuntu 7.04
准备搭建的系统为:postfix + mysql +courrier-ssl + sasl2 + tls +mailscanner +clamav +spamassassin +extman + extmail +suexec + fastcgi +phpmyadmin
目前还没有完成所有测试,因为每个部分的内容都很多,时间有限。我会逐步将过程写出来。

上面的帖子主要解决在SUEXEC环境下执行fastcgi的问题,走了不少弯路,呵呵。


页首
 用户资料  
 
3 楼 
 文章标题 : 这么好的分享没有人来顶?
帖子发表于 : 2007-12-12 17:19 

注册: 2007-08-19 18:11
帖子: 14
送出感谢: 0 次
接收感谢: 0 次
我来顶一下,
还有一事不明,请LZ指导,您安装的extmail首页(登录 or 注册页面)可以换成中文的吗?
我的extman可以设置成中文的,不过,extmail 怎么也改不过来! extmail 1.0.3 版本的.


页首
 用户资料  
 
4 楼 
 文章标题 :
帖子发表于 : 2007-12-14 16:14 

注册: 2007-01-02 16:16
帖子: 150
送出感谢: 0 次
接收感谢: 0 次
顶楼主
等你搞了邮件系统发出来大家学习一下
我也在搞用Ubuntu架邮件系统
还在考虑要不要用extmail


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 4 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译