Contenu | Rechercher | Menus

Annonce

DVD, clés USB et t-shirts Ubuntu-fr disponibles sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/01/2008, à 13:21

Sylvain31

Virtual Host

Salut à  tous,

Je voudrais créer des virtual host avec Apache. Je voudrais que :
www.mon-domaine.net pointe sur /var/www
toto.mon-domaine.net pointe sur /home/toto/www

Voici mon fichier de conf Apache :

NameVirtualHost *
<VirtualHost *>
	ServerAdmin webmaster@localhost
	
	DocumentRoot /var/www/
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
		# This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                #RedirectMatch ^/$ /apache2-default/
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
	ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

NameVirtualHost toto.mon-domaine.net
<VirtualHost toto.mon-domaine.net>
	ServerAdmin	toto@mon-domaine.net
	DocumentRoot	/home/toto/www
	ServerName	toto.mon-domaine.net
</VirtualHost>

Or, avec ce fichier, quand je vais sur toto.mon-domaine.net (mes DNS sont bien configué), je tombe sur /var/www. Sauriez vous pourquoi ?

#2 Le 09/01/2008, à 16:04

amateur

Re : Virtual Host

On édite le fichier de configuration principal d'apache2

nano /etc/apache2/apache2.conf

On vérifie les utilisateur et groupe d'apache

User www-data
Group www-data

On vérifie la présence de ces lignes à  la fin du fichier:

  Include the virtual host configurations:
Include /etc/apache2/sites-enabled/

On sauve les modifications, et on ferme le fichier.

/etc/init.d/apache2 restart

Installation des virtualhosts

mkdir /etc/skel/public_html
 mkdir /etc/skel/logs
 echo " <h1>Nouvel espace web crée</h1> " > /etc/skel/public_html/index.html

Une fois le squelette créé, on peut créer un nouvel utilisateur :

useradd -g www-data -m test1

On copie le contenu ci-dessous :

nano /etc/apache2/sites-available/test1.com
<VirtualHost *>
        ServerAdmin postmaster@test1.com
        ServerName www.test1.com
        ServerAlias test1.com *.test1.com
        DocumentRoot /home/test1/public_html/
        <Directory /home/test1/public_html/>
                Options -Indexes FollowSymLinks MultiViews
                AllowOverride All
        </Directory>
        ErrorLog /home/test1/logs/error.log
        LogLevel warn
        CustomLog /home/test1/logs/access.log combined
        ServerSignature Off
</VirtualHost>

On valide et on ferme le fichier. On rend le domaine créé disponible.

ln -s /etc/apache2/sites-available/test1.com /etc/apache2/sites-enabled/test1.com

On redémare apache2 :
   

/etc/init.d/apache2 restart

Et on peut accéder à  notre répertoire :

http://xxx.xxx.xxx.xxx/~test1

EDIT: tirer du tuto :  Installation complète d'un serveur web sous Debian

http://olange.developpez.com/articles/d … veur-dedie

Dernière modification par amateur (Le 09/01/2008, à 16:08)


2.8 GHz; NVidia 5200; 265 Mo DDR; 40 Go DD + un DD de 3.2 Go; le tt date de 2005 sauf le DD de 3.2 Go il date de 1998
UBUNTU 7.10

Hors ligne

#3 Le 09/01/2008, à 16:53

Sylvain31

Re : Virtual Host

Ok, mais c'est ce que j'ai fait, sauf que tout est dans le même fichier, que j'ai mis dans mon premier post. Pourtant cela ne fonctionne pas...

#4 Le 09/01/2008, à 17:18

amateur

Re : Virtual Host

pourtant chez moi ca marche :s
sur mon PC local j'ai 3 site qui tourne en meme temp en suivant tuto

as tu dans le /etc/apache2/sites-enabled/  autre fichier ke le default (normalement pour chaque site tu as un fichier)


2.8 GHz; NVidia 5200; 265 Mo DDR; 40 Go DD + un DD de 3.2 Go; le tt date de 2005 sauf le DD de 3.2 Go il date de 1998
UBUNTU 7.10

Hors ligne

#5 Le 09/01/2008, à 17:39

Sylvain31

Re : Virtual Host

Non, j'ai un seul fichier default, dans lequel il y a tous mes Virtual Hosts.
Je pense que le soucis pourrait venir du

NameVirtualHost *
<VirtualHost *>

dans mon fichier. Peut être que toutes les adresses de mon domaine "match" avec ce host, et du coup, ils sont tous pointé sur /var/www ?

