从源码编译apache2
- cannot
- 帖子: 80
- 注册时间: 2005-04-28 1:22
从源码编译apache2
从源码编译apache2,如何让它开机自动启动?
- oneleaf
- 论坛管理员
- 帖子: 10455
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
- firehare
- 帖子: 2625
- 注册时间: 2005-04-10 16:54
- 来自: 温州大学
- 联系:
Re: 从源码编译apache2
是啊!cannot 写了:从源码编译apache2,如何让它开机自动启动?
如果这样的话,
你以后的升级,安全更新不都要手动去做吗?
建议使用软件库中的包文件进行安装!!
我心无畏,源自于我心无知。


- cannot
- 帖子: 80
- 注册时间: 2005-04-28 1:22
- firehare
- 帖子: 2625
- 注册时间: 2005-04-10 16:54
- 来自: 温州大学
- 联系:
这个问题我想同楼上的兄弟探讨一下!cannot 写了:自己搞定,从 deb 安装apache2,把 /etc/init.d/apache2备份出来,再卸载 apache 的 deb ,根据自己的情况改一下 /etc/init.d/apache2 即可。
楼上两位的,谢谢你们的回答,不过我觉得自己维护一些自己最需要呵护的软件并没有什么问题,其它的软件当然是用 apt 来维护。
如果有人告诉我服务的脚本在 /etc/init.d/ 里面,也许我不会绕那么多弯路了。
你所用的并非一般软件而是服务软件
这种类型的软件有两个很重要的要求就是稳定及保持服务尽可能的连续
那么从稳定来说
DEB包是经过了N名牛人的制作及测试(这个很重要)后才发放出来的
因此它是可靠的,运行起来同整个系统的兼容性(或说它同系统的融合度)是不言而喻的,此为其一
从保持服务的连续而言
当该服务软件出现漏洞需要更新时,DEB包可以保持其更新的正确性,即不会在更新后出现一系统的问题,甚至服务起不来。而不用包文件的话,则可能需要重新进行编译,出错的可能性极大。用DEB包的话,更新完成之后,只需要运行脚本 /etc/init.d/apache2 restart 即可,服务中断的时候几乎可以忽略不计。
以上观点仅供楼主兄弟参考!
有什么想法我们可以讨论讨论
我心无畏,源自于我心无知。


