Aller au contenu

Sujets conseillés

Posté

Bonjour,

Sur mon serveur débian etch avec apache2 j'héberge mon site. Toutes mes pages sont dans le répertoire www et je souhaite héberger un autre site. J'ai créé sous le répertoire site-available un fichier portant le nom du nouveau site, sous www j'ai aussi créé un www.nom_de_domaine2.fr pour héberger le nouveau site. Mais pour mon site actuel qui se trouve sous www, je vais les changer de répertoire et les mettre sous www.nom_de_domaine1.com.

Alors plusieurs questions se posent:

1: le fichier default doit il être renomé du nom de mon site actuel?

2: Et dans ce fichier comment lui déclarer la nouvelle directory?

3: et les liens qui sont dans mon site vont-ils changer ? C'est à dire actuellement j'ai des liens qui sont du type https://www.mon-site.com/accueil.php deviendront ils https://www/www.mon-site.com/accueil.php ?

4: Enfin quels sont les fichiers que je doit modifier afin que mon site continue à fonctionner (ftp, ssl, log...)

Je sais qu'il peut y avoir des questions simple mais avant de modifier quoi que ce soit je préfère demander. Avec mes remerciements pour vos réponses.

Cordialement

Posté
J'ai créé sous le répertoire site-available

Ce répertoire existe déjà dans le /etc/apache2/site-availables

Dedans tu crée les configurations des domaines virtuels (voir le fichier default qui montre une configuration par defaut (A NE PAS VIRER!!!)).

L'idéal tu fais un cp default monsite.com et puis un vi monsite.com :)

Après avoir créé la configuration du site, tu vas dans /etc/apache2/site-enabled ou la avec ln -s tu crée un lien symbolique qui va en fait activer la configuration du site.

Quand tu as fais ca, tu n'oublies pas de faire un /etc/init.d/apache reload pour recharger la configuration d'apache.

Si ta configuration est erronée, il te le dira et n'occasionnera pas de panne sur les autres site.

Seul le site concerné (cad celui que tu configure n'ira pas ;) )

N'hésite pas a demander de l'aide si jamais tu as un souci malgrés mes explications.

EDIT: pour la suite dans un site web, il vaut mieux toujours travailler avec des liens relatifs ;)

Le fichier de configuration default en fait te permet aussi de définir la root de ton site, cad l'endroit le plus haut ou on peut remonter dans l'arborescence du site.

Les serveurs en général utilisent un /home/user/public_html ou public_htm est le dossier de base du site.

J'oubliais aussi, sous la Debian 4.0 (pcq ca fait longtemps que je l'ai configuré), il ne faut pas oublier d'activer le module qui permet a un utilisateur d'avoir son site dans son repertoire /home.

Sous la Debian 3.1, ce module était il me semble activé par défaut :)

Moi je travail de la sorte, cad un compte utilisateur par site et chaque utilisateur gère son propre site.

Le module a activer est le suivant (userdir.conf et userdir.load):

33363 lrwxrwxrwx 1 root root 30 2007-05-12 01:36 userdir.conf -> ../mods-available/userdir.conf

33338 lrwxrwxrwx 1 root root 30 2007-05-12 01:35 userdir.load -> ../mods-available/userdir.load

La aussi même principe, un lien symbolique pour activer le module que tu trouveras respectivement dans /etc/apache2/mods-enabled pour les modules activés (cad ou tu dois créer le lien symbolique).

et pour l'emplacement du module dans /etc/apache2/mods-available

N'oublie pas d'éditer la configuration du userdir.conf situé dans /etc/apache2/mods-available (notamment pour le nom du répertoire qui contient le site).

Pour le détail du fichier de configuration, je dois regarder car j'ai touché au mien il y a plus d'un an...

Enfin j'espère que ces explications te guideront un peu plus mais je pense que oui.

EDIT2:

Sans être certain que tout soit bon mais en tout cas je le pense, voila un exemple de ma configuration:

<VirtualHost *>

ServerAdmin user_AT_domain.com

DocumentRoot /home/site/website

ServerName www.geckonline.be

CustomLog /home/site/log-siteweb/geckonline.be_access.log combined

<Directory "/home/site/website">

allow from all

Options -Indexes

order allow,deny

</Directory>

</VirtualHost>

EDIT3: Pour le SSL, je sais qu'il y a aussi un module a activer mais je n'ai jamais été plus loin donc la dessus, je ne sais pas t'aider.

Peut être que je saurai dans une semaine mais bon...