#6 Le 09/01/2008, à 17:57

amateur

Re : Virtual Host

je croix bien qu'il faut avoir des liens pour chaque un des sites dans le /etc/apache2/sites-available/
car tt les tutos que j'ai lu ya tjrs des fichiers a cree pour les sites qu'on veut heberger

jete un coup d'oeil ici http://www.debian-administration.org/articles/412
ou un uatre tuto tres facile et tres clair http://olange.developpez.com/articles/debian/installation-serveur-dedie

EDIT : je suis tres novice en att. les postes des pros
EDIT 2:

voir aussi ici http://www.commentcamarche.net/forum/affich-2423425-apache2-debian-heberger-2-sites

C pratiquement le meme cas

Dernière modification par amateur (Le 09/01/2008, à 18:08)


2.8 GHz; NVidia 5200; 265 Mo DDR; 40 Go DD + un DD de 3.2 Go; le tt date de 2005 sauf le DD de 3.2 Go il date de 1998
UBUNTU 7.10

Hors ligne

#7 Le 09/01/2008, à 19:19

Thamior

Re : Virtual Host

Sylvain31 a écrit :
NameVirtualHost *
<VirtualHost *>
	ServerAdmin webmaster@localhost
	
	DocumentRoot /var/www/
	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>
	<Directory /var/www/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride None
		Order allow,deny
		allow from all
		# This directive allows us to have apache2's default start page
                # in /apache2-default/, but still have / go to the right place
                #RedirectMatch ^/$ /apache2-default/
	</Directory>

	ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
	<Directory "/usr/lib/cgi-bin">
		AllowOverride None
		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
		Order allow,deny
		Allow from all
	</Directory>

	ErrorLog /var/log/apache2/error.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access.log combined
	ServerSignature On

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

NameVirtualHost toto.mon-domaine.net
<VirtualHost toto.mon-domaine.net>
	ServerAdmin	toto@mon-domaine.net
	DocumentRoot	/home/toto/www
	ServerName	toto.mon-domaine.net
</VirtualHost>

Bonjour,

alors en fait, il te manque le parametre principal au sein de ton vhost --> ServerName
Donc, je poste ici une version allégée et remaniée de ton fichier de conf. L'idéal est de séparer les vhosts dans des fichiers distincts.

Détails :

* Fichier /etc/apache2/httpd.conf

NameVirtualHost *

Là aussi, par principe, je fais écouter les vhosts sur une ip et un port spécifique (ex : xxx.xxx.xxx.xxx:80)

* Fichier /etc/apache2/sites-available/default

<VirtualHost *>
        ServerAdmin     webmaster@mon-domaine.net
        ServerName      www.mon-domaine.net
        DocumentRoot    /var/www/
        Options         -Indexes -FollowSymlinks

        #Sécurité
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]

        CustomLog       /var/log/apache2/default_access.log     combined
</VirtualHost>

* Fichier /etc/apache2/sites-available/toto

<VirtualHost *>
        ServerAdmin     webmaster@mon-domaine.net
        ServerName      toto.mon-domaine.net
        DocumentRoot    /home/toto/www/
        Options         -Indexes -FollowSymlinks

        #Sécurité
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]

        CustomLog       /var/log/apache2/toto_access.log     combined
</VirtualHost>

Sous /etc/apache2/sites-available/, tu crés les liens symbolique dans sites-enable via la commande :

a2ensite default && a2ensite toto

Puis un restart d'apache

/etc/init.d/apache2 restart

C'est une base de départ à adapter a ton systeme.

N'hesite pas si besoin de renseignements complémentaires wink

Hors ligne

#8 Le 09/01/2008, à 22:44

Sylvain31

Re : Virtual Host

Merci beaucoup pour ces précisions, ca marche nickel maintenant !

Juste quelques petites précisions :
1/ Pourquoi le "NameVirtualHost toto.mon-domaine.net" dans mon premier exemple ne marchait pas ?
2/ A quoi sert les lignes après #Sécurité ?

Merci !

#9 Le 09/01/2008, à 22:55

Sylvain31

Re : Virtual Host

Aussi, une autre petite question :

3/ Comment faire pour, au lieu de rediriger un VirtualHost vers un répertoire (/home/toto/www par exemple), le rediriger vers un port (www.mon-domaine.net:8112) ?

#10 Le 10/01/2008, à 01:09

Thamior

Re : Virtual Host

Sylvain31 a écrit :

