폴더를 열고 /var/cache/apt/archives
아파치 deb 파일 ( apache2-common...
)을 찾으십시오 .
다음을 사용하여 파일을 추출하십시오.
dpkg -x <your_deb> /tmp/apache2
당신의 빈 /etc/init.d/apache2
을 교체/tmp/apache2/etc/init.d/apache2
파일을 찾을 수 없으면 여기 에서 deb 파일을 다운로드 할 수 있습니다 .
이전 버전의 경우 여기 또는 여기 . 가장 적합한 버전을 선택하십시오.
또는 우분투 9.10을 위해 이것을 가져 가라 from apache2-common_2.0.55-4ubuntu2.13_amd64.deb
.
#!/bin/bash -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"
#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=""
AP_CONF=/etc/apache2/apache2.conf
# apache2 allows more than PidFile entry in the config but only the
# last found in the config is used; we attempt to follow includes
# here, but only first-level includes are supported, not nested ones
for i in $AP_CONF `awk '$1 ~ /^\s*[Ii]nclude$/ && $2 ~ /^\// {print $2}' $AP_CONF`; do
PIDFILE=`grep -i ^PidFile $i | tail -n 1 | awk '{print $2}'`
if [ -e "$PIDFILE" ]; then
PID=`cat $PIDFILE`
fi
done
errors=`$APACHE2 -t 2>&1`
if [ $? = 0 ]; then
# if the config is ok than we just stop normaly
if [ -n "$PID" ]
then
$APACHE2CTL 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
[ "$VERBOSE" != "no" ] && echo "$errors"
# 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 everything is 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 [ "$PIDS" ] && [ "$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*
# /var/run and /var/lock could be on a tmpfs
[ ! -d /var/run/apache2 ] && mkdir /var/run/apache2
[ ! -d /var/lock/apache2 ] && mkdir /var/lock/apache2
# Make sure /var/lock/apache2 has the correct permissions
chown www-data /var/lock/apache2
log_begin_msg "Starting apache 2.0 web server..."
if $APACHE2CTL startssl; then
log_end_msg 0
else
log_end_msg 1
fi
;;
stop)
log_begin_msg "Stopping apache 2.0 web server..."
if apache_stop; then
log_end_msg 0
else
log_end_msg 1
fi
;;
reload)
log_begin_msg "Reloading apache 2.0 configuration..."
if $APACHE2CTL graceful $2 ; then
log_end_msg 0
else
log_end_msg 1
fi
;;
restart | force-reload)
log_begin_msg "Forcing reload of apache 2.0 web server..."
if ! apache_stop; then
log_end_msg 1
fi
if $APACHE2CTL startssl; then
log_end_msg 0
else
log_end_msg 1
fi
;;
status)
exit 4
;;
*)
echo "Usage: /etc/init.d/apache2 start|stop|restart|reload|force-reload" >&2
exit 2
;;
esac