只写需要注意的地方了。。。。
安装apache的时候注意需要支持suexec,默认是没有的,记得在用ports安装的时候
make WITH_SUEXEC_MODULES=yes install clean
执行suexec -V查看 -D AP_DOC_ROOT="/usr/local/www/data",程序必须放在这个目录下,还有-D AP_GID_MIN=1000和-D AP_UID_MIN=1000这两个是最小UID和GID,要注意虚拟用户的UID和GID必须大于这两个值
先检查是否已经安装了perl,如果安装就找到相应的ports然后make deinstall
然后在ports中make ENABLE_SUIDPERL=yes install clean
这样就支持suidperl了
然后cd /usr/ports/www/fcgi
make install clean
#我在这么安装完以后没有出错提示但没有/local/lib/perl5/site_perl/5.8.8/mach/FCGI.pm文件
出现这种情况就手动安装FCGI吧,到/usr/ports/distfiles目录中找到fcgi的原文件,解压后
perl Makefile.PL
make
make install
这个时候可能会把FCGI.pm安装到/local/lib/perl5/site_perl/5.8.8/mach/FCGI.pm但是在运行extmail的时候会找Ext/FCGI.pm,我在/local/lib/perl5/site_perl/5.8.8/mach新建了一个Ext目录,并把FCGI.pm复制了一份,呵呵
安装/usr/ports/databases/p5-DBD-mysql41,这个需要根据你的mysql的版本不同选择不同的程序
直接make install clean就OK了
安装/usr/ports/www/mod_fcgi,直接make install clean
配置apache,我把我的服务器上关于fcgi和cgi的贴出来,我的extmail是以一个虚拟主机+suexec来运行的。。。。
LoadModule cgid_module libexec/apache2/mod_cgid.so #这行原来注释掉了
LoadModule fastcgi_module libexec/apache2/mod_fastcgi.so #Fast-cgi的模块
<IfModule mod_fastcgi.c> #记得建立/var/lib/fcgi和/var/lib/fcgi/dynamic并chmod 777
FastCgiIpcDir /var/lib/fcgi
</IfModule>
AddHandler cgi-script .cgi .pl
AddHandler fastcgi-script .fcg .fcgi .fpl
<VirtualHost *:80> #虚拟主机配置
ServerName mail.yieryi.net
ServerAdmin
postmaster@yieryi.net
DocumentRoot /usr/local/www/data/web/extmail/html
ScriptAlias /extmail/cgi/ /usr/local/www/data/web/extmail/dispatch.fcgi/
Alias /extmail /usr/local/www/data/web/extmail/html
ScriptAlias /extman/cgi /usr/local/www/data/web/extman/cgi
Alias /extman /usr/local/www/data/web/extman/html
<Directory "/usr/local/www/data/web">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Location "/extmail/cgi">
SetHandler fastcgi-script
</Location>
SuexecUserGroup vmail vmail
ErrorLog /var/log/www/mail.yieryi.net-error
CustomLog /var/log/www/mail.yieryi.net-common common
</VirtualHost>
另外就是maildir和extmail的权限了,我的owner都是vmail:vmail