Configurer virtual host apache2

Bonsoir,

J’ai un serveur sous Wheezy avec LAMP.

Je souhaite, sur ce même serveur, avoir une «infinité» de sites possible, après une recherche sur Google je découvre le virtual hosting (je n’ai jamais vraiment touché à LAMP plus que ça).

Je souhaite qu’avec une seule IP je puisse avoir plusieurs sites (dont les DocumentRoot se trouvent dans /var/www/nomdusite).

J’ai donc crée /etc/apache2/httpd.conf/vhosts.conf :

[code]Listen 80

NameVirtualHost 88.191.133.170:80

<VirtualHost *:80>
ServerAdmin kevingaspard@lavabit.com
DocumentRoot /var/www/koshie
ServerName koshie.fr
ServerAlias http://koshie.fr
ErrorLog /var/www/koshie/logs/error_log
TransferLog /var/www/koshie/logs/access_log

<VirtualHost *:80>
ServerAdmin kevingaspard@lavabit.com
DocumentRoot /var/www/sd-24441
ServerName sd-24441.dedibox.fr
ServerAlias http://sd-24441.dedibox.fr
ErrorLog /var/www/sd-24441/logs/error_log
TransferLog /var/www/koshie/logs/access_log

[/code]

Quand je relance apache2 j’ai ça :

[quote]Restarting web server: apache2[Sat Jul 16 23:16:01 2011] [warn] NameVirtualHost 88.191.133.170:80 has no VirtualHosts
[Sat Jul 16 23:16:01 2011] [warn] NameVirtualHost 88.191.133.170:80 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address [::]:80[/quote]

Et lorsque je vais sur sd-24441.dedibox.fr j’ai le contenu du DocumentRoot de koshie.fr (c’est-à-dire «It works dude !»).

J’ai tenté de comprendre la configuration via le site d’Apache et quelques recherches sur Google mais il semblerait que j’ai pas tout compris :).

Dans le doute, voici mon /etc/hosts :

[code]127.0.0.1 localhost
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

88.191.133.170 sd-24441.dedibox.fr Alpha
[/code]

Koshicalement

Remplace ta directive NameVirtualHost par :

NameVirtualHost *:80

(ça doit correspondre à ce que tu rentres dans )

Merci pour ta réponse.

Désormais j’ai ceci :

[quote]Starting web server: apache2[Mon Jul 18 16:43:23 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address [::]:80
[/quote]

Après quelques recherche il s’avère que mon port 80 n’est pas utilisé par un autre logiciel :

[quote]root@Alpha:~# lsof -i:80
root@Alpha:~# netstat -plant
Connexions Internet actives (serveurs et établies)
Proto Recv-Q Send-Q Adresse locale Adresse distante Etat PID/Program name
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 1614/named
tcp 0 0 0.0.0.0:5269 0.0.0.0:* LISTEN 1625/lua
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 22484/sshd
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 1614/named
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1563/exim4
tcp 0 0 127.0.0.1:5347 0.0.0.0:* LISTEN 1625/lua
tcp 0 0 0.0.0.0:5222 0.0.0.0:* LISTEN 1625/lua
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 9811/mysqld
tcp 0 48 88.191.133.170:22 89.159.57.128:46414 ESTABLISHED 8525/sshd: koshie [
tcp6 0 0 :::22 :::* LISTEN 22484/sshd
tcp6 0 0 ::1:953 :::* LISTEN 1614/named
tcp6 0 0 ::1:25 :::* LISTEN 1563/exim4 [/quote]

Donc j’en conclu, suite à cette page, qu’il me manque le PIDFILE, et effectivement je n’ai pas le .pid d’Apache2 dans /var/run/apache2. Normalement si j’ai bien compris le .pid se créer lorsqu’Apache2 se lance, seulement Apache2 ne semble même plus se lancer correctement chez moi, car après avoir tapé service apache2 start l’output de l’option status me donne ça :

Je ne vois toujours pas comment résoudre cela, j’ai la désagréable impression de m’être crée un nouveau problème.

Et cela vient manifestement de vhost.conf puisqu’après l’avoir déplacé totalement ailleurs voici ce que j’ai :

[quote]root@Alpha:~# service apache2 start
Starting web server: apache2.
root@Alpha:~# service apache2 status
Apache2 is running (pid 9071).
[/quote]

Ici apache se lance correctement et j’ai bien apache2.pid dans /var/run/apache2.

En quoi vhost.conf pose t’il tant de problème ?

Koshicalement

Salut

Pour configurer le virtual hosting il faut regarder dans /etc/apache2/sites-available
et créer 2 fichiers un pour koshie.fr l’autre pour sd-24441.dedibox.fr.

Edit : après faire

# a2ensite koshie.fr
# a2ensite sd-24441.dedibox.fr

pour créer les liens dans /etc/apache2/sites-enabled

doc (anglais) : http://library.linode.com/web-servers/apache/installation/debian-6-squeeze?format=print#sph_configure-apache-for-named-based-virtual-hosting

C’est le Listen 80 de ton vhosts.conf qui pose problème. Sous debian, il y a déjà cette directive dans /etc/apache2/ports.conf (d’ailleurs la directive NameVirtualHost *:80 y est aussi !).

Tout est déjà dans la conf de base sous debian, pour que tu n’aies qu’à rajouter les vhosts (de <VirtualHost *:80> à ), idéalement dans les dossiers prévus pour ça (voir la réponse de gaston).