介绍:本文将介绍如何利用RedHat Linux的RPM包来建立一个具有实用意义开发与运用环境,省去了对各个软件包的编译步骤,方便快速。
一、操作系统的安装
红帽子Linux7.1的安装, 最常用的安装方式有两种:文本界面和图形界面。两种界面下都有很详细的系统安装向导,依顺序一步一步来,安装即可完成。我使用Linux的目的是用来做服务器,所以只选择了文本界面下的sever模式,Xwindows、KDE、Gnorm都没有要,总共不到600M。
值得注意的有几点:(1)分区的时候最好有个好的规划,特别是有多个硬盘的情况下;(2)配置防火墙选项时我选用High并选择了其它服务,如:DHCP,Email,FTP,Telnet,WWW,SSH等。(3)不用的包就不要装。
二、RPM包的安装
系统安装完成以后,根据需要添加所需的包。在配置Apache、Php4、Mysql、LDAP、GD、DB3、SSL时,表中的这些包将用到:
第一张盘:
apache-1.3.19-5.i386.rpm
gdbm-1.8.0-5.i386.rpm
nss_ldap-149-1.i386.rpm
openldap-2.0.7-14.i386.rpm
openldap-clients-2.0.7-14.i386.rpm
openssh-2.5.2p2-5.i386.rpm
openssl-0.9.6-3.i386.rpm
openssl-devel-0.9.6-3.i386.rpm
openssh-server-2.5.2p2-5.i386.rpm
php-4.0.4pl1-9.i386.rpm
php-imap-4.0.4pl1-9.i386.rpm
php-ldap-4.0.4pl1-9.i386.rpm
第二张盘:
apache-devel-1.3.19-5.i386.rpm
apache-manual-1.3.19-5.i386.rpm
auth_ldap-1.4.7-2.i386.rpm
db3-utils-3.1.17-7.i386.rpm
gdbm-devel-1.8.0-5.i386.rpm
gd-devel-1.8.3-7.i386.rpm
imap-2000-9.i386.rpm
imap-devel-2000-9.i386.rpm
mysql-3.23.36-1.i386.rpm
mysqlclient9-3.23.22-4.i386.rpm
mysql-devel-3.23.36-1.i386.rpm
mysql-server-3.23.36-1.i386.rpm
nss_db-2.2-3.i386.rpm
nss_db-compat-2.2-3.i386.rpm
openldap12-1.2.11-4.i386.rpm
openldap-devel-2.0.7-14.i386.rpm
openldap-servers-2.0.7-14.i386.rpm
openssl095a-0.9.5a-1.i386.rpm
php-devel-4.0.4pl1-9.i386.rpm
php-manual-4.0.4pl1-9.i386.rpm
php-mysql-4.0.4pl1-9.i386.rpm
(1)建子目录:
#mkdir /usr/local/rpm
(2)复制表中所列出的包到/usr/local/rpm下:
例如:
#cp php* /usr/local/rpm/ (将所有php开头的文件复制到/usr/local/rpm下)
(3)进入子目录/usr/local/rpm,并解包
#cd /usr/local/rpm
#rpm –Uvh *
这些包就会自动装上,大概十来分钟。比编译要方便快捷很多,在一台i486机上要装这样一套系统,全部编译下来得花十来个小时,可见rpm的效率还是很高的(我用的就是i486/8M内存/800M硬盘,经过多少次不眠之夜的编译,已尝够了编译的苦)。
三、系统的各个服务的设置
1. WW服务器的配置
修改/etc/httpd/conf/httpd.conf设置www服务器名,网页存放路径、缺省网页名、php网页扩展名、虚拟主机等
(1)设置www服务器名(第402行)
ServerName {http://www.gzprice.com/}
(2)网页存放路径(第409行和1065行)
DocumentRoot "/var/www/html"
(3)缺省网页名(第494行)
DirectoryIndex index.html index.htm index.shtml index.php index.php4 index.php3 index.cgi
(4)php网页扩展名(第796行)
AddType application/x-httpd-php .php4 .php3 .phtml .php
(5)虚拟主机(第1030行和1031行)
NameVirtualHost 12.34.56.78:8080(指定端口)或
NameVirtualHost 12.34.56.78
<VirtualHost 12.34.56.78>
ServerAdmin webmaster@study.com
DocumentRoot /var/www/html/gzprice
ServerName www.gzprice.com
ErrorLog logs/study.com-error_log
CustomLog logs/study.com-access_log common
</VirtualHost>
注:在域名服务器中,要将{http://www.gzprice.com/}解析到12.34.56.78
2. mysql服务器的配置
可执行文件都在/usr/bin/下,运行
#/usr/bin/mysql_install_db (添加缺省的数据库及表)
#/usr/bin/safe_mysqld & (在后台运行mysql数据库)
#/usr/bin/mysql (进入到mysql数据库中)
在提示符mysql>下键入:
GRANT ALL PRIVILEGES on *.* to leedee@'%' IDENTIFIED BY '123456789';
这里给用户leedee一个类似root的权限,密码为“123456789”。关于mysql的安全机制及用户管理,详情可参考mysql的使用手册。
四、系统防火增的配置及各个服务的启动
在Linux下有一个基于文本的设置文件,/usr/sbin/setup, 很简洁,也好用。
#/usr/sbin/setup
(1)防火增的配置
选Firewall configuration:
弹出界面:
选择High->Customize
本机将为网内的用户提供DHCP, SSH,TELNET,WWW,EMAIL,FTP服务,所以这些服务我都选上了。
(2)启动系统的各项服务
选System services:
把需要的服务都选上,如:dhcpd( IP地址动态分态),httpd(WWW 服务器),imap()
ldap(),mysql(),named(),telnet(),wu-ftpd()等。
还有一个重要的连接:
#ln –s /var/lib/mysql/mysql.sock /tmp/mysql.sock(有的软件只连接/tmp/mysql.sock)
重新启动系统,上面选中的服务都会自动执行。
五、测试系统
a) 在本机Linux系统上的测试
#telnet localhost 80
系统弹出:
Trying 127.0.0.1...
Connected to lover.gzprice.com.
Escape character is '^]'.
输入:
HEAD / HTTP /1.1 (连击Enter键两次,你会看到下面的内容)
HTTP/1.1 200 OK
Date: Tue, 07 Aug 2001 06:20:34 GMT
Server: Apache/1.3.19 (Unix) (Red-Hat/Linux) mod_ssl/2.8.1 OpenSSL/0.9.6 PHP/4.0.4pl1
Last-Modified: Thu, 29 Mar 2001 17:53:01 GMT
ETag: "130d-b4a-3ac3767d"
Accept-Ranges: bytes
Content-Length: 2890
Connection: close
Content-Type: text/html
Connection closed by foreign host.
再到windows系统上测试一下。
b) 在MS Windows系统上的测试
在linux系统下,
#vi /var/www/html/test.php
输入以下内容:
<?
phpinfo();
?>
存盘退出:wq
在windows系统下,用IE浏览:
{http://172.18.200.1/test.php}
php的信息全出来了。
这就是在编译时所有的选择,注意到“—without-mysql”, 因加入了php-mysql*的rpm包,所以mysql与php已经挂在了一起!
IMAP
LDAP
MYSQL
XML
Imap,ldap,mysql,gd…都出来了,好了,一个成功的开始!
六、结束语
Linux下Apache、DB3、 GD、LDAP、Mysql、Php4、SSL的整合是一个热点也是一个难点,全部编译下来不但要从网上下很多补丁,而且费时费力。利用REDHAT Linux提供的rpm包,可以方便快捷地完成开发系统的整合。
作者:李涤
电邮:linuxdee@163.net
日期:2001/08/07