Probleme demarrage apache2

yohan -  
 Newwamp -
Bonjour,

je possède une machine Debian et dessus j'ai installer apache2 j'ai fait quelques configs d'apres certains tutos et tout marché tres bien jusqu'a ce matin.

En effet, ce matin lorsque j'ai démarrer apache2 avec la commande /etc/init.d/apache2 start voila la reponse :

Starting web server (apache2)...[Fri Jun 13 13:20:15 2008] [warn] NameVirtualHost *:443 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
failed!

Est ce que quelqu'un peut m'aider car je ne sais plus quoi faire !!!

Merci

14 réponses

anom
 
killall apache2

et redémarrer.
11
rajaben
 
Cette commande marche, merci !
0
rajaben
 
Ca marche très bien !
0
Newwamp
 
comment on le fait? ma ligne de commande ne reconnait pas la comande killall
0
raclif Messages postés 87 Date d'inscription   Statut Membre Dernière intervention   10
 
Je ne crois pas qu'il critiquait mais bon...

edit ton fichier httpd.conf
Vérifie que tu as bien

Listen 80 (pour qu'apache écoute sur le bon port)

rajoute la variable NameVirtualHost *:80

et à la suite ecrit un virtualhost de ce type:
<VirtualHost *:80>
ServerAdmin webmaster@ton_domaine.com
DocumentRoot /disk01/www/ (le chemin où il y a ton fichier index.php)
ServerName ton_domaine.com
ErrorLog logs/ton_domaine.com-error.log
CustomLog logs/ton_domaine.com-access.log combined
</VirtualHost>

puis /etc/init.d/httpd graceful (redémarrage "propre")

Si tu as activé
Include conf.d/*.conf dans httpd.conf alors créé des fichiers séparés pour chaque virtualhost.

Je te balance ca brut de forme, mais je detaille plus si tu as besoin.

Bye
6
osef
 
oh je dis une bêtise en fait^^

apache2 utilise des sockets ipv6
donc pour utiliser de l'ipv4, il mappe les adresse ipv6 en ipv4 (par defaut sur bcp de distrib sauf FreeBSD, NetBSD, et OpenBSD)
Le mapping des adresses ipv6 en ipv4 sert jsute a limiter le nb de sockets

Listen 0.0.0.0:80 va jsute 'brider' apache pour qu'il n'utilise que de l'ipv4
(apache ne gèrera donc plus les connection ipv6)

écrire Listen[::]:80 revient à écrire Listen 80

et écrire

Listen[::]:80
Listen 0.0.0.0:80 ne devrait a priori marcher que sur les distrib ki ne compilent pas apache avec le mapping des adresses ipv6 en ipv4 par défaut (free, net et openbsd)

les connection ipv4 devraient être supportée donc.. en théorie.. c bizarre donc :p
4
yohan
 
En fait a ce que j'ai compris avec ces erreurs c'est qu'il me dit que l'adresse est deja utilisé et lorsque je tape le commande suivante pour savoir qui utilise le port 80 voila ce que j'obtient :

debian:/home/yohan# netstat -lpn | grep :80
tcp6 0 0 :::80 :::* LISTEN 2419/apache2

et sinon je voulais dire aussi que apache2 fonctionne que de temps a temps.
2

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ALAMI Taher (STAR)
 
1
kiki
 
Voir la doc ici au chapitre 3 : http://www.nuxwin.com/article-18-tutorial-serveur-web-apache-2-virtualhost

Verifiez aussi que vous avez bien les liens symbolique entre /etc/apache2/sites-available/ et /etc/apache2/sites-enable/
0
yohan
 
merci pour ce tuto et j'ai bien fait ce qui etait marké mai ce ne marche toujours pas. Voila le mesage d'erreur :
Forcing reload of web server (apache2)...httpd (no pid file) not running
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
failed!
0
keke
 
vérifie que tu lance bien ta commande en root...
0
kiki
 
A mon avis vous n'avez pas mis d'adresse IP à la directive NameVirtualHost dans le fichier /etc/apache2/apache2.conf

Le démon htttpd va écouter un port sur une adresse. Il faut emttre l'adresse locale.
Si vous utilisez aussi https, il faut mettre 2 lignes :

NameVirtualHost 192.168.1.1:80
NameVirtualHost 192.168.1.1:443

il est peut etre possible d'utiliser 0.0.0.0 pour toutes les adresses ?

l faut qu'il y ait au moins 2 vhost (1 pour chaque port si vous utilisez les ports 80 et 443).

Le vhost doit reprendre le numero IP et le port :

<VirtualHost 192.168.1.1:80>
DocumentRoot /var/www/www.site1.com
ServerName www.site1.com
...
<VirtualHost>

<VirtualHost 192.168.1.1:443>
DocumentRoot /var/www/www.site1.com
ServerName www.site1.com
...
<VirtualHost>

Il est possible d'inscrire la config du 2e vhost pour https dans le meme fichier de config (c'est la meme adresse).

Pour que tout fonctionne, il faut que le serveur puisse trouver les entrées dans le DNS nom_dns->IP
Il faut donc configurer /etc/hosts ou bind9 (si vous avez bind9 installé)

127.0.0.1 localhost
192.168.1.1 www.site1.com site1.com
192.168.1.1 www.site2.com site2.com
etc...

Comme le serveur va faire la distinction du vhost par rapport a son nom DNS et pas par rapport a son adresse IP, il faut que le DNS fonctionne.

NOTA : si le serveur n'est pas lancé, il ne faut pas faire un "apache2 reload" mais un "apache2 start".
0
yohan
 
Merci pour tout ces commandes mais j'ai deja mes 2 vhosts et tout est comme tu le dis mais quand j'essaye de la demarrer je n'obtient plus que ces lignes :

Starting web server (apache2)...(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
failed!
0
osef
 
en fait quand tu fais un
netstat -lpn, la première colonne indique le protocol utilisé

comme on peut le voir, c'est du version 6

Il me semble que c'est lié au
Listen 80

si tu met a la place un Listen 0.0.0.0:80
tu peux retomber sur de l'ipv4 et je pesne que tu aura moins de souci
(0.0.0.0 est aps une adresse valide d'interface mais c pour écouter a priori à partir de n'importe laquelle mais en ipv4 car j'ai l'impression que dans apache2, Listen 80 par défaut écoute les interfaces ipv6)
0
osef
 
pour l'ipv6 je crois que ca s'écrit [::] poru l'adresse 0.0.0.0 (ai aps encore l'habitude lol)

donc d'après ce que je vosi le Listen 80 correspond en fait à Listen [::]:80
0
Bleu
 
J'ai fais:

netstat -ltnp | grep '80'

Qui m'a donné cette ligne:

tcp 0 0 :::8080 :::* LISTEN 30982

Donc j'ai fait:

kill -9 30982

Puis j'ai relancé apache et ça a fonctionné. En fait, ce message d'erreur veut dire qu'un autre programme a pris ce port donc il faut le kill avant de relancer apache.
0
prefix
 
protocolaire ce "apache2"....
0
prefix
 
....quand un beau matin,ca marche plus...

protocolaire "apache2" ...protocolaire...eh!
0
william
 
super le kill


Merci+++
0
nohay
 
Apache marche très bien (c'est probablement le serveur http les plus utilisé)

en même temps c'est connu,

"bad worker blames his tool"

je veux dire quand on sait pas utiliser apache, on ne critique pas :p
-6