考了本论坛许多高手的文章,终于实现了以上东东,把过程贴上来共享一下:
以下在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.结束...
阅读(1757) | 评论(0) | 转发(0) |