Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2086735
  • 博文数量: 288
  • 博客积分: 10594
  • 博客等级: 上将
  • 技术积分: 3469
  • 用 户 组: 普通用户
  • 注册时间: 2006-10-27 19:27
文章分类

全部博文(288)

文章存档

2012年(4)

2011年(30)

2010年(40)

2009年(32)

2008年(71)

2007年(79)

2006年(32)

分类: LINUX

2007-01-06 17:24:33

考了本论坛许多高手的文章,终于实现了以上东东,把过程贴上来共享一下:

以下在redhat7.2下安装,redhat的安装是自定义安装,除选装DNS服务外,其它如Apache,数据库等默认都没装,
以便自己下载较新的源代码编译安装。。。安装过程中参考了网上众多老大的文章哦,谢谢啊...

1。先装MySQL,用的是mysql-3.23.56.tar.gz

shell>; ./configure --prefix=/usr/local/mysql --with-charset=gb2312
shell>; make
shell>; make install
shell>; scripts/mysql_install_db
shell>; chown -R root /usr/local/mysql
shell>; chown -R mysql /usr/local/mysql/var
shell>; chgrp -R mysql /usr/local/mysql
shell>; cp support-files/my-medium.cnf /etc/my.cnf
shell>; /usr/local/mysql/bin/safe_mysqld --user=mysql &

如果Linux系列,且在安装时已经安装了mysql,
那以后要再次自己编译安装,mysql用户和组就不用建立了.
但目录文件权限,是一定要给的(否则MySQL起不来).

2。安装Apache(DSO模式),用的是apache_1.3.26.tar.gz,
一开始用httpd-2.0.40.tar.gz编译老是出错。

shell>; ./configure --prefix=/usr/local/apache --enable-module=so
       make
make install
# vi /usr/local/apache/conf/httpd.conf
添加以下内容:

AddType application/x-tar.tgz
Addtype application/x-httpd-php .php .php3

/usr/local/apache/bin/apachectl start 启动
Q;安装好默认 不能浏览,必须敲入/index.php才行,后来又可以了,奇怪!!


3。安装php4,用的是php4-STABLE-200304121930.tar.gz
# tar -zxvf php4-STABLE-200304121930.tar.gz
# cd php4-STABLE-200304121930
# ./configure --with-mysql --with-apxs=/usr/local/apache/bin/apxs
# make
# make install
# cp php.ini-dist /usr/local/lib/php.ini
# vi /usr/local/lib/php.ini
register_globals =off 更改为:register_globals =on

(注:编译APACHE,是使它支持DSO模块。然后编译PHP,将SO文件安装到你的APACHE的模块目录里,这样也方便以后扩展功能.)


这样编译后httpd.conf中会有如下一段:
#Dynamic Shared Object (DSO) Support
.....
# Example:
# LoadModule foo_module libexec/mod_foo.so
LoadModule php4_module        libexec/libphp4.so



这时重启Apache,就可以支持php了

在/etc/rc.d/rc.local中可加入以下
/usr/local/apache/bin/apachectl start
/usr/local/mysql/bin/safe_mysqld --user=mysql &
以便开机以上服务自启动。


4.安装phpMyAdmin 2.4.0
直接解压至apache默认的目录下,我的是usr/local/apache/htdocs/phpadmin24下
因为版本高,所以它已经直接支持中文了,只要在语言那选择一下zh就可以了.
另外如果Mysql的root有密码的话,要改config.inc.php中的
$cfg['Servers'][$i]['password']      = 'root'; <--改为你的密码
才能登陆!
直接执行其目录下的index.php就可以了!

5.控制存取phpmyadmin
phpmyadmin如可以随便访问会有安全问题,这里采用Apache来限制:
1、修改http.conf
  假设你想控制/usr/local/apache/htdocs下各目录的不同访问权限,你可以在
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo",
# "AuthConfig", and "Limit"
#
#    AllowOverride None
    AllowOverride All
改成上面一行:

AllowOverride All
  意思是在/usr/local/apache/htdocs下不同目录的访问权限由该目录下的.htaccess文件来控制,
而且不同目录的权限策略可互相覆盖。

2、编辑你想要控制的目录下的.htaccess文件
  假设你的phpmyadmin目录在/usr/local/apache/htdocs下,你可以这样在phpmyadmin目录下创建一
个.htaccess文件,
内容如下:

AuthUserFile /usr/local/apache/pass/pwdPhp
AuthType Basic
AuthName "Database Security Zone"
ErrorDocument 401 /catchErrors/err_401.html

require valid-user


该文件说明了几个问题:
(1) 用户信息存放在/usr/local/apache/pass/pwdPhp中.
(2) 认证类型为基本型(此外还有一些其他的加密类型).
(3) ErrorDocument 所指向的html文件.
(4) 认证方式:用户认证(valid-user)或组认证(valid-group).


cd /usr/local/apache/pass
mkdir pass
cd pass
vi pwdPhp