Enfin, je pense que Dan saura me rectifier si j'ai dit une bêtise :D

Posté

Bonjour et merci pour votre réponse,

Mais je dois quelques explications supplémentaires:

SOUS site-availables j'ai déjà créé les configurations des domaines virtuels

et voici ce qu'il contient pour le site que je veux rajouter:

CODE
NameVirtualHost *:80

<VirtualHost *:80>

ServerAdmin contact_AT_mon-site-2.fr

ServerName www.mon-site-2.fr

DocumentRoot /var/www/www.mon-site-2.fr/

ServerAlias mon-site-2.fr

Redirect / http://www.mon-site-2.fr/

</VirtualHost>

<Directory />

Options FollowSymLinks

AllowOverride None

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

Alias /icons/ "/usr/share/apache2/icons/"

<Directory "/usr/share/apache2/icons">

Options Indexes MultiViews

AllowOverride None

Order allow,deny

Allow from all

</Directory>

<Directory /var/www/www.mon-site-2.fr>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

</Directory>

ErrorLog /var/log/apache2/www.mon-site-2.fr_error.log

# Possible values include: debug, info, notice, warn, error, crit,

# alert, emerg.

LogLevel warn

CustomLog /var/log/apache2/www.mon-site-2.fr_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>

où www.mon-site-2.fr est le répertoire qui est sous www et qui contient les pages du nouveau site.

Pour le site primaire celui qui fonctionne en ce moment je l'ouvre avec une url de ce genre https://www.mon-site-1.com j'ai bien mis httpS car ce site est accéssible en mode sécurisé sur le port 443 ce que je n'ai pas besoin pour le site 2 qui lui sera sous le port 80.

et les pages du site actuel sont directement sous www

J'ai donc créé un sous répertoire intitulé www.mon-site-2.com.

J'ai aussi créé SOUS site-availables un fichier de configuration nommé comme le nom de mon site actuel alors qu'avant c'était default.

Alors ma question principale est:

Est-ce que je peux déplacer les pages de mon site actuel sous ce sous répertoire sans risque et dans quelle ligne du fichier de configuration dois je lui indiquer le chemin.

Est le DocumentRoot /var/www/ qu'il faut que je mette DocumentRoot /var/www/www.mon-site.com

Voici ce fichier

CODE
NameVirtualHost *:80

NameVirtualHost *:443

<VirtualHost *:80>

ServerName www.mon-site-1.com

ServerAlias mon-site-1.com

Redirect / https://www.mon-site-1.com/

</VirtualHost>

<VirtualHost *:443>

ServerName www.mon-site-1.com

ServerAlias mon-site-1.com

ServerAdmin contact_AT_mon-site-1.com

SSLEngine on

SSLCertificateFile /etc/apache2/ssl/mycert.pem

SSLCertificateKeyFile /etc/apache2/ssl/mykey.pem

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

# SetHandler cgi-script

#</Directory>

Alias /awstatsclasses "/usr/share/awstats/classes/"

Alias /awstatscss "/usr/share/awstats/css/"

# mêmes paramètres que dans awstats.*.conf

Alias /stat "/usr/lib/cgi-bin/"

Alias /icon "/usr/share/awstats/icon/"

Redirect /stat https://www.mon-site-1.com/stat/awstats.pl?...=mon-site-1.com

#<Directory /usr/lib/cgi-bin/>

# DirectoryIndex awstats.pl

# UseCanonicalName off

# AuthName "Statistiques de l'mon-site-1.com"

# AuthType Basic

# Require valid-user

# AuthUserFile /usr/lib/cgi-bin/.htaccess

# Options +ExecCGI

# AllowOverride None

# Order allow,deny

# Allow from all

#</Directory>

#<Directory /usr/lib/cgi-bin/>

# DirectoryIndex awstats.pl

# Options +ExecCGI

# AllowOverride None

# Order allow,deny

# Allow from all

#</Directory>

<LocationMatch "/relay/upload.pl">

Options +ExecCGI

SetHandler cgi-script

</LocationMatch>

#<Directory "/the/path/to/relay">

# Options +ExecCGI -Includes

# AddHandler cgi-script cgi pl

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

D'avance merci pour votre réponse

Posté

Bon sans certitude mais personnellement je pense que le DocumentRoot doit être /var/www/mon-site pour le domaine en question.

Le défaut, ca il faut le garder car je pense que quand on demande un site qui n'existe pas sur le port 80, il redirige sur celui la par défaut en fait.

Pour le déplacement du site, je ne sais pas te dire mais normalement, ca ne devrait pas poser de souci mais sans être certain je précise.

Sinon un conseil de sécurité, le ServerSignature, met le a off ;)

Ca évitera à un pirate d'avoir des informations sur le serveur qui héberge ton site, genre version de apache ou autre...

ps: Tu n'as pas un bête PC de test pour faire des essais chez toi? Moi je tourne ainsi avant de travailler directement en production.

Posté

Le ServerSignature est déjà à Off.

He non je n'ai pas de PC de tests et cela fait déjà un moment que je me dit qu'il faudrait que je monte un serveur de test mais bon je ne l'ai pas fait.

Pour revenir à mon problème je vais déjà lancer la commande pour mon 2ème site et on verra bien ce qu'i se passe.

Et c'est avec la commande ln -s ou avec a2ensite mon-site.fr ?

Posté

ln -s permet de créer un lien symbolique, donc c'est un fichier qui quand tu entres dedans, tu es dans le fichier qui est pointé par le lien.

Apache en se lançant trouve le fichier dans site-enable et du coup sait qu'il doit charger la configuration du fichier pointé qui est dans site-available.

Donc pour activer un site, tu te mets dans le /etc/apache2/site-enable et tu fais ceci ln -s /etc/apache2/sites-available/monfichierdesite ./

Après avec un ls -ila tu dois voir une ligne comme celle ci:

1944 lrwxrwxrwx 1 root root 33 2008-03-31 19:47 monfichierdesite -> /etc/apache2/sites-available/monfichierdesite

D'ailleurs tu vois le lrwxrwxrwx, le l en début de ligne veut dire qu'il s'agit d'un lien symbolique ;)

Je n'ai pas compris l'autre commande que tu me stipulais... (a2ensite)

Posté

Bon j'ai fait comme indiqué pour le 2ème site et cela à bien fait le lien vers un nouveau fichier dans sites-enabled avec comme nom celui de mon site.

Mais je ne peux pas accéder au site.

Posté

Je n'ai fait que survoler, mais les commandes a2ensite/a2dissite ainsi que a2enmod/a2dismod servent justement à créer "simplement" les liens symboliques entre les dossiers "available" et "enabled". Mais le résultat est le même qu'un "ln -s".

Posté

Suite à mon précédent message:

D'une part j'avais oublié de relancer apache2 avec la commande /etc/init.d/apache2 reload

et d'autre part quand apache2 a été relancé j'ai ce message qui s'affiche

Reloading web server config...3550
[Mon Mar 31 21:00:59 2008] [warn] The Alias directive in /etc/apache2/sites-enabled/jubilemus at line 25 will probably never match because it overlaps an earlier Alias.
[Mon Mar 31 21:00:59 2008] [warn] NameVirtualHost *:80 has no VirtualHosts
.

et à la ligne 25 j'ai ça:

Alias /icons/ "/usr/share/apache2/icons/"

Qu'est-ce que cela veut dire?

Posté

Ca veut dire que tu "écrases" certaines configuration en les mettant en double ; simplement parce que tu as mélangé les choses communes à tous les sites et les choses spécifiques à certains.

Idem pour le warning sur la directive namevirtualhost. Tu déclares deux fois le même ensemble de virtualhost.

Posté
Je n'ai fait que survoler, mais les commandes a2ensite/a2dissite ainsi que a2enmod/a2dismod servent justement à créer "simplement" les liens symboliques entre les dossiers "available" et "enabled". Mais le résultat est le même qu'un "ln -s".

Ha ben j'aurais appris quelque chose :)

Pour ton erreur, c'est pcq tu as déjà un domaine virtuel qui utilise le /var/www et qui peut aller alors dans un répertoire contenu la dedans.

Comme tu définis un 2eme domaine utilisant un répertoire déjà "référencé" par le domaine virtuel default, c'est pous cela qu'il foire.

Essaie de faire dans /etc/apache2/site-available un mv defaut defaut-test

Si ca ne marche toujours pas, alors refait l'opération inverse pour redonner le nom defaut au fichier renommé en defaut-test ;)

Posté

Dans le fichier de configuration default j'ai commenté le NameVirtualhost *:80 car le site actuel écoute le port 443

et j'ai commenté la ligne 25 contenant #Alias /icons/ "/usr/share/apache2/icons/"

et lorsque j'ai relancé apache il n'y a plus d'erreur.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...