疯狂老头版《CentOS 5.1下用源码编译安装ExtMail》的笔记订正(5)

2008-12-01 00:51:33 作者:龙飞 来源:龙飞网 浏览次数:0 网友评论 0

第四部分,也是我的笔记的最后一部分

安装 ExtMail 1.0.3 和 ExtMan 0.2.3

启动数据库 MySQL

# /etc/rc.d/init.d/mysql start                 [  OK  ]

也可以写成 service mysqld start

然后使用 ps 命令来检查 mysqld 是否正常启动:

# ps ax|grep mysqld

正常情况下应出现如下的结果:

1702 ?        S      0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/var --pid-file=/usr/local/mysql/var/mail.extmail.org.pid

1735 ?        Sl     0:00 /usr/local/mysql/libexec/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/var --user=mysql --pid-file=/usr/local/mysql/var/mail.extmail.org.pid --skip-external-locking --port=3306 --socket=/var/lib/mysql/mysql.sock

1959 pts/0    S+     0:00 grep mysqld

导入 ExtMail 和 ExtMan 所需要的数据库:(以下假设 ExtMail 1.0.3 和 ExtMan 0.2.3 的安装文件放置于 /tmp 目录下)

# mkdir /var/www/extsuite

# cd /var/www/extsuite

# tar zxvf /tmp/extman-0.2.3.tar.gz

# tar zxvf /tmp/extmail-1.0.3.tar.gz

# mv extman-0.2.3 extman

# mv extmail-1.0.3 extmail

# mysql -u root -p < /var/www/extsuite/extman/docs/extmail.sql

# mysql -u root -p < /var/www/extsuite/extman/docs/init.sql

链接基本库到 Extmail

由于 ExtMan 的体系与 ExtMail 比较类似,因此 ExtMan 需要使用 ExtMail 中几个基础 perl 模块,在extman 的源码包里,包含了一个叫buildpkg.sh的小脚本,该脚本完成了这些链接的工作,使用方法:

# cd /var/www/extsuite/extman/libs/Ext

# ./buildpkg.sh build /var/www/extsuite/extmail/libs/Ext

# mkdir /var/www/extsuite/extman/tmp

# chown -R vuser:vgroup /var/www/extsuite/extman/tmp

# cp /var/www/extsuite/extman/docs/mysql_virtual_*.cf /etc/postfix/

# vi /var/www/extsuite/extman/webman.cf

# sys_sess_dir, the session dir

SYS_SESS_DIR = /var/www/extsuite/extman/tmp

操作完毕后,需要建立刚才导入 mysql 的 test@extmail.org 帐户的 Maildir,请输入如下命令:

注:但实际导入的是postmaster@extmail.org

# cd /var/www/extsuite/extman/tools

# ./maildirmake.pl /home/domains/extmail.org/test/Maildir

# chown -R vuser:vgroup /home/domains/extmail.org

# chmod 700 /home

测试 maildrop:

# maildrop -V 10 -d test@extmail.org

这个时候,会出现“Invalid user specified”的错误,不要惊慌,这是正常的,因为Mysql数据库里只有postmaster@extmail.org,而你给的命令是test@extmail.org, 当然它会告诉你,你指定的是非法用户。注意,这个时候,/home/domains/extmail.org下面的是test目录。现在输入 /usr/local/mysql/bin/mysql -u root -p,然后回车,输入密码后,就进入了Mysql的命令行控制界面。以下如果没有说明,都是在Mysql提示符下面进行的操作

show databases; 这是检查目前已经建立的Mysql数据库,看见extmail就对了

use extmail;    你会看到database changed这样的提示,表示你已经选择了extmail数据库

show tables;    显示extmail数据库里面的所有表

select * from mailbox;   显示mailbox表里面所有的记录,当然目前只有一条

update mailbox set username="test@extmail.org";

update mailbox set uid="test";

update mailbox set name="test";

update mailbox set maildir="extmail.org/test/Maildir/";

update mailbox set homedir="extmail.org/test";

\q

以上语句均在Mysql提示符下进行操作,大家可以完全拷贝。经过这样操作之后,我们就把Mysql数据库里面的记录由Postmaster改成了test。 然后service courier-authlib restart;service courier-imapd restart;service mysqld restart;service postfix restart;或者你再不放心,干脆重启一次电脑。应该就可以了。