- cannot
- 帖子: 80
- 注册时间: 2005-04-28 1:22
你说得是没有错啦,不过如果我想最终成为你所说的那种牛人的N分之一,还不是要一步步来学习,有不懂的还不是得一个个问题问?firehare 写了:这个问题我想同楼上的兄弟探讨一下!cannot 写了:自己搞定,从 deb 安装apache2,把 /etc/init.d/apache2备份出来,再卸载 apache 的 deb ,根据自己的情况改一下 /etc/init.d/apache2 即可。
楼上两位的,谢谢你们的回答,不过我觉得自己维护一些自己最需要呵护的软件并没有什么问题,其它的软件当然是用 apt 来维护。
如果有人告诉我服务的脚本在 /etc/init.d/ 里面,也许我不会绕那么多弯路了。
你所用的并非一般软件而是服务软件
这种类型的软件有两个很重要的要求就是稳定及保持服务尽可能的连续
那么从稳定来说
DEB包是经过了N名牛人的制作及测试(这个很重要)后才发放出来的
因此它是可靠的,运行起来同整个系统的兼容性(或说它同系统的融合度)是不言而喻的,此为其一
从保持服务的连续而言
当该服务软件出现漏洞需要更新时,DEB包可以保持其更新的正确性,即不会在更新后出现一系统的问题,甚至服务起不来。而不用包文件的话,则可能需要重新进行编译,出错的可能性极大。用DEB包的话,更新完成之后,只需要运行脚本 /etc/init.d/apache2 restart 即可,服务中断的时候几乎可以忽略不计。
以上观点仅供楼主兄弟参考!
有什么想法我们可以讨论讨论
- oneleaf
- 论坛管理员
- 帖子: 10455
- 注册时间: 2005-03-27 0:06
- 系统: Ubuntu 12.04
- cannot
- 帖子: 80
- 注册时间: 2005-04-28 1:22
- firehare
- 帖子: 2625
- 注册时间: 2005-04-10 16:54
- 来自: 温州大学
- 联系:
- jerysun
- 帖子: 36
- 注册时间: 2005-07-13 20:25
- 来自: 山东
- 联系:
-
- 帖子: 3025
- 注册时间: 2005-05-07 23:57
- 联系:
代码: 全选
#!/bin/sh -e
#
# apache2 This init.d script is used to start apache2.
# It basically just calls apache2ctl.
ENV="env -i LANG=C PATH=/usr/local/bin:/usr/bin:/bin"
#[ `ls -1 /etc/apache2/sites-enabled/ | wc -l | sed -e 's/ *//;'` -eq 0 ] && \
#echo "You haven't enabled any sites yet, so I'm not starting apache2." && \
#echo "To add and enable a host, use addhost and enhost." && exit 0
#edit /etc/default/apache2 to change this.
NO_START=0
set -e
if [ -x /usr/sbin/apache2 ] ; then
HAVE_APACHE2=1
else
exit 0
fi
. /lib/lsb/init-functions
test -f /etc/default/rcS && . /etc/default/rcS
test -f /etc/default/apache2 && . /etc/default/apache2
if [ "$NO_START" != "0" -a "$1" != "stop" ]; then
[ "$VERBOSE" != no ] && log_warning_msg "Not starting apache2 - edit /etc/default/apache2 and change NO_START to be 0.";
exit 0;
fi
APACHE2="$ENV /usr/sbin/apache2"
APACHE2CTL="$ENV /usr/sbin/apache2ctl"
apache_stop() {
PID=""
PIDFILE=""
# let's try to find the pid file
# apache2 allows more than PidFile entry in the config but only
# the last found in the config is used
for PFILE in `grep ^PidFile /etc/apache2/* -r | awk '{print $2}'`; do
PIDFILE="$PFILE"
if [ -e "$PIDFILE" ]; then
PID=`cat $PIDFILE`
fi
done
if `apache2 -t > /dev/null 2>&1`; then
# if the config is ok than we just stop normaly
if [ -e "$PIDFILE" ]
then
PID=`cat $PIDFILE`
$APACHE2 -k stop
CNT=0
while [ 1 ]
do
CNT=$(expr $CNT + 1)
[ ! -d /proc/$PID ] && break
if [ $CNT -gt 60 ]
then
if [ "$VERBOSE" != no ]; then
echo " ... failed!"
echo "Apache2 failed to honor the stop command, please investigate the situation by hand."
fi
return 1
fi
sleep 1
done
else
if [ "$VERBOSE" != no ]; then
echo -n " ... no pidfile found! not running?"
fi
fi
else
# if we are here something is broken and we need to try
# to exit as nice and clean as possible
# if pidof is null for some reasons the script exits automagically
# classified as good/unknown feature
PIDS=`pidof apache2` || true
REALPID=0
# if there is a pid we need to verify that belongs to apache2
# for real
for i in $PIDS; do
if [ "$i" = "$PID" ]; then
# in this case the pid stored in the
# pidfile matches one of the pidof apache
# so a simple kill will make it
REALPID=1
fi
done
if [ $REALPID = 1 ]; then
# in this case it is everything nice and dandy
# and we kill apache2
kill $PID
else
# this is the worst situation... just kill all of them
#for i in $PIDS; do
# kill $i
#done
# Except, we can't do that, because it's very, very bad
if [ "$VERBOSE" != no ]; then
echo " ... failed!"
echo "You may still have some apache2 processes running. There are"
echo "processes named 'apache2' which do not match your pid file,"
echo "and in the name of safety, we've left them alone. Please review"
echo "the situation by hand."
fi
return 1
fi
fi
}
# Stupid hack to keep lintian happy. (Warrk! Stupidhack!).
case $1 in
start)
[ -f /etc/apache2/httpd.conf ] || touch /etc/apache2/httpd.conf
#ssl_scache shouldn't be here if we're just starting up.
[ -f /var/run/apache2/ssl_scache ] && rm -f /var/run/apache2/*ssl_scache*
log_begin_msg "Starting web server (Apache2)..."
if $APACHE2CTL startssl; then
log_end_msg 0
else
log_end_msg 1
fi
;;
stop)
log_begin_msg "Stopping web server (Apache2)..."
if apache_stop; then
log_end_msg 0
else
log_end_msg 1
fi
;;
reload)
log_begin_msg "Reloading web server config..."
if $APACHE2CTL graceful $2 ; then
log_end_msg 0
else
log_end_msg 1
fi
;;
restart | force-reload)
log_begin_msg "Forcing reload of web server (Apache2)..."
if ! apache_stop; then
log_end_msg 1
fi
if $APACHE2CTL startssl; then
log_end_msg 0
else
log_end_msg 1
fi
;;
*)
log_success_msg "Usage: /etc/init.d/apache2 start|stop|restart|reload|force-reload"
;;
esac
独自看一看大海
总想起身边走在路上的朋友
Lenovo E290-420[Celeron-M420/256M/60G/Intel GMA950]
总想起身边走在路上的朋友
Lenovo E290-420[Celeron-M420/256M/60G/Intel GMA950]
- yang119345
- 帖子: 570
- 注册时间: 2005-06-19 14:22
- 来自: 上海
- 联系: