Problème démarrage automatique d'apache

Bonjour,
Le démarrage automatique d’apache 2.0 lors d’un reboot sur ma debian etch ne fonctionne pas.
J’ai lu sur le net que apachectl servait de script de démarrage donc je l’ai placer dans le répertoire /etc/init.d puis j’ai créer un lien de ce script avec l’outil update-rc.d en utilisant l’option defaults ou en spécifiant moi mème le niveau de démarrage (2) mais ça ne fonctionne pas non plus.
J’ai tester aussi avec un autre script dispo sur le net, sans succès.
Avez vous une idée de ce que je pourrais faire d’autres ?

quote="rungis"
J’ai lu sur le net que apachectl servait de script de démarrage
(…)[/quote] Pour apache<2, ça servait de commande de controle, mais pas de script de démarrage, je ne sais pas ou tu as pu voir ça.
En tous cas, le script de démarrage d’apache2 s’appelle apache2, et comme pour tous les services debian, il s’installe tout seul dans init.d avec le paquet.
Quel paquet apache as tu utilisé ?
Que donne ls /etc/rc*.d/???apache2 ?

Tu dis >Le démarrage automatique<, ça veut dire que tu fais un démarage manuel ? si oui comment ? D’ailleurs qu’est ce qui te fait dire qu’il ne démarre pas ?

Normalement, apache, tu installes le paquet, et c’est tout ça marche.
Si ça ne marche tjs pas, ça serait interressant aussi d’avoir des infos sur le contenu de tes logs.

Tout d’abord, merci pour la rapidité de ta réponse.
Alors j’ai installé le paquet qui est disponible sur le site apache.org
Et oui j’effectue un démarrage manuel en passant par le script apachectl. J’ai essayé de le lancer au démarrage en le spécifiant dans le fichier /etc/rc.local mais sans succès.
Si je reboot ma machine et que je fais un #ps -aux |grep httpd
le processus n’est pas existant et mon site ne fonctionne donc pas.
Je démarre le service web en tappant: #/usr/local/apache2/bin/apachectl start
Dans /etc/rc2.d j’ai bien apache2 qui est censé être mon script de démarrage mais il ne lance rien du tout :confused:
Au pire si quelqu’un a l’amabilité de me passer son script de démarrage je peut tester.

J’ai vu ceci ici: personnels.univ-paris3.fr/ww … oking.html

J’ai vu ceci ici: personnels.univ-paris3.fr/ww … oking.html[/quote]

Oui donc la commande c’est apachectl start et non pas apachectl tous seul !

Mais de toute manière tu va avoir du mal à executer cette commande.

Pour info, mon script ce trouve dans /etc/rc2.d et se nome S91apache2

[quote]Je démarre le service web en tappant: #/usr/local/apache2/bin/apachectl start[/quote] …
oui j’imagine mais peux tu me le passer que je puisse tester plz

quote="rungis"
Alors j’ai installé le paquet qui est disponible sur le site apache.org[/quote]Pkoi te compliquer la vie et risuer des incompatibilité avec ton OS ? Il y a des paquets >faits pour debian<.

quote="rungis"
Au pire si quelqu’un a l’amabilité de me passer son script de démarrage je peut tester.[/quote]
Bah ça va pas beaucoup t’aider, c’est trés spécifique à la manière dont debian range le paramètrage d’apache, si ça se trouve, les choses ne se trouvent pas au même endroit dans la version d’apache.org:

[code]#!/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
echo "No apache MPM package installed"
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"

pidof_apache() {
# if pidof is null for some reasons the script exits automagically
# classified as good/unknown feature
PIDS=pidof apache2 || true

PID=""

# 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
    if [ -e $PFILE ]; then
        cat $PFILE
        return 0
    fi
done
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
        echo $PID
        return 0
    fi
done
return 1

}

apache_stop() {
if apache2 -t > /dev/null 2>&1; then
# if the config is ok than we just stop normaly
$APACHE2 -k stop
else
# if we are here something is broken and we need to try
# to exit as nice and clean as possible
PID=$(pidof_apache)

            if [ "${PID}" ]; then
                    # in this case it is everything nice and dandy
                    # and we kill apache2
                    kill $PID
            elif [ "$(pidof apache2)" ]; then
                    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

}

apache_sync_stop() {
# running ?
PIDTMP=$(pidof_apache)
if $(kill -0 “${PIDTMP:-}” 2> /dev/null); then
PID=$PIDTMP
fi

    apache_stop

    # wait until really stopped
    if [ -n "${PID:-}" ]; then
            i=0
            while $(kill -0 "${PID:-}" 2> /dev/null);  do
                    if [[ $i == '30' ]]; then
                            break;
                    else
                            if [[ $i == '0' ]]; then
                                    echo -n " waiting "
                            else
                                    echo -n "."
                            fi
                            i=$(($i+1))
                            sleep 2
                  fi
             done
    fi

}

Stupid hack to keep lintian happy. (Warrk! Stupidhack!).

case $1 in
start)
[ -f /etc/apache2/httpd.conf ] || touch /etc/apache2/httpd.conf
[ -d /var/run/apache2 ] || mkdir -p /var/run/apache2
[ -d /var/lock/apache2 ] || mkdir -p /var/lock/apache2
#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 start; 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)
if ! $APACHE2CTL configtest > /dev/null 2>&1; then
$APACHE2CTL configtest || true
log_end_msg 1
exit 1
fi
log_begin_msg "Reloading web server config…"
if pidof_apache; then
if $APACHE2CTL graceful $2 ; then
log_end_msg 0
else
log_end_msg 1
fi
fi
;;
restart | force-reload)
log_begin_msg "Forcing reload of web server (apache2)…"
if ! apache_sync_stop; then
log_end_msg 1
fi
if $APACHE2CTL start; 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[/code]

quote="KippiX"
Pour info, mon script ce trouve dans /etc/rc2.d et se nome S91apache2[/quote]Non. Ce que tu vois dans un /etc/rcX.d
est un lien symbolique vers un script dans /etc/init.d, et au moment du passage au runlevel X, si il voit un lien dans rcX.d qui commence par S, il execute le script d’init.d avec l’argument start, et si c’est un K, avec l’argument stop.
Il ne faut surtout pas mettre de script dans /etc/rcX.d.
La gestion se fait par update-rc.d (man update-rc.d).