设为首页 收藏本站
查看: 1320|回复: 0

[经验分享] 我这样装APACHE

[复制链接]

尚未签到

发表于 2018-11-26 10:16:32 | 显示全部楼层 |阅读模式
   这个话题似乎太简单太俗了,因为大凡做过系统维护的读者谁不知道怎么安装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就装好了。






附件:http://down.51cto.com/data/2349187


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-639732-1-1.html 上篇帖子: Apache POI处理excel文档 下篇帖子: Apache+heartbeat HA方案
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表