当前位置:  首页  >  服务器技术  >  Linux/unix  >  Linux教程

httpd的安装的启动脚本的制作

用yuminstallhttpd*安装的httpd服务器,默认是在目录etchttpd下面但是项目路径默认是在:varwwwhtml下面,可以在httpd.conf配置文件里查看如果是网上下载的httpd来安装,就不同,这样需要启动的话,不能用servicehttpdstart。需要到目录下apac

用yum install httpd*安装的httpd服务器,默认是在目录 /etc/httpd下面

但是项目路径默认是在:/var/www/html下面,可以在httpd.conf配置文件里查看

如果 是网上下载的httpd来安装,就不同,这样需要启动的话,不能用service httpd start。

需要到目录下/apache2/bin/httpd。这样就可以启动了

安装 apache压缩

把下载下来的包放在 /usr/local/src 下,使用 tar zxvf httpd-NN.tar.gz解压
cd httpd-NN
./configure --prefix=/usr/local/httpd
make
make install

现在你发现在/usr/local下面多出了一个httpd的目录
我们可以利用 /usr/local/httpd/bin/apachectl -k start|stop|restart 来管理httpd服务。
如果要随系统启动,我们必须在 /etc/rc.d/init.d/rc.local文件的末尾加上一行:
/usr/local/httpd/bin/apachectl -k start
即使是这样,但是我们还是不方便管理httpd服务,我们能不能,像rpm安装那样使用service服务来管理httpd服务呢?
答案是肯定的我们必须如下操作:
在 /etc/rc.d/init.d/下建立一个 httpd的文件,利用 chmod 755 httpd 使其具有执行能力。
vi httpd 添加如下内容:

  1. #!/bin/bash  
  2. #  
  3. # httpd        Startup script for the Apache HTTP Server  
  4. #  
  5. chkconfig: - 85 15  
  6. # description: Apache is a World Wide Web server.  It is used to serve   
  7. #              HTML files and CGI.  
  8. # processname: httpd  
  9. # config: /etc/httpd/conf/httpd.conf  
  10. # config: /etc/sysconfig/httpd  
  11. # pidfile: /var/run/httpd.pid  
  12.   
  13. # Source function library.  
  14. . /etc/rc.d/init.d/functions  
  15.   
  16. if [ -f /etc/sysconfig/httpd ]; then  
  17.         . /etc/sysconfig/httpd  
  18. fi  
  19.   
  20. # Start httpd in the C locale by default.  
  21. HTTPD_LANG=${HTTPD_LANG-\"C\"}  
  22.   
  23. # This will prevent initlog from swallowing up a pass-phrase prompt if  
  24. # mod_ssl needs a pass-phrase from the user.  
  25. INITLOG_ARGS=\"\"  
  26.   
  27. # Set HTTPD=/usr/sbin/httpd.worker in /etc/sysconfig/httpd to use a server  
  28. # with the thread-based \"worker\" MPM; BE WARNED that some modules may not  
  29. # work correctly with a thread-based MPM; notably PHP will refuse to start.  
  30.   
  31. # Path to the apachectl script, server binary, and short-form for messages.  
  32. apachectl=/usr/sbin/apachectl  
  33. httpd=${HTTPD-/usr/sbin/httpd}  
  34. prog=httpd  
  35. pidfile=${PIDFILE-/var/run/httpd.pid}  
  36. lockfile=${LOCKFILE-/var/lock/subsys/httpd}  
  37. RETVAL=0  
  38.   
  39. # check for 1.3 configuration  
  40. check13 () {  
  41.         CONFFILE=/etc/httpd/conf/httpd.conf  
  42.         GONE=\"(ServerType|BindAddress|Port|AddModule|ClearModuleList|\"  
  43.         GONE=\"${GONE}AgentLog|RefererLog|RefererIgnore|FancyIndexing|\"  
  44.         GONE=\"${GONE}AccessConfig|ResourceConfig)\"  
  45.         if LANG=C grep -Eiq \"^[[:space:]]*($GONE)\" $CONFFILE; then  
  46.                 echo  
  47.                 echo 1>&2 \" Apache 1.3 configuration directives found\"  
  48.                 echo 1>&2 \" please read /usr/share/doc/httpd-2.2.3/migration.html\"  
  49.                 failure \"Apache 1.3 config directives test\"  
  50.                 echo  
  51.                 exit 1  
  52.         fi  
  53. }  
  54.   
  55. # The semantics of these two functions differ from the way apachectl does  
  56. # things -- attempting to start while running is a failure, and shutdown  
  57. # when not running is also a failure.  So we just do it the way init scripts  
  58. # are expected to behave here.  
  59. start() {  
  60.         echo -n {1}quot;Starting $prog: \"  
  61.         check13 || exit 1  
  62.         LANG=$HTTPD_LANG daemon $httpd $OPTIONS  
  63.         RETVAL=$?  
  64.         echo  
  65.         [ $RETVAL = 0 ] && touch ${lockfile}  
  66.         return $RETVAL  
吐了个 "CAO" !
扫码关注 PHP1 官方微信号
PHP1.CN | 中国最专业的PHP中文社区 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | PHP问答
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有