红联Linux门户
Linux帮助

FREEBSD 中安装iGENUS_2.0.2

发布时间:2006-08-08 12:20:51来源:红联作者:嘀嗒滴答
$ tar -zxvf igenus_2.0.2_20040901_release.tgz
$ cd igenus
由于igenus使用了自己的表结构,所以要在postfix的基础上使用igenus的所有功能,还需要进行比较大的修改,这里我们就不再讨论,本文中我们就向大家介绍如何使用户能够登录到igenus中,并且正常的发邮件和收邮件,其它功能就不再介绍。
首先需要修改igenus的配置文件,让其它知道如何与MySQL连接:
$ cd config
$ vi config_inc.php
根据你的实际情况修改以下内容(配置中的中文为笔者说明):
$CFG_BASEPATH = "/htdocs/mail/igenus";   //iGENUS的绝对路径
// Mysql
$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_USER = 'postfixadmin';      //因为用户需要在igenus中更改密码等,所以需要使用对数据库具有写权限的postfixadmin用户,而非拥有只读权限的postfix用户
$CFG_MYSQL_PASS = 'postfix';
$CFG_MYSQL_DB = 'postfix';
// Temp directory for maildir listing,mail body decodeing etc.
$CFG_TEMP = $CFG_BASEPATH."/temp";     //这里我们将igenus的临时目录设置为igenus安装目录下的temp目录
现在需要建立temp文件夹,并使其可被web服务器的用户读写: 
$ mkdir igenus/temp
$ chmod 777 igenus/temp
同时要使igenus使用Postfixadmin的表结构,我们需要修改igenus目录中的login.php文件,以使用户能够正常登录。
$ vi login.php
修改其中的:
$query = "SELECT * FROM vpopmail WHERE pw_name='$Post_name' and pw_domain='$Post_domain'";
为:
$query = "SELECT * FROM mailbox WHERE username='$Post_name@$Post_domain' and active='1'";
将:
$home = $data['pw_dir'];
$Post_passwd2 = $data['pw_passwd'];
$pw_id = $data['pw_id'];
$pw_shell = $data['pw_shell'];
$pw_gecos = $data['pw_gecos'];
$pw_gid = $data['pw_gid'];
$pw_domain = strtolower($data['pw_domain']);
$pw_name = strtolower($data['pw_name']);
修改为:
$home = "/var/mail/" . $data['maildir'] . "../";
$Post_passwd2 = $data['password'];
$pw_shell = $data['quota'];
$pw_gecos = $data['name'];
$pw_domain = strtolower($data['domain']);
$pw_name = strtolower($data['username']);
其中$home = "/var/mail/" . $data['maildir'] . "../";是告诉iGENUS邮件存储的路径,"/var/mail/"为我们的邮件存放目录,同时因为iGENUS进行读写邮件时会在$home变量后面加上字符串"Maildir/",但我们的MySQL数据表mailbox中的maildir字段中已经包含"Maildir/",所以为了让iGENUS得到正确的路径,我们在最后加上了字符串"../"
修改:
if ($pw_gid & 0x04){
PutLogs($pw_id, 'login', "no priv to login","$Post_name@$Post_domain", $sql);
ErrorExit(-2); // 用户无权登录
}
if ($home !="" && ($Post_passwd2 == crypt($Post_passwd,$Post_passwd2))){
为:
if ($pw_gid & 0x04){
PutLogs($pw_id, 'login', "no priv to login","$Post_name@$Post_domain", $sql);
ErrorExit(-2); // 用户无权登录
}
if ($home !="" && ($Post_passwd2 == $Post_passwd)){

注释或者删除:
$_SESSION['G_ID'] = $pw_id;
在提示的地方将mysql_fetch_object()改成@mysql_fetch_object()即可
1、也就是在mailbox.php的253和274行
2、在add2addr.php的94和109行(通讯录)
3、在pubaddr.php的第65和85行(通讯录中的公共)
4、在address.php的第59和73行(通讯录中的个人)
5、在personal.php的第82行(系统设置的个人资料)
6、在card.php的第162\179行(名片夹)
7、在stow.php的第119\138行(收藏夹)
8、在message.php的第106\126行(内部通知)
在以下的PHP文件中将$OUT['EMAIL']= "$SG_USERNAME@$SG_DOMAIN";更改成:$OUT['EMAIL']=$SG_USERNAME";
mailbox.php、logo.php、file.php、forword.php、list.php、message.php、reply.php、scheduler.php、send.php、sendagain.php、sendmail.php里面的setfrom行、sendok.php、writeagain.php、personal.php 、
设置网络硬盘路径
可以修改igenus/config下的config_inc.php中的$CFG_NETDISK_PATH = "/home/netdisk";
#mkdir /home/netdisk
#chmod -R www:www? /home/netdisk
请改成你这节的路径比如:$CFG_NETDISK_PATH = " /var/netdisk";前提是你必须有这个目录
文章评论

共有 0 条评论