Merci beaucoup pour ces précisions, ca marche nickel maintenant !

Juste quelques petites précisions :
1/ Pourquoi le "NameVirtualHost toto.mon-domaine.net" dans mon premier exemple ne marchait pas ?

Parceque tu avais déjà fait une déclaration "NameVirtualHost *" au debut de ton fichier.

Sylvain31 a écrit :

2/ A quoi sert les lignes après #Sécurité ?

Pour bloqer le Cross site scripting --> faille de sécurité

Sylvain31 a écrit :

3/ Comment faire pour, au lieu de rediriger un VirtualHost vers un répertoire (/home/toto/www par exemple), le rediriger vers un port

Je ne saisi pas bien (Port au lieu de répertoire) ?
Pour revenir sur ta déclaration "NameVirtualHost", l'idéal est d'eviter l'adressage dynamique par le paramètre "*" mais plutot d'écrire :

Fichier /etc/apache2/httpd.conf

NameVirtualHost ton_ip:80
NameVirtualHost ton_ip:8112

Ensuite, on modifie aussi les fichiers des Vhosts :

Fichier /etc/apache2/sites-available/default

<VirtualHost ton_ip:80>
        ServerAdmin     webmaster@mon-domaine.net
        ServerName      www.mon-domaine.net
        DocumentRoot    /var/www/
        Options         -Indexes -FollowSymlinks

        #Sécurité
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]

        CustomLog       /var/log/apache2/default_access.log     combined
</VirtualHost>

Fichier /etc/apache2/sites-available/toto

<VirtualHost ton_ip:8112>
        ServerAdmin     webmaster@mon-domaine.net
        ServerName      www.mon-domaine.net
        DocumentRoot    /home/toto/www/
        Options         -Indexes -FollowSymlinks

        #Sécurité
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]

        CustomLog       /var/log/apache2/toto_access.log     combined
</VirtualHost>

Enfin, pour que le serveur web écoute sur ce nouveau port, il faut lui le préciser en ajoutant dans :

Fichier /etc/apache2/ports.conf

Listen 8112

Redemarrage du service web :

/etc/init.d/apache2 restart

Si çà n'est pas ce que tu voulais faire, dis le moi wink

Hors ligne

#11 Le 10/01/2008, à 12:04

Sylvain31

Re : Virtual Host

Avec la derniere conf que tu viens d'écrire, il faut se connecter sur http://www.mon-domaine.net:8112/ pour accéder au deuxième virtual host ?

C'est pas tout à  fait ce que je veux faire. En fait, j'utilise Deluge Torrent, qui a une interface web qui écoute sur le port 8112. Mon but est que, dès que je vais sur, par exemple, http://bt.mon-domaine.net, il fasse en réalité www.mon-domaine.net:8112.

Peut être est ce possible si dans le deuxieme vhost, je fais :

<VirtualHost ton_ip:8112>
        ServerAdmin     webmaster@mon-domaine.net
        [b]ServerName      bt.mon-domaine.net[/b]
        DocumentRoot    /home/toto/www/
        Options         -Indexes -FollowSymlinks

        #Sécurité
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]

        CustomLog       /var/log/apache2/toto_access.log     combined
</VirtualHost>

#12 Le 10/01/2008, à 20:35

Thamior

Re : Virtual Host

en fait, je pense que Deluge a son propre serveur web, on peux donc feinter de cette manière :

Tu dois d'abord t'assurer que http://www.mon-domaine.net:8112 arrive bien sur ton application Deluge.

Ensuite, on crée un nouveau vhost sous /etc/apache2/sites-available/deluge

<VirtualHost *>
ServerAdmin webmaster@mon-domaine.net
Servername  bt.mon-domaine.net

RedirectPermanent / http://www.mon-domaine.net:8112

</VirtualHost>

n'oublie pas un "a2ensite deluge" et un restart d'apache wink

Hors ligne

#13 Le 11/01/2008, à 11:03

Sylvain31

Re : Virtual Host

Impeccable, je ne savais pas que cette commande "RedirectPermanent" existait ! smile

Mais je vais continuer à  faire mon relou pour paufiner un peu ! tongue
Deja, avec cette méthode, l'adresse qui apparait dans la barre d'adresse devient http://www.mon-domaine.net:8112, n'est il pas possible de préserver bt.mon-domaine.net ?
Aussi, dans mon entreprise, le port 8112 est bloqué, est il possible "d'afficher" les pages deluge, mais en passant par le port 80, c'est à  dire en passant par Apache ? (je sais pas si je suis tres clair dans la deuxième question).


