Kleines Apache Problem

C

Cybersonic

Hallo

ich weiß es hört sich blöd an, aber habe ausversehen das shell script
/etc/init.d/apache löscht. Nachdem es mir aufgefallen war, habe ich via apt-get versucht apache 1.3.33 neu zu installieren ohne erfolg, danach deinstalliert und wieder neu installiert, was auch geklappt hat leider nur ohne dieses shell script hat jemand es da, oder kann mir so weiterhelfen. Über eine Antwort würde ich mich sehr freuen,
 
Hm, du könntest dir das Debpaket vom Apacheserver einfach runterziehen , entpacken und daraus dann das Initscript wieder an seinen Platz kopieren.

Oder du deinstallierst apache mit apt-get --purge remove apache und installierst danach nochmal neu, dann sollte es auch gehen.

Sollte eigentlich beides so klappen.

Gruß Sono
 
Hallo
Normalerweise hat man ja eine Kopie solcher Dateien (Backup vom /etc/ ist eine Gute Idee).

Aber weil heute Sonntag ist, stelle ich mal ein Startscript vom Debianpaket des Apache2 zur verfügung:
Musst halt nur schauen, ob die Pfade stimmen.

#!/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

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 ] && echo "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
echo " ... failed!"
echo "Apache2 failed to honor the stop command, please investigate the situation by hand."
exit 1
fi

sleep 1
done
else
echo -n " ... no pidfile found! not running?"
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
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
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*
echo -n "Starting web server: Apache2"
$APACHE2CTL startssl
echo "."
;;
stop)
echo -n "Stopping web server: Apache2"
apache_stop
echo "."
;;
reload)
echo -n "Reloading web server config..."
$APACHE2CTL graceful $2
echo "done."
;;
restart | force-reload)
echo -n "Forcing reload of web server: Apache2"
apache_stop
$APACHE2CTL startssl
echo "."
;;
*)
echo "Usage: /etc/init.d/apache2 start|stop|restart|reload|force-reload"
;;
esac

Gruß Wolfgang
PS Versprich, dass du nächstes mal ein backup hast. :devil:
 

Ähnliche Themen

Windows clients können nicht mehr auf lange laufendes System zugreifen

Apache Restart funktioniert nicht

Squid als RPCoHTTPS Proxy für Outlook Anywhere

Problem mit XServer nach Update oder Stromausfall

Problem Etch -> Lenny

Zurück
Oben