Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:reseau:apache2:tp01 [21/09/2014 06:09] Hypathie [Installer le module php] |
doc:reseau:apache2:tp01 [22/09/2014 12:14] Hypathie [Configurations d'un site web] |
||
---|---|---|---|
Ligne 118: | Ligne 118: | ||
<code root>ls -l /etc/apache2/sites-enabled/000-default</code> | <code root>ls -l /etc/apache2/sites-enabled/000-default</code> | ||
- | <code>lrwxrwxrwx 1 root root 26 sept. 19 06:06 /etc/apache2/sites-enabled/000-default -> ../sites-available/default</code> | + | <code>lrwxrwxrwx 1 root root 26 sept. 19 06:06\ |
+ | /etc/apache2/sites-enabled/000-default -> ../sites-available/default</code> | ||
<note> | <note> | ||
Ligne 259: | Ligne 260: | ||
</code> | </code> | ||
- | ====Sécuriser son site ==== | + | =====Sécuriser son site ===== |
Ce n'est là qu'un minimum et non une sécurisation optimale. | Ce n'est là qu'un minimum et non une sécurisation optimale. | ||
FIXME | FIXME | ||
Ligne 331: | Ligne 332: | ||
Et comme indiqué : ''service apache2 reload''. | Et comme indiqué : ''service apache2 reload''. | ||
- | ====Développer son site web dans un /home/==== | + | =====Développer son site web dans un /home/ et restreindre l'accès par mot de passe===== |
- | Il n'est pas recommandé de travailler directement dans des répertoires du serveur. Un lien symbolique depuis le répertoire principal du serveur vers un répertoire du dossier personnel est préférable. | + | ====Création d'un utilisateur apache2==== |
+ | Pas forcément du même nom que celui de l'utilisateur du système Linux | ||
+ | * Par exemple du nom de "web" | ||
+ | <code root>adduser --system web --ingroup www-data</code> | ||
- | ===On désactive "monsite" === | + | * On lui crée un mot de passe système : |
- | <code root>a2dissite monsite.com</code> | + | <code root> passwd web</code> |
- | Et on recharge : ''service apache2 reload''.\\ | + | * On crée les fichiers du site web, "monsite.com" dans /home/web/: |
+ | <code>mkdir -p monsite.com/public_html</code> | ||
+ | |||
+ | * On corrige l'appartenance et les droits : | ||
+ | |||
+ | <code root>chown -R root:www-data /home/web/ && chmod -R 755 /home/web/</code> | ||
+ | |||
+ | * On édite un index.html : | ||
+ | <code root>vim /home/web/monsite.com/public_html/index.html</code> | ||
+ | |||
+ | ===Création du compte et du mot de passe=== | ||
+ | Le dossier /etc/local est un bon endroit pour créer les fichiers de mots de passe. | ||
+ | <code root>cd /usr/local/ && ls</code> | ||
+ | <code>bin etc games include lib man sbin share src</code> | ||
+ | |||
+ | * Il faut créer un dossier apache du nom de son choix : | ||
+ | Par exemple "passwd" | ||
+ | <code root>mkdir -p apache/passwd && cd apache/passwd</code> | ||
+ | |||
+ | * Il faut générer des mots de passe pour l'utilisateur apache2: | ||
+ | La commande ''htpasswd'' va créer un fichier qui contiendra utilisateur apache /mot de passe. | ||
+ | <code root>htpasswd -c passwords web</code> | ||
+ | <code>New password: | ||
+ | Re-type new password: | ||
+ | Adding password for user web</code> | ||
+ | |||
+ | -> ''-c'' pour la première fois qu'on crée un mot de passe. Si on l'utilisait une deuxième fois pour le même fichier "passwords", pour un deuxième utilisateur, on écrasera le contenu du fichier, et on perdrait le mot de passe du premier utilisateur. Donc pour un éventuel deuxième utilisateur "toto": ''htpasswd passwords toto''.\\ | ||
+ | -> le mot de passe est chiffré. | ||
+ | |||
+ | * On peut aussi créer un groupe par exemple aussi dans le même dossier /usr/local/apache/passwd/ | ||
+ | Par exemple du nom de "groups" : | ||
+ | <code root>vim groups</code> | ||
+ | <code>goupe1 web toto</code> | ||
+ | |||
+ | ====Création d'un virtualhost avec restriction d'accès ==== | ||
+ | Pour restreindre l'accès à l'utilisateur apache afin qu'un login et mot de passe soit requis pour accéder au site du Virtualhost qui sera crée, il faut modifier d'abord le virtualhost "/etc/apache2/sites-available/default" | ||
+ | ===Configurer le site "default" === | ||
+ | Cela est nécessaire pour restreindre l'accès du site qui sera crée dans le répertoire de l'utilisateur du système ($USER). | ||
+ | |||
+ | * On désactive "default" : ''a2dissite default'' | ||
+ | |||
+ | * On modifie "/etc/apache2/sites-available/default" comme ceci : | ||
+ | |||
+ | <code root>vim /etc/apache2/sites-available/default</code> | ||
+ | <code> | ||
+ | <VirtualHost *:80> | ||
+ | ServerAdmin webmaster@localhost | ||
+ | |||
+ | DocumentRoot /var/www | ||
+ | <Directory /> | ||
+ | Options FollowSymLinks | ||
+ | AllowOverride AuthConfig | ||
+ | </Directory> | ||
+ | <Directory /var/www/> | ||
+ | Options Indexes FollowSymLinks MultiViews | ||
+ | AllowOverride AuthConfig | ||
+ | Order allow,deny | ||
+ | allow from all | ||
+ | AuthType Basic | ||
+ | AuthName "Ma zone est restreinte !" | ||
+ | AuthBasicProvider file | ||
+ | AuthUserFile /usr/local/apache/passwd/passwords | ||
+ | AuthGroupFile /usr/local/apache/passwd/groups | ||
+ | Require valid-user | ||
+ | </Directory> | ||
+ | </code> | ||
+ | |||
+ | <note> | ||
+ | **Bien remarquer que pour pouvoir ajouter cette directive**\\ | ||
+ | -> on a mis ''AllowOverride AuthConfig'' à la place de ''AllowOverride none''. | ||
+ | |||
+ | |||
+ | **Pour autoriser l'accès à tous les utilisateurs** qui ont un mot de passe apache :\\ | ||
+ | -> ''Require valid-user''\\ | ||
+ | |||
+ | **On aurrait pu mettre** :\\ | ||
+ | -> ''Require user web''\\ | ||
+ | -> ''Require group groupe1''\\ | ||
+ | |||
+ | **On remarque que l'option ''Options -FollowSymLinks''** : qui évite de suivre les liens symbolique depuis la racine /var/www | ||
+ | </note> | ||
- | ===Création d'un nouvel Virtualhost === | + | ===Création d'un compte système pour le Virtualhost à créer=== |
* Par exemple du nom de "web" | * Par exemple du nom de "web" | ||
<code root>adduser --system web --ingroup www-data</code> | <code root>adduser --system web --ingroup www-data</code> | ||
- | * On lui crée un mot de passe : | + | * On lui crée un mot de passe système : |
<code root> passwd web</code> | <code root> passwd web</code> | ||
+ | ===Création du répertoire et des fichiers pour le site web "monsite.com" === | ||
+ | * On crée des dossiers principaux : | ||
- | * On crée les fichiers du site web, par exemple du nom de "pegaseous.com": | + | <code root>cd /home/web/ && mkdir -p monsite.com/public_html</code> |
- | <code>mkdir -p pegaseous.com/public_html</code> | + | |
* On corrige l'appartenance et les droits : | * On corrige l'appartenance et les droits : | ||
Ligne 354: | Ligne 439: | ||
* On édite un index.html : | * On édite un index.html : | ||
- | <code root>vim /home/web/pegaseous.com/public_html/index.html</code> | + | <code root>vim /home/web/monsite.com/public_html/index.html</code> |
+ | <code><html> | ||
+ | <body> | ||
+ | <h1>Bienvenue sur monsite.com</h1> | ||
+ | <p>Site en cours de réalisation !</p> | ||
+ | </body> | ||
+ | </html></code> | ||
- | * On crée un lien symbolique vers /var/www : | + | * On supprime "monsite.com" de /var/www/ : |
- | <code root>ln -s /home/web/pegaseous.com/ /var/www/pegaseous.com</code> | + | <code root>cd /var/www/</code> |
+ | <code root>rm -r monsite.com</code> | ||
- | * On édite un fichier /etc/apache2/sites-available/pegaseous.com : | + | * On crée un lien symbolique "monsite.com" dans /var/www/ : |
- | Pour aller plus vite on peut se servir d'un fichier "sites-available" existant qu'on modifiera. Par exemple celui du site "monsite.com". | + | <code root>ln -s /home/web/monsite.com/ /var/www/monsite.com</code> |
- | Si on a suivi le wiki du début : | + | ===Création d'un virtualhost pour le nouveau site "monsite.com=== |
- | <code>cp /etc/apache2/sites-available/monsite.com /etc/apache2/sites-available/pegaseous.com</code> | + | |
- | Si on n'a pas de fichier "sites-available/monsite.com" : ''vim /etc/apache2/sites-available/pegaseous.com'' et on y colle ce qui suit. | + | <code root>vim /etc/apache2/sites-available/monsite.com</code> |
- | <code text><VirtualHost *:80> | + | <code> |
+ | <VirtualHost *:80> | ||
ServerAdmin webmaster@localhost | ServerAdmin webmaster@localhost | ||
- | ServerName pegaseous.com | + | ServerName monsite.com |
- | ServerAlias www.pegaseous.com | + | ServerAlias www.monsite.com |
- | + | ||
- | DocumentRoot /var/www/pegaseous.com | + | DocumentRoot /var/www/monsite.com |
+ | |||
<Directory /> | <Directory /> | ||
- | Options FollowSymLinks | + | Options -FollowSymLinks |
- | AllowOverride None | + | AllowOverride AuthConfig |
</Directory> | </Directory> | ||
<Directory /var/www/> | <Directory /var/www/> | ||
Options -Indexes | Options -Indexes | ||
- | Options +FollowSymLinks | + | Options -FollowSymLinks |
- | Options -Includes | + | Options -Includes |
Options -ExecCGI | Options -ExecCGI | ||
Options MultiViews | Options MultiViews | ||
Ligne 396: | Ligne 488: | ||
Allow from all | Allow from all | ||
</Directory> | </Directory> | ||
+ | |||
ErrorLog ${APACHE_LOG_DIR}/error.log | ErrorLog ${APACHE_LOG_DIR}/error.log | ||
+ | |||
# Possible values include: debug, info, notice, warn, error, crit, | # Possible values include: debug, info, notice, warn, error, crit, | ||
# alert, emerg. | # alert, emerg. | ||
Ligne 406: | Ligne 498: | ||
</code> | </code> | ||
- | * On active le site pegaseous.com : | + | * On active le site "monsite.com" |
- | <code root>a2ensite pegaseous.com</code> | + | |
- | Et on recharge : ''service apache2 reload''. | + | <code root>a2ensite monsite.com</code> |
- | * Enfin on teste tout ça | + | <code root>service apache2 reload</code> |
- | Au niveau du navigateur : ''http://ip-du-serveur/pegaseous.com'' | + | |
- | <code>Index of /pegaseous.com | + | * On vérifie : |
- | [ICO] Name Last modified Size Description | + | Depuis son navigateur : ''http://ip-serveur/monsite.com/''\\ |
- | [DIR] Parent Directory - | + | |
- | [DIR] public_html/ 20-Sep-2014 09:15 - | + | |
- | </code> | + | |
- | Si on clique sur : ''public_html'' | + | 8-) **Le login du compte apache (nom de l'utilisateur du système Linux) est demandé ainsi que son mot de passe.** |
- | <code>Bienvenue sur pegaseous.com | + | <note tip> |
+ | **__À ne pas confondre avec le module userdir__**. | ||
+ | Il permet de créer une page web servie par apache dans le répertoire utilisateur.\\ | ||
+ | Par exemple comme ceci : | ||
- | Site en cours de réalisation !</code> | + | <code root>a2enmod userdir </code> |
+ | Cela vient de créer un lien symbolique pour chacun de ces fichier dans "/etc/apache2/mods-enabled" | ||
- | > On peut réactiver "monsite" si on le souhaite. | + | * On recharge apache : ''service apache2 restart'' |
- | > Dans ce cas on peut accéder à "monsite" en tapant ''http://ip-du-serveur/monsite.com''; | + | |
- | > ou à "pegaseous.com" en tapant ''http://ip-du-serveur/pegaseous.com''. | + | **__Pour tester le module__** : |
+ | |||
+ | D'abord il faut se loger en user ''exit'' | ||
+ | * On crée un index.html dans le répertoire de l'utilisateur principal du système : | ||
+ | <code user>cd /home/$USER</code> | ||
+ | <code user>mkdir ~/public_html && echo\ | ||
+ | "<html><body>Notre test du module UserDir</body></html>"\ | ||
+ | > ~/public_html/index.html</code> | ||
+ | * On recharge apache : ''service apache2 restart'' | ||
+ | * On vérifie que la page est accessible : | ||
+ | Dans le navigateur : ''http://ip-serveur/~utilisateur'' | ||
+ | <code>Notre test du module UserDir</code> | ||
+ | </note> | ||
Il reste à ajouter un module par exemple pour le php. | Il reste à ajouter un module par exemple pour le php. | ||
Ligne 488: | Ligne 591: | ||
Puisque tout fonctionne, pour utiliser php dans les autres sites, il n'y a qu'à modifier le nom de leur page d'index.html en index.php et entrer du code php bien sûr. | Puisque tout fonctionne, pour utiliser php dans les autres sites, il n'y a qu'à modifier le nom de leur page d'index.html en index.php et entrer du code php bien sûr. | ||
- | * Par exemple pour "pegaseous" : | + | * Par exemple pour "monsite.com" : |
- | <code root>mv /home/web/pegaseous.com/public_html/index.html /home/web/pegaseous.com/public_html/index.php</code> | + | <code root>mv /home/web/monsite.com/public_html/index.html /home/web/monsite.com/public_html/index.php</code> |
- | <code root>vim /home/web/pegaseous.com/public_html/index.php</code> | + | <code root>vim /home/web/monsite.com/public_html/index.php</code> |
<code><html> | <code><html> | ||
<body> | <body> | ||
- | <h1>Bienvenue sur pegaseous.com</h1> | + | <h1>Bienvenue sur monsite.com</h1> |
<p>Site en cours de réalisation !</p> | <p>Site en cours de réalisation !</p> | ||
<?php | <?php | ||
Ligne 508: | Ligne 611: | ||
* Tester en tapant dans le navigateur : | * Tester en tapant dans le navigateur : | ||
- | ''http://ip-du-serveur/pegaseous.com'' | + | ''http://ip-du-serveur/monsite.com'' |
et cliquer sur ''public_html/'' : | et cliquer sur ''public_html/'' : | ||
- | <code>Bienvenue sur pegaseous.com | + | <code>Bienvenue sur monsite.com |
Site en cours de réalisation ! | Site en cours de réalisation ! |