Merci beaucoup pour ton aide.

#14 Le 11/01/2008, à 16:48

Thamior

Re : Virtual Host

J'ai jeté un oeil au plugin WebUi de Deluge et on trouve dans la section [CONFIG_DEFAULT] du fichier "webserver_common.py" le parametre Port:8112.

Je n'ai pas ce logiciel mais il faudrait ce que çà  donne si on lui indique "80" en port d'écoute wink

Hors ligne

#15 Le 11/01/2008, à 17:27

Sylvain31

Re : Virtual Host

Ouais, mais le truc c'est que j'ai mon serveur apache qui ecoute sur 80 !
En fait, ce que je voudrais faire, c'est une page qui "passe" par le port 80, mais qui affiche en gros ce qu'il y a sur www.mon-domaine.net:8112, ou localhost:8112 si tu es en local sur le serveur.

#16 Le 11/01/2008, à 18:08

Thamior

Re : Virtual Host

La pile logiciel avec laquelle je fais ce genre de manip est un Apache-Tomcat couplé avec le module mod_jk.

Pour ton application, çà  me parait difficile...
En l'état, tu garde juste l'avantage de ne pas taper le port 8112 dans ton url grà¢ce au redirectPermanent, mais c'est tout.
Il y aurai peut etre une bidouille en faisant du rewriting mais çà  n'est pas dit que çà  marche, et je ne suis pas sur que çà  en vaille le coup.

Hors ligne

#17 Le 25/01/2008, à 21:18

Fabione01

Re : Virtual Host

Bonjour les experts !!
Je suis nouveau dans le monde linux !
Petite histoire : je viens de me monter une machien sur Ubuntu 7.10 Gutsy Gibbon
j"ai de peine et de misére apache , php , mysql phpmyadmin etc etc.
je viens de créer deux sites web
En local tout marche nikel.

j'ai installè no-ip duc et il roule  bien J'arrive le voire sur le net sans problem
mais le secon site si je tape http://club.no-ip.info tombe en local sur l'adresse ip de ma machine
soir http://192.168.1.4/club/       et il marche  bien seulement n'est pas visible sur internet.

Bon la question serieuse :

il faut que je crée des vitual host je pense  roll je suis assez  cruche hmm

Est ce quelque bonne ame pourrait me mettre le code avec des noms

mes sites s'appellent  le prémier cab   et le deuxiéme clubcleo

enfin que je puisse comprendre ?
autre question les  repertoires des deux sites doivent  être dans  var /www  c'est bien ça ??

je vous remenrcie beaucoup d' avance



Fabio

#18 Le 17/02/2008, à 23:26

kosnik

Re : Virtual Host

salut, bon j'arrive âpres la bataille mais ça peut être utile

Sylvain31
En fait, ce que je voudrais faire, c'est une page qui "passe" par le port 80, mais qui affiche en gros ce qu'il y a sur www.mon-domaine.net:8112, ou localhost:8112 si tu es en local sur le serveur.

tu peut essaye ça, ou quelque chose se s'approchant avec "ServerAlias" :

<VirtualHost ton_ip:8112>
        ServerAdmin     webmaster@mon-domaine.net
        ServerName    www.mon-domaine.net
        ServerAlias     bt.mon-domaine.net

        DocumentRoot    /home/toto/www/
        Options         -Indexes -FollowSymlinks

        #Sécurité
        RewriteEngine On
        RewriteCond %{REQUEST_METHOD} ^TRACE
        RewriteRule .* - [F]

        CustomLog       /var/log/apache2/toto_access.log     combined
</VirtualHost>

Fabione01, c'est expliquer un peu plus haut, ou sino tu  la doc ici pour crée des virtual host

Dernière modification par kosnik (Le 17/02/2008, à 23:27)


Pourquoi faire simple quand on peut faire compliquer

Hors ligne

#19 Le 16/04/2008, à 13:40

bens

Re : Virtual Host

Bonjour,
je suis nouveau dans ce forum et j'ai besoin de votre aide
j'ai installé suse linux sur windows en utilizant Vmware Workstation 5.5, je peux fair ping entre la machine virtuel et la machine host(anfition).
J'ai instalé un serveur local (localhost) sur la machine virtuel mais ce que je veux c'est d'y acceder a partir de la machine host(windows).
J'espere que je me suis bien expliqué.
Comment on fait pour ça?
Merci et desolé pour tout derangement.