或者有朋友说,为什么你那么费劲要把postmaster改成test呢,你把 /home/domains/extmail.org下面那个test目录改成postmaster不就和数据库里的记录对上了吗?在maildrop的 测试时,把test@extmail.org改成postmaster@extmail.org,那样不就可以了吗?说实话,这个方法我当然想到过,并且也付诸实践过,问题是maildrop的测试通不过,一样会提示“Unable to change to home directory”;而我那样做就是可以通过,不知道为什么。

配置 ExtMail 和 ExtMan

因为之前我们已经安装好了 mod_fastcgi 和 FCGI 了,因此,现在我们只需要对 ExtMail 和 ExtMan 和 http 进行配置即可了:

# vi /etc/httpd/conf/httpd.conf

=========== 修改部分 =================

Listen 12.34.56.78:80

#Listen 80

=================================

这个改不改无所谓,如果你的机器没有多个IP提供多种服务的话。

=========== 新增加部分 =================

LoadModule fastcgi_module modules/mod_fastcgi.so

<IfModule mod_fastcgi.c>

FastCgiIpcDir /var/lib/fcgi

<IfModule> 这里疯狂老头笔误,应该是</IfModule>

NameVirtualHost 12.34.56.78

Include conf/mail.extmail.org.conf

=================================

注明:上面提及的 12.34.56.78 根据实际情况设置为服务器的 IP 地址。

# vi /etc/hosts    //增加下面这行

12.34.56.78            mail.extmail.org         mail

# vi /etc/httpd/conf/mail.extmail.org.conf

# VirtualHost for ExtMail Solution

# <VirtualHost *:80>     这里应该取消前面的井号

VirtualHost mail.extmail.org         这行可以注销

ServerName mail.extmail.org

DocumentRoot /var/www/extsuite/extmail/html/

ScriptAlias     /extmail/cgi/   /var/www/extsuite/extmail/dispatch.fcgi/

Alias           /extmail        /var/www/extsuite/extmail/html

ScriptAlias     /extman/cgi/    /var/www/extsuite/extmail/dispatch.fcgi/

Alias           /extman         /var/www/extsuite/extman/html

<Location "/extmail/cgi">   

SetHandler fastcgi-script

</Location>         

<Location "/extman/cgi">

SetHandler fastcgi-script

</Location>

</VirtualHost>

# cd /var/www/extsuite/extmail

# chmod 755 dispatch.fcgi

# chmod 755 dispatch-init

# chmod 755 dispatch_lig.sh

# chown -R vuser:vgroup cgi

# chmod -R 755 cgi

# cd /var/www/extsuite/extman

# chown -R vuser:vgroup cgi

# chmod -R 755 cgi

到此为止,ExtMail 和 ExtMan 的设置部分就结束了:

# /etc/rc.d/init.d/httpd restart

可以使用service httpd restart

Stopping httpd:                                            [  OK  ]

Starting httpd:                                            [  OK  ]

最后访问 http://mail.extmail.org/extmail/,如无意外,将看到 webmail 的登陆页,不过此时还没有加正式的用户,所以不能登陆,包括 test@extmail.org 也不行。必须要登陆到 http://mail.extmail.org/extman/  里增加一个新帐户才能登陆。

ExtMan 的默认超级管理员帐户是 root@extmail.org,密码是 extmail,登陆成功后,建议将密码修改,以确保安全。  

密码是extmail*123*

注:如果要在Extman里面创建一个帐号之后,能够自动在/home/domain/下面创造目录,要不就 把Apache的属主和属组改成vuser vgroup,要不采用suExeC方法,我安装到这里已经身心俱疲,所以,索性把Apache的属主和属组改成vuser vgroup,这个问题就顺利得到解决。

Extman的验证码,需要另外安装两个RPM包,大家可以下载附件里的,大家下载后,把这两个RPM放在同一个文件夹里,并且只能有这两个文件,然后输 入:rpm -ivh *.rpm(这种安装方法尤其合适那种你需要我,我需要你,单独安装哪个也装不上的情况),然后输入 service httpd restart重启Apache服务器。刷新Extman的有关页面即可看到验证码。

Extman的配置文件webman.cf里面设置session目录为/var/www/extsuite/extman/tmp,请大家把这个目录设置为777权限,属主和属组,设定为vuser vgroup。

大家按照这个说明一路做下来的时候,可以发现,Extmail没有产生配置文件,大家可以进入/var/www/extsuite/extmail,输入 cp webmail.cf.default webmail.cf,然后查找里面有关Session目录的那个目录,把那个目录也设置成777权限,否则将因为没有权限Session无法写入,而无法登录Webmail系统。

关键词:Extmail

[收藏] [打印] [关闭] [返回顶部]

  • 验证码:

最新图片文章

最新文章