随着改革开放的步伐快速迈进,国内IT业的公司也犹如雨后春笋一般,一个接一个的涌现,这当中不乏有许多以制作门户网站发家致富的人,这也使得WWW服务器的技术一天比一天走向成熟。LAMP服务器环境,当然也是这当中热的发烫的技术之一。今天小弟我也就LAMP的架设,在博客里献献丑了。
    什么是LAMP呢?实际上就是在Linux操作系统上搭配Apache+Mysql+php上实现WWW服务器平台架设。至于这些软件是什么,我就不在这里一一叙述啦,感兴趣的朋友可以上百度查查它们的相关历史。
    好了,废话不多说了。首先让我们看看搭建这个平台需要给我们的Linux主机安装哪些软件来实现吧。(小弟这里使用的是Redhat Enterprise 4 Linux)
    Httpd(Apache在1.3版本以后推出的软件包名称)、mysql、mysql-server、php、php-devel(里面包括php的软件加速工具)、php-mysql.
    上述的这些软件包,如果是新手朋友安装的话,建议使用rpm软件包安装,不建议使用源代码包自行编译安装(因为过程有点复杂)。
     软件包安装完毕后,我们可以使用rpm -ql命令来查询下软件包内的文件被放置在了系统的哪些位置。
    首先让我们来看下Httpd软件包的文件在哪?
     /etc/httpd/conf/httpd.conf:Apache的主要配置文件,包括设置Apache服务器运行的参数等等。
     /etc/httpd/conf.d/*.conf :可以在不对httpd.conf设置的情况下,使用自己设置的一些配置文件,放在此目录中,当Apache在启动时会自动加载执行。(注意,文件扩展名要为.conf)
    /usr/lib/httpd/modules/:用于存放Apache支持的模块。
    /var/www/html/:用于存放网站首页的目录。
    /var/www/error/:存放当 主机发生故障时,在浏览器上显示的错误消息文件的目录。
    /var/www/cgi-bin/:一些默认的CGI文件的存放目录。
    /var/log/httpd/:用于存放Apache的日志文件。
    /usr/sbin/apachectl:用于执行Apache服务的Shell script文件。
    /usr/sbin/httpd:主要的Apache的二进制执行文件。
    /usr/bin/htpasswd:用于生成基本的Apache访问密码。
    /var/www/icons:存放一些Apache默认的图标文件。
    好了,软件包安装完了,所生成的文件和目录大概是做什么用的也了解了。现在,是该到着手配置一下小显身手的时候了。
    谈到配置,主配置文件的设定是肯定的。虽然Apache默认已经为我们做了一些配置,但是我们至少也得了解一下这些配置到底是做什么的,方便日后修改或排障。
    为了方便解释,我先进入到/etc/httpd/conf目录中,
使用:
     #grep ^\[^#\] httpd.conf | less
    这样做的目的是将httpd.conf中的注释文件过滤了,方便阅读。
 
    ServerTokens OS
    这一段是告诉客户端服务器的版本和操作系统。如果不想让别人知道那么多,可以更改为Minor。
    ServerRoot "/etc/httpd"
    设置文件的根目录,一般是绝对路径,而下面的很多设置使用相对路径也是根据这个路径来配置的。

     PidFile run/httpd.pid
     放置Apache的PID文件目录。
     Timeout 120
     联机等待超时时间。300S左右即可。

     KeepAlive Off
     是否允许持续性联机。就是当建立一个TCP连接后,可以传送多个文件。而不必没一个文件都建立TCP连接。推荐设置为ON。

     MaxKeepAliveRequests 100
     当允许持续性联机时,最大传输单元。0代表不限制。

     KeepAliveTimeout 15
     允许持续性联机时,最后一次传输后等待延时。不宜过大,否则空连接过多会浪费服务器资源。

     <IfModule prefork.c>
     StartServers       8
     Apache启动时同时起用的进程数。
     MinSpareServers    5
     最小进程数
     MaxSpareServers   20
     最大进程数
 
     ServerLimit      256
     服务保持时间
 
     MaxClients       256
     最大连接数
 
     MaxRequestsPerChild  4000
     最大传输次数要求
 
     </IfModule>
   
    <IfModule worker.c>
     StartServers         2
     MaxClients         150
     MinSpareThreads     25
     MaxSpareThreads     75
     ThreadsPerChild     25
     MaxRequestsPerChild  0
     </IfModule>
     以上两段是Apache默认的两种工作类型模块。
     Worker.c更适合流量较大的网站。
 
     Listen 80
     Apache启动时所监听的端口
 
     Load modules....
     Apache所加载的模块。支持很多喔。
 
     Include conf.d/*.conf
     就是前面讲过的,用于放置一些用户自己的配置文件,而在Apache启动时自动加载。
     User apache
     Group apache
     Apache启动和运行时需要的用户和组。
 
     ServerAdmin [email]Liu_840@126.com[/email]
     管理员的邮箱地址。
 
     ServerName [url]www.Benet.com:80[/url]
     设置主机的名称。否则将自动去/etc/hosts里查找。
 
     UseCanonicalName Off
     是否使用标准主机名称。如果使用多个主机名称时,就要OFF了。如果ON的话,只会使用ServerName上的主机名。
 
     DocumentRoot "/var/www/html"
     放置网页文件的目录路径。