实现Redhat7.2+Apache+PHP4+MySQL+phpMyAdmin+DNS+Qmail+Igenus
发表于:2007-07-04来源:作者:点击数:
标签:
参考了本论坛许多高手的文章,终于实现了以上东东,把过程贴上来共享一下: 以下在redhat7.2下安装,redhat的安装是自定义安装,除选装DNS服务外,其它如Apache, 数据库 等默认都没装, 以便自己下载较新的源代码编译安装。。。安装过程中参考了网上众多老大的
参考了本
论坛许多高手的文章,终于实现了以上东东,把过程贴上来共享一下:
以下在redhat7.2下安装,redhat的安装是自定义安装,除选装DNS服务外,其它如Apache,
数据库等默认都没装,
以便自己
下载较新的源代码编译安装。。。安装过程中参考了网上众多老大的文章哦,谢谢啊...
1。先装
MySQL,用的是my
sql-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;安装好默认
http://ip 不能浏览,必须敲入
http://ip/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 .hta
clearcase/" target="_blank" >ccess 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 w
ant * 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 {
.net 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(128) 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 = "http://bsd.gic.ac.cn/mail/";
$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添加用户。
http://10.10.5.20/cgi-bin/qmailadmin
浏览: 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:测试
打开浏览器,
http://xxx.xxx.xxx.xxx/vqsignup.html
(hehe,界面太难看了,你自己修改吧。。。)
输入用户名、密码,Click Submit,OK!
你可以使用qmailadmin察看,对应的虚拟域中已经多了一个用户!
9.限制邮箱容量相关问题:
如果在vpopmail中不设定用户邮箱大小(如安装ice_blood包时没有指定),那么在mailbox.php中的第331行
<?php echo intval($MTotalSize/($MQuota)*100)."%";?>会出现被0除的错误,则修改如下:
<?php echo intval($MTotalSize/($MQuota+100)*100)."%";?>,让它从0%到100%显示。
限制容量:
cd /home/vpopmail/bin
#./vsetuserqutoa hfcb.com.cn 21000000s --hfcb.com.cn这个域,都设成20m的
如用vqsignup申请的默认却不限制容量,只能改Vpopmail数据库pwshell字段
10.结束...
白狐狸 回复于:2003-04-30 20:48:23 |
很好嘛,鼓励一下先!
粗略看了一下,phpmyadmin完全没必要使用这种方法进行验证吧。直接把phpmyadmin中身份验证方式改为http即可。
|
haohaoo 回复于:2003-05-01 12:50:12 |
没有安装php之前好像加入AddType application/x-tar.tgz Addtype application/x-httpd-php .php .php3
后apache启动不了哦
|
轩辕砍刀 回复于:2003-05-01 13:55:44 |
疯掉了
|
xuehua 回复于:2003-05-01 14:47:05 |
不错
|
lianyong 回复于:2003-05-01 19:10:40 |
[quote:3095a9b064="白狐狸"]很好嘛,鼓励一下先!
粗略看了一下,phpmyadmin完全没必要使用这种方法进行验证吧。直接把phpmyadmin中身份验证方式改为http即可。[/quote:3095a9b064]
是吗,在哪里改啊,是config.inc.php里面?
:roll:
|
lianyong 回复于:2003-05-01 19:11:32 |
[quote:05ffb9bfd5="轩辕砍刀"]疯掉了[/quote:05ffb9bfd5]
老大,啥意思? :(
|
taijun 回复于:2003-05-01 21:22:01 |
收之,谢谢 不知rh9.0行不行,以后试试
|
daidai 回复于:2003-05-02 19:11:58 |
辛苦了
|
白狐狸 回复于:2003-05-02 19:28:26 |
[quote:bf109b5657="lianyong"]
是吗,在哪里改啊,是config.inc.php里面?
:roll:[/quote:bf109b5657]
是的
|
zgliu 回复于:2003-05-02 19:53:14 |
真是辛苦楼主了,不错!
|
nnfirst 回复于:2003-05-02 20:10:35 |
hao
|
1000g.net 回复于:2003-05-03 10:20:42 |
看了这些帖子,看来linux确实问题很多啊。
|
alstone 回复于:2003-05-03 12:15:56 |
这些问题很正常啊。 多调调就行了。 调试的过程也是学习的过程
|
冷雨纷飞 回复于:2003-05-05 22:06:11 |
看完了~ 厉害呀~~ 收了,慢慢调试,慢慢研究
|
style 回复于:2003-09-05 11:40:21 |
但是直接根据iceblood的qmail_setup脚本安装就没有SMTP验证了
|
skid 回复于:2005-07-13 11:08:12 |
太好了,7。3可以用吗?
|
原文转自:http://www.ltesting.net