第二,进入Linux,以root身份登录,挂载文件系统。
# mkdir c# mount -t vfat /dev/hda1 /c
因为我们将Apache的源代码放在驱动器C上,所以现在我们必须将它挂载到新创建的目录/C中。
第三,把这个程序复制到/tmp,方便操作。
#cp /c/apache_1.3.9.tar.gz /tmp
注意:Linux下的所有文件名都区分大小写。接下来,我们将从压缩包中提取源代码。相应的命令是:
#cd /tmp#tar zxvf apache_ 1.3.9.tar.gz
解压后进入存放源代码的目录,使用编译配置脚本设置环境。
#cd /tmp/apache_1.3.9#./configure--sysconfdir=/etc/httpd --datadir=/home/httpd --logfiledir=/var/log/httpd --enable-module=most --enable-shared=max --disable-rule=WANTHSREGEX
Apache被告知将配置文件保存在/etc/httpd目录下,其他文件(比如HTML手册文档和CGI-BIN目录)保存在/home/httpd目录下。
Apache还被告知将最常用的模块编译成DSO模块。DSO是动态共享对象的缩写。通过DSO支持的模式编译Apache,可以随时在Apache中添加和删除模块。
不需要重新编译,具体模块如下图。
第四,执行后。/configure,配置脚本将自动生成一个Makefile。至此,我们可以开始编译源代码了。
#make
源代码编译完成后,您应该使用make install将Apache安装到默认目录。当然,你也可以使用下面的命令:
#rpm -ivh apache*.rpm
安装Apache的RPM包。这个方法比较简单,就不详细介绍了。
部署
安装Apache后,开始它的配置工作。它的主目录下有四个文件:httpd.conf、access.conf、srm.conf和Magic,其中httpd.conf是主配置文件。
Access.conf是访问控制配置文件,srm.conf是Web主机的文件资源的配置文件。Magic是针对mime模块的一个设置,我们一般不会更改这个文件。
Apache运行时,首先调用httpd.conf,然后调用srm.conf,最后调用access.conf在较新的Apache版本中,
建议将文件srm.conf和access.conf的内容清空,设置选项完全存放在httpd.conf中,这样会更有利于服务器的安全。
让我们从httpd.conf开始我们神奇的Web网络世界
1.全局环境变量的设置
Httpd.conf从设置全局环境变量开始。我们将逐步介绍它的具体参数。
ServerType standaloneServerRoot '/etc/httpd'
“ServerType”指令的第一行指示Apache是作为独立的守护进程在后台运行,还是在收到HTTP请求时被另一个守护进程(Xinetd)唤醒。
对于正规的互联网网站,standalone可以提供比xinetd更快的客户端响应速度。所以我们选择单机模式。第二行代码介绍了服务器配置文件的相对根目录。
一般是/etc/httpd,安装时已经设置好了。请注意不要在此目录的末尾添加“/”。
LockFile /var/lock/httpd.lockPidFile /var/run/httpd.pidScoreBoardFile /var/run/httpd.scoreboardLockFile在安装Apache时指定选用了USE_FCNTL _SERIALIZED_ACCEPT,
#ResourceConfig conf/srm.conf#AccessConfig conf/access.conf
以上两项是指定服务器资源及控制权限的文件,在默认情况下并不使用它们。
Timeout 300keepAlive OnMaxKeepAliveRequests 100KeepAliveTimeout 15
这四项设定了服务器的连接属性。第一行说明了TCP中ack的响应时间为300秒;第二项表示是否保持服务响应的连接;紧接着的两项定义了这种连接的最大响应数目及响应时间。
如果MaxKeepAliveRequests设为0,那它便是unlimited,当然这就要考虑系统的承载能力了。
MinSpareServers 5MaxSpareServers 20StartServers 8
这三项定义了服务程序的最小、最大空的子进程数目及服务程序开始时的进程数。5、20、8分别是它们的默认数值。
MaxClients 150MaxRequestsPerChild 100
以上两行定义了同一时刻最多的客户连接数目和每个连接的子进程数。
Listen 3000Listen 12.34.56.78:80BindAddress *
这里定义了服务程序监听来自以上IP、端口号的Request。由于BindAddress只支持*(代表所有的IP),所以产生了Listen这个参数以便更灵活地处理客户机的响应。
ExtendedStatus On/Off
这条指令说明了是否跟踪服务程序所产生的扩展状态。
以下是对于DSO的支持,分别利用了LoadModule、AddModule参数。我们可以阅读表1,加载自己所需要的模块。
2.主服务器设置
下面设置主服务器(非虚拟服务主机)。
Port 80
这个参数给出了服务程序开启监听的端口号为80。
User nobodyGroup nobodyServeRadmin root@localhostServerName localhost
上面的第一、二行代表了打开服务进程的用户名和用户组名。第三、四行则是管理员的邮件地址和此服务器的主机名。
DocumentRoot '/home/httpd/html'DirectoryIndex index.html index.htm index.shtml index.cgiUserDir public_html
Mime 的文件定义类型是由下面的两句所决定: TypesConfig /etc/mime.typesMIMEMagicFile share/magicAddLanguage en .en此参数可以增加对多种语言的支持。
Directory /home/*/public_htmlAllowOverride FileInfo AuthConfig LimitOptions MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExecLimit GET POST OPTIONS PROPFINDOrder allow,denyAllow from all/LimitLimit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCKOrder deny,allowDeny from all/Limit/Directory这一段定义了/home/*/public_html目录下可以或禁止进行的文件操作,