3. 生成用户密码文件
有一个用户密码生成程序:htpasswd(在/usr/local/apache/bin下), 它可以加入用户密码信息到指定的文件中,如
/usr/local/apache/pass/pwdPhp.

例如
htpasswd -bc /usr/local/apache/pass/pwdPhp admin admin1997

我的用户密码文件内容如下:
admin:ekDP8Mm5Z66po


4. 重起apache deamon
/usr/local/apche/bin/apachectl restart
这时,再访问你的phpmyadmin就要用户名和密码了。。。


6.DNS配置:
邮件的前提是DNS,这里仅做为一简单例子,实际要结合你自身的环境来配置;

保证Bind已安装, redhat7.2带的是bind-9.1.3-4

应该在/etc下有
named.conf host.conf nsswitch.conf resolv.conf

named.conf
/ generated by named-bootconf.pl

options {
        directory "/var/named";
        /*
         * If there is a firewall between you and nameservers you want
         * to talk to, you might need to uncomment the query-source
         * directive below.  Previous versions of BIND always asked
         * questions using port 53, but BIND 8.1 uses an unprivileged
         * port by default.
         */
        // query-source address * port 53;
};

//
// a caching only nameserver config
//
controls {
        inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
zone "." IN {
        type hint;
        file "named.ca";
};

zone "localhost" IN {
        type master;
        file "localhost.zone";
        allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
        type master;
        file "named.local";
        allow-update { none; };
};

zone "hfcb.com.cn" {
        type master;
        file "hfcb.db";
};

zone "5.10.10.in-addr.arpa" {
        type master;
        file "5.10.10.in-addr.arpa";
};
include "/etc/rndc.key";

host.conf
order hosts,bind
multi off

nsswitch.conf
hosts:      files nisplus dns

resolv.conf
search hfcb.com.cn
nameserver 10.10.5.20


/var/named/
5.10.10.in-addr.arpa   hfcb.db  localhost.zone  named.ca  named.local

hfcb.db
TTL 3600
@ IN SOA localhost. root.localhost. (
                20030429
                28800             ;refresh - 5 minutes
                60              ;Retry - 1 minutes
                1209600         ;Expire - 2 weeks
                43200)          ;Minimum - 12 hours
                IN      NS      linux.hfcb.com.cn.
                IN      MX 10   linux.hfcb.com.cn.
linux           IN      A       10.10.5.20
lywang          IN      A       10.10.5.13
mjc             IN      A       10.10.5.29
mk              IN      A       10.10.5.22

5.10.10.in-addr.arpa
TTL 43200
@               IN SOA  linux.hfcb.com.cn. root.hfcb.com.cn. (
                        2003042801      ;Serial
                        300             ;Refresh - 5 Minutes
                        60              ;Retry  - 1 Minutes
                        1209600         ;Expire - 2 Weeks
                        43200)          ;Mininum - 12 Hours
                        IN      NS      linux.hfcb.com.cn.
13                      IN      PTR     lywang.hfcb.com.cn.
29                      IN      PTR     mjc.hfcb.com.cn.
22                      IN      PTR     mk.hfcb.com.cn.
20                      IN      PTR     linux.hfcb.com.cn.


7。安装QMail等(参考peng老大安装文章)
安装用iceblood编写的qmail_setup-v1.5.4a.stable.tar.gz,用qmail_setup安装包的版本,解包后详细阅读
install和setup文件,根据需要修改setup。
然后执行
#./setup >;install.log
安装时,可能会出现下面情况
./setup: [Linux: command not found
./setup: line 278:  3659 Terminated              sh
/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 298:  5963 Terminated              sh
/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
userdel: user vpopmail does not exist
groupdel: group vchkpw does not exist
./setup: line 349:  6778 Terminated              sh
/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
could not connect to mysql update server Unknown database 'vpopmail' with
database
./setup: line 380:  6805 Terminated              sh
/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 400:  8330 Terminated              sh
/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
mv: cannot stat `/usr/include/string.h.bak': No such file or directory
./setup: line 420:  9705 Terminated              sh
/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 449:  9730 Terminated              sh
/tmp/iceblood/Qmail_setup/iceblood/sleep.sh
./setup: line 450: 10546 Terminated              sh
/tmp/iceblood/Qmail_setup/iceblood/sleep.sh  (wd:
/tmp/iceblood/Qmail_setup)

但没有问题,不管它。继续。。。

当安装完qmail+mysql+vpopmail时,要修改以下mysql的库文件的vpopmail databases。

# mysql -uroot -ppassword password---你的密码

在mysql中创建address表,具体表结构如下:
# use vpopmail
# create table address
(
id int(11) unsigned NOT NULL auto_increment,
pw_id int(5) unsigned NOT NULL default '0',
name varchar(64) NOT NULL default '',
email varchar(12 NOT NULL default '',
UNIQUE KEY id (id),
KEY pw_id (pw_id)
);
修改原来的vpopmail表,方法如下:
use vpopmail;
alter table vpopmail drop primary key;
alter table vpopmail add column pw_id int(5) NOT NULL primary key
auto_increment;

(注:添加address table,是因为要使用igenus中的个人通讯录,添加pw_id是因为igenus用它来标识用

户的唯一性的,但vpopmail用的是pw_uid)


前提:保证httpd.conf中有
User vpopmail
Group vchkpw

否则运行igenus会有权限问题。。


最后,安装igenus.
1、安装igenus
# cd /root
# cp igenus_2_20030311.tgz /usr/local/apache
# cd /usr/local/apache
# mkdir temp
# chown vpopmail.vchkpw temp
# tar zxvf igenus_2_20030311.tgz(设置好后,将igenus目录cp至
/usr/local/apache/htdocs)

2、修改config/config_inc.conf文件。config_inc.conf是iGNEUS的配置文件,必须正确设置,具体设

置如下:
# vi /var/www/igenus

$CFG_BASEPATH = "/usr/loal/apache/igenus";
$ CFG_BASEPATH -----是iGNEUS webmail安装在系统的路径。

$CFG_MYSQL_HOST = 'localhost';
$CFG_MYSQL_HOST -----是mysql服务器的地址。

$CFG_MYSQL_USER = 'root';
$CFG_MYSQL_USER -----是mysql服务器的用户名。

$CFG_MYSQL_PASS = '123456';
$CFG_MYSQL_PASS -----是mysql服务器的密码,根据你的实际填写

$CFG_HOSTNAME = "";
$CFG_HOSTNAME-----是服务器的主机名,根据你的实际填写

$CFG_LANGUAGE = gb;
$CFG_LANGUAGE-----是系统默认语言,可有中英日可选。

$CFG_GMT = +8; // GMT time local
$CFG_GMT----是时区设置,中国选+8。

$CFG_TEMP = $CFG_BASEPATH."/../temp";
$CFG_TEMP----临时文件的位置。


好了,到这里,就全部结束了。
测试一下:
# /usr/local/apache/bin/apachectl start
# /home/vpopmail/bin/vadddomain mydomains.com --添加域
# /home/vpopmail/bin/vadduser test@mydomains.com --添加用户
你要是安装了qmailadmin,也可以从web添加用户。


浏览: httpd://10.10.5.20/igenus/index.php ,就可以看到你的mail了。



8.接下来就要安装VQSIGNUP了,这个包是用来提供用户申请账户功能的。

· vqsignup的安装文档说“This program is not easy to install, so good luck ;]”,据我的经
验, vqsignup的安装相当简单,由于涉及比较多的文件编辑工作,同时比较简单,所以,vqsignup不提供安装脚本。以下是安装过程:

· 1:tar -zxvf vqsignup-0.5.tar.gz

· 2:编译

cd vqsignup-0.5

./configure

make

· 3:执行部分

cp vqsignup /usr/local/apache/cgi-bin/vqsignup.cgi

chown vpopmail /usr/local/apache/cgi-bin/vqsignup.cgi

chgrp vchkpw /usr/local/apache/cgi-bin/vqsignup.cgi

chmod ug+s /usr/local/apache/cgi-bin/vqsignup.cgi

cp vqsignup.conf /usr/local/apache/cgi-bin/

chmod ugo+r /usr/local/apache/cgi-bin/vqsignup.conf

· 4:html界面

mkdir /usr/local/apache/cgi-bin/vqsignup

mkdir /usr/local/apache/cgi-bin/vqsignup/html

cp html/*.* /usr/local/apache/cgi-bin/vqsignup/html/

cp vqsignup.html /usr/local/apache/htdocs

· 5:修改

修改 /usr/local/apache/html/vqsignup.html 的下拉列表项以符合你的虚拟域; (可以用文本编辑器直接修改html代
码)

修改 /usr/local/apache/cgi-bin/vqsignup.conf 的add_domain项以符合你的虚拟域;

/usr/local/apache/html/vqsignup.html和
/usr/local/apache/cgi-bin/vqsignup.conf的虚拟域必须一一对应。

· 6:测试

打开浏览器,
(hehe,界面太难看了,你自己修改吧。。。)

输入用户名、密码,Click Submit,OK!

你可以使用qmailadmin察看,对应的虚拟域中已经多了一个用户!


9.限制邮箱容量相关问题:
如果在vpopmail中不设定用户邮箱大小(如安装ice_blood包时没有指定),那么在mailbox.php中的第331行
;会出现被0除的错误,则修改如下:
;,让它从0%到100%显示。

限制容量:
cd /home/vpopmail/bin
#./vsetuserqutoa hfcb.com.cn 21000000s --hfcb.com.cn这个域,都设成20m的
如用vqsignup申请的默认却不限制容量,只能改Vpopmail数据库pwshell字段

10.结束...
阅读(1696) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~