我这样装APACHE
2008-01-03 14:28:27
这个话题似乎太简单太俗了,因为大凡做过系统维护的读者谁不知道怎么安装Apache呢。所以,笔者在这里不打算去谈大家都十分熟悉而且十分简单的内容。我们来谈谈Apache的配置文件httpd.conf,Apache的启动脚本及自动化的安装脚本。 一.Apache配置文件 不知道大家有没有这样的感觉,打开httpd.conf文件后,发现里面的注释太多了,多得让你想在里面查找个东西都要费不少的劲。实践中,为了避免去折腾这个httpd.conf文件,往往是不去管它,而是去另外一个文件里面干活: $APACHE_HOME/conf/extra/httpd_vhost.conf。 这样虽然在一定程度上方便了操作,可是终归有必须“拜访”httpd.conf的时候,而且,杂乱无章的httpd.conf文件也不符合安全的要求。所以,insecure.org上有文章就指出,httpd.conf文件应该从头自己写。笔者赞同这个提法,实践中总是用自己从头写的httpd.conf。自己从头写的配置文件,简明扼要,方便操作,看起来就给人一种很清爽的感觉。笔者的httpd.conf文件涉及的知识点可以满足一个中型网站的要求了,比如MPM参数设置,用户跟踪,图片请求日志处理,防恶意访问,防盗链等。在附件里给出。 二.Apache的启动脚本 Apache的启动脚本$APACHE_HOME/bin/apachectl用起来确实方便,不过笔者看来,它还不是十分方便。我们希望他能放到/etc/init.d/下面去,在系统启动时,自动启动Apache。而且,在平常维护的时候,也不需要去关注Apache到底安装在哪里的,只要执行/etc/init.d/目录下的该脚本,就搞定了(永远都不要奢望监控人员会熟悉你的系统)。所以,笔者对其做了修改,使其能完成这个任务。修改后内容如下: [root@bj-web1 bin]# cat /etc/init.d/apache #!/bin/sh # # chkconfig: 345 90 19 # description: startup script for apache # processname: httpd ARGV="$@" APACHE_HOME=/usr/local/apache2 HTTPD="$APACHE_HOME/bin/httpd" if test -f $APACHE_HOME/bin/envvars; then . $APACHE_HOME/bin/envvars fi LYNX="links -dump" STATUSURL="http://localhost:80/server-status" ULIMIT_MAX_FILES="ulimit -S -n `ulimit -H -n`" if [ "x$ULIMIT_MAX_FILES" != "x" ] ; then $ULIMIT_MAX_FILES fi ERROR=0 if [ "x$ARGV" = "x" ] ; then ARGV="-h" fi case $ARGV in start|stop|restart|graceful|graceful-stop) $HTTPD -k $ARGV ERROR=$? ;; configtest) $HTTPD -t ERROR=$? ;; status) $LYNX $STATUSURL | awk ' /process$/ { print; exit } { print } ' ;; fullstatus) $LYNX $STATUSURL ;; *) $HTTPD $ARGV ERROR=$? esac exit $ERROR [root@bj-web1 bin]# ll /etc/init.d/apache -rwxr-xr-x 1 root root 1014 1月 2 16:01 /etc/init.d/apache [root@bj-web1 bin]# chkconfig --list | grep apache apache 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 三.Apache自动安装脚本 安装过Apache的读者就知道,即使在DELL 2850上装Apache,也要几分钟时间,而且,如果手工安装的话,还容易导致每次安装出来的Apache都不一样,这样的系统是很难维护的。所以,笔者实践中都是用脚本安装。下面是笔者使用的安装脚本: root@bj-web1 bin]# cat install_apache.sh #!/bin/bash #file name: install_apache.sh CUR_DIR=`pwd` APACHE_HOME=/usr/local/apache2 #---------------------------- tar -jxvf httpd-2.2.4.tar.bz2 cd httpd-2.2.4 #---------------------------- ./configure \ --prefix=$APACHE_HOME\ --disable-actions \ --disable-asis \ --disable-autoindex \ --disable-cgi \ --disable-cgid \ --disable-charset-lite \ --disable-imagemap \ --disable-include \ --disable-negotiation \ --disable-userdir \ --enable-cache \ --enable-deflate \ --enable-disk-cache \ --enable-expires \ --enable-file-cache \ --enable-headers \ --enable-http \ --enable-logio \ --enable-mem-cache \ --enable-mime-magic \ --enable-proxy \ --enable-proxy-http \ --enable-proxy-balancer \ --enable-rewrite \ --enable-so \ --enable-status \ --enable-usertrack \ --with-mpm=worker \ --with-included-apr make && make install rm -rf $APACHE_HOME/cgi_bin rm -rf $APACHE_HOME/manual rm -rf $APACHE_HOME/htdocs/* install $CUR_DIR/apache.conf $APACHE_HOME/conf/httpd.conf install $CUR_DIR/apache.sh /etc/init.d/apache chkconfig apache on /etc/init.d/apache start 到此为止,我们说了Apache安装过程中的三个文件,httpd.conf, apache.sh和install_apache.sh。那么,实际安装过程中,应该把这三个文件放到什么位置呢?笔者常用的刀法是这样: [root@bj-web1 bin]# cd /usr/local/src [root@bj-web1 src]# ll -rw-r--r-- 1 root root 4864 1月 2 15:42 apache.conf -rw-r--r-- 1 root root 995 1月 2 15:46 apache.sh -rw-r--r-- 1 root root 4930375 2007-01-06 httpd-2.2.4.tar.bz2 -rw-r--r-- 1 root root 1035 1月 2 15:53 install_apache2.sh [root@bj-web1 src]# sh install_apache2.sh 几分钟后,一个全新的Apache就装好了。 本文出自 51CTO.COM技术博客 |
附件下载:
Apache 安装相关文件
Apache 安装相关文件


zkjian517
博客统计信息
热门文章
最新评论
友情链接

