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 [22/09/2014 15:42] Hypathie [Sécuriser son site web] |
doc:reseau:apache2:tp01 [22/09/2014 17:49] Hypathie [Installer le module php] |
||
---|---|---|---|
Ligne 12: | Ligne 12: | ||
**Nota : Ce wiki est écrit par une débutante ** | **Nota : Ce wiki est écrit par une débutante ** | ||
- | Contributeurs, merci de compléter [[atelier:chantier:apache2#securiser-son-site|la partie sur la sécurité]] ! FIXME | + | Contributeurs, merci de compléter [[atelier:chantier:apache2#securiser-son-site-web|la partie sur la sécurité]] ! FIXME |
===== Introduction ===== | ===== Introduction ===== | ||
Ce qui est mis en œuvre ici concerne une utilisation d'un serveur apache sur un réseau local qui ne pointe pas un nom de domaine acquis mais fictif.\\ | Ce qui est mis en œuvre ici concerne une utilisation d'un serveur apache sur un réseau local qui ne pointe pas un nom de domaine acquis mais fictif.\\ | ||
Ligne 259: | Ligne 259: | ||
La mise en place d'un Virtualhost est réussie ! | La mise en place d'un Virtualhost est réussie ! | ||
</code> | </code> | ||
+ | |||
+ | ===== Installer le module php===== | ||
+ | ===Installer libapache2-mod-php5 === | ||
+ | Ce paquet casse le MPM worker(([[http://httpd.apache.org/docs/2.2/mod/worker.html]])) et engendre l'installation du MPM prefork(([[http://httpd.apache.org/docs/2.2/mod/prefork.html]])).\\ | ||
+ | |||
+ | <code root>apt-get install libapache2-mod-php5</code> | ||
+ | |||
+ | |||
+ | Une fois l'installation effectuée on peut vérifier que php5 est apparu dans /etc/apache2/mod-available. | ||
+ | |||
+ | <code root>ls -l /etc/apache2/mods-available/php5*</code> | ||
+ | <code>-rw-r--r-- 1 root root 898 août 21 10:49 /etc/apache2/mods-available/php5.conf | ||
+ | -rw-r--r-- 1 root root 59 août 21 10:49 /etc/apache2/mods-available/php5.load</code> | ||
+ | |||
+ | Dans /etc/apache2/mod-enabled, ce sont des liens symboliques qui activent ce module: | ||
+ | <code root>ls -l /etc/apache2/mods-enabled/php5*</code> | ||
+ | <code>lrwxrwxrwx 1 root root 27 sept. 20 11:40\ | ||
+ | /etc/apache2/mods-enabled/php5.conf -> ../mods-available/php5.conf | ||
+ | lrwxrwxrwx 1 root root 27 sept. 20 11:40\ | ||
+ | /etc/apache2/mods-enabled/php5.load -> ../mods-available/php5.load</code> | ||
+ | |||
+ | -> Puisque les liens sont là, le module est activé. | ||
+ | |||
+ | |||
+ | |||
+ | ===Activer/désactiver un module === | ||
+ | |||
+ | * ''a2enmod'' : (apache2 enable module) : active un module apache2 | ||
+ | * ''a2dismod'' : (apache2 disable module) : désactive un module apache2 | ||
+ | |||
+ | Le module est activé par défaut, mais si ce n'était pas le cas : | ||
+ | |||
+ | <code root>a2enmod php5</code> | ||
+ | Si on active ou désactive un module ne pas oublier après l'opération de réactiver apache : ''service apache2 restart'' | ||
+ | |||
+ | ===Créer la page de test === | ||
+ | |||
+ | |||
+ | <code root>mv /var/www/index.html /var/www/index.php</code> | ||
+ | <code root>vim /var/www/index.php</code> | ||
+ | <code> | ||
+ | <html> | ||
+ | <body> | ||
+ | <h1>It works!</h1> | ||
+ | <p>This is the default web page for this server.</p> | ||
+ | <?php | ||
+ | echo "La date du jour est " . date("d/m/Y") . "!\n"; | ||
+ | ?> | ||
+ | </body> | ||
+ | </html> | ||
+ | </code> | ||
+ | |||
+ | * Recharger apache : | ||
+ | |||
+ | <code root>service apache2 restart</code> | ||
+ | |||
+ | * Tester en tapant dans le navigateur : | ||
+ | ''http://ip-du-serveur/'' | ||
+ | |||
+ | <code>It works! | ||
+ | |||
+ | This is the default web page for this server. | ||
+ | La date du jour est 20/09/2014! </code> | ||
+ | |||
+ | Tous les outils sont en place pour apprendre les langages html et php ! 8-) | ||
+ | |||
=====Sécuriser son site web===== | =====Sécuriser son site web===== | ||
Ligne 290: | Ligne 356: | ||
<code root>a2dissite default</code> | <code root>a2dissite default</code> | ||
- | * Ensuite on va modifier les directives du site "/etc/apache2/sites-available/monsite.com" : | + | * Désactiver le site "monsite.com" : |
- | Pour ce faire, on le désactive d'abord : | ||
<code root>a2dissite monsite.com</code> | <code root>a2dissite monsite.com</code> | ||
- | Et on recharge : ''service apache2 reload''.\\ | + | * Ensuite on va modifier les directives du site "/etc/apache2/sites-available/monsite.com" : |
+ | |||
+ | On édite "/etc/apache2/sites-available/monsite.com" : | ||
- | Puis on édite "/etc/apache2/sites-available/monsite.com". | ||
<code root>vim /etc/apache2/sites-available/monsite.com</code> | <code root>vim /etc/apache2/sites-available/monsite.com</code> | ||
Ligne 330: | Ligne 396: | ||
====Création d'un nouvelle utilisateur du système Linux==== | ====Création d'un nouvelle utilisateur du système Linux==== | ||
- | On développera son site dans le répertoire de cet utilisateur. Il est plus facile de surveiller un système bien rangé ! | + | On développera son site dans le répertoire de cet utilisateur. Il est déconseillé de développer son site dans /var/www, surtout si la partition est plus petite que /home/ ! Cela évitera aussi de mettre en place le module [[http://httpd.apache.org/docs/current/fr/mod/mod_userdir.html|userdir]] déconseillé par la documentation d'apache. |
* Par exemple du nom de "web" | * Par exemple du nom de "web" | ||
Ligne 342: | Ligne 408: | ||
<code>mkdir -p monsite.com/public_html</code> | <code>mkdir -p monsite.com/public_html</code> | ||
- | * On édite un index.html : | + | * On édite un index.php : |
- | <code root>vim /home/web/monsite.com/public_html/index.html</code> | + | (le module php5 est en place et a été testé) |
+ | |||
+ | <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 pegaseous.com</h1> | ||
<p>Site en cours de réalisation !</p> | <p>Site en cours de réalisation !</p> | ||
+ | <?php | ||
+ | echo "La date du jour est " . date("d/m/Y") . "!\n"; | ||
+ | ?> | ||
</body> | </body> | ||
</html></code> | </html></code> | ||
Ligne 385: | Ligne 456: | ||
===Pour "/etc/apache2/sites-available/default" === | ===Pour "/etc/apache2/sites-available/default" === | ||
Cela est nécessaire pour restreindre l'accès du site qui est développé dans le répertoire de l'utilisateur /home/web/monsite.com qu'on a créé. | Cela est nécessaire pour restreindre l'accès du site qui est développé dans le répertoire de l'utilisateur /home/web/monsite.com qu'on a créé. | ||
- | |||
- | * On désactive "default" : ''a2dissite default'' | ||
* On modifie "/etc/apache2/sites-available/default" comme ceci : | * On modifie "/etc/apache2/sites-available/default" comme ceci : | ||
Ligne 477: | Ligne 546: | ||
<code root>rm -r monsite.com</code> | <code root>rm -r monsite.com</code> | ||
- | * On crée un lien symbolique "monsite.com" dans /var/www/ : | + | * On crée un lien symbolique "monsite.com" dans /var/www/ vers /home/web/monsite.com/ : |
<code root>ln -s /home/web/monsite.com/ /var/www/monsite.com</code> | <code root>ln -s /home/web/monsite.com/ /var/www/monsite.com</code> | ||
Ligne 483: | Ligne 552: | ||
===Modifier le groupe de /var/www === | ===Modifier le groupe de /var/www === | ||
- | On attribue les fichiers de /var/www au groupe www-data et non à l'utilisateur root. | ||
<code root>chown -R root:www-data /var/www/*</code> | <code root>chown -R root:www-data /var/www/*</code> | ||
Ligne 489: | Ligne 557: | ||
===On vérifie les droits POSIX de /var/www/ === | ===On vérifie les droits POSIX de /var/www/ === | ||
<note tip> | <note tip> | ||
- | A priori le fichier /var/www/index.html, au même titre que n'importe quelle page web accessible depuis un navigateur web, devrait avoir les droits suivants : | + | A priori le fichier /var/www/index.php, au même titre que n'importe quelle page web accessible depuis un navigateur web, devrait avoir les droits suivants : |
- | -rw-r----- 1 root www-data 142 3 déc. 17:03 index.html | + | -rw-r----- 1 root www-data 4096 sept. 22 11:47 index.php |
On utilise les droits suivants : | On utilise les droits suivants : | ||
- | * droits en lecture (r) écriture (w) sur les fichiers réguliers, | + | * droits en lecture <nowiki>(r)</nowiki> écriture (w) sur les fichiers réguliers, |
- | * droits en lecture (r) écriture (w) exécution (x) sur les répertoires. | + | * droits en lecture <nowiki>(r)</nowiki> écriture (w) exécution (x) sur les répertoires. |
</note> | </note> | ||
- | <code root>cd /var/</code> | + | * **Pour le répertoire /var/www** , il faut donc :\\ ''drwxr-xr-x 2 root root 4096 sept. 22 11:47 www'' |
+ | <code root>chmod 755 /var/www</code> | ||
- | **Pour le répertoire /var/www** , il faut donc :\\ ''drwxr-xr-x 2 root root 4096 sept. 22 11:47 www'' | + | * **Pour /var/www/index.php**, il faut donc :\\ ''-rw-r----- 1 root www-data 4096 sept. 22 11:47 index.php'' |
- | <code root>chmod 755 www</code> | + | <code root>chmod 640 /var/www/index.php</code> |
- | **Pour /var/www/index.html**, il faut donc :\\ ''-rw-r----- 1 root www-data 142 3 déc. 17:03 index.html'' | + | * **Pour /home/web/monsite.com**, il faut donc :\\ ''drwxr-xr-x 3 root www-data 4096 sept. 22 11:44 monsite.com'': |
- | <code root>chmod 640 /var/www/index.html</code> | + | |
- | + | ||
- | **Pour /home/web/monsite.com**, il faut donc :\\ ''drwxr-xr-x 3 root www-data 4096 sept. 22 11:44 monsite.com'': | + | |
<code root>chmod 755 /home/web/monsite.com/</code> | <code root>chmod 755 /home/web/monsite.com/</code> | ||
- | **Pour /home/web/monsite.com/public_html**, il faut donc :\\''drwxr-xr-x 2 root www-data 4096 sept. 22 11:44 public_html'': | + | * **Pour /home/web/monsite.com/public_html**, il faut donc :\\ ''drwxr-xr-x 2 root www-data 4096 sept. 22 11:44 public_html'': |
<code root>chmod 755 /home/web/monsite.com/public_html/</code> | <code root>chmod 755 /home/web/monsite.com/public_html/</code> | ||
- | **Pour /home/web/monsite.com/public_html/inde**, il faut donc :\\ ''-rw-r----- 1 root www-data 111 sept. 22 11:44 index.html'' | + | * **Pour /home/web/monsite.com/public_html/inde**, il faut donc :\\ ''-rw-r----- 1 root www-data 4096 sept. 22 11:44 index.php'' |
- | <code root>chown root:www-data /home/web/monsite.com/public_html/index.html\ | + | <code root>chown root:www-data /home/web/monsite.com/public_html/index.php\ |
- | && chmod 640 /home/web/monsite.com/public_html/index.html</code> | + | && chmod 640 /home/web/monsite.com/public_html/index.php</code> |
- | **Pour le lien symbolique /var/www/monsite.com** : on ne peut modifier ces droits mais ce n'est pas grave. Ce qui compte c'est le fichier vers lequel pointe un lien symbolique. | + | * **Pour le lien symbolique /var/www/monsite.com** : on ne peut pas modifier ces droits mais ce n'est pas grave. Ce qui compte c'est le fichier vers lequel pointe un lien symbolique. |
===On vérifie depuis son navigateur=== | ===On vérifie depuis son navigateur=== | ||
+ | |||
+ | * On ré-active le site "default" | ||
+ | |||
+ | <code root>a2ensite default</code> | ||
* On ré-active le site "monsite.com" | * On ré-active le site "monsite.com" | ||
Ligne 524: | Ligne 594: | ||
<code root>a2ensite monsite.com</code> | <code root>a2ensite monsite.com</code> | ||
- | <code root>service apache2 reload</code> | + | * On recharge apache2 : |
- | ''http://ip-serveur/monsite.com/''\\ | + | |
- | 8-) **Le login du compte apache (nom de l'utilisateur du système Linux) est demandé ainsi que son mot de passe.** | ||
- | |||
- | ===== Installer le module php===== | ||
- | ===Installer libapache2-mod-php5 === | ||
- | Ce paquet casse le MPM worker(([[http://httpd.apache.org/docs/2.2/mod/worker.html]])) et engendre l'installation du MPM prefork(([[http://httpd.apache.org/docs/2.2/mod/prefork.html]])).\\ | ||
- | |||
- | <code root>apt-get install libapache2-mod-php5</code> | ||
- | |||
- | |||
- | Une fois l'installation effectuée on peut vérifier que php5 est apparu dans /etc/apache2/mod-available. | ||
- | |||
- | <code root>ls -l /etc/apache2/mods-available/php5*</code> | ||
- | <code>-rw-r--r-- 1 root root 898 août 21 10:49 /etc/apache2/mods-available/php5.conf | ||
- | -rw-r--r-- 1 root root 59 août 21 10:49 /etc/apache2/mods-available/php5.load</code> | ||
- | |||
- | Dans /etc/apache2/mod-enabled, ce sont des liens symboliques qui activent ce module: | ||
- | <code root>ls -l /etc/apache2/mods-enabled/php5*</code> | ||
- | <code>lrwxrwxrwx 1 root root 27 sept. 20 11:40 /etc/apache2/mods-enabled/php5.conf -> ../mods-available/php5.conf | ||
- | lrwxrwxrwx 1 root root 27 sept. 20 11:40 /etc/apache2/mods-enabled/php5.load -> ../mods-available/php5.load</code> | ||
- | |||
- | -> Puisque les liens sont là, le module est activé. | ||
- | |||
- | ===Activer/désactiver un module === | ||
- | |||
- | * ''a2enmod'' : (apache2 enable module) : active un module apache2 | ||
- | * ''a2dismod'' : (apache2 disable module) : désactive un module apache2 | ||
- | |||
- | Si on active ou désactive un module ne pas oublier après l'opération de réactiver apache : ''service apache2 restart'' | ||
- | |||
- | ===Créer la page de test === | ||
- | |||
- | <code>mv /var/www/index.html /var/www/index.php</code> | ||
- | <code root>vim /var/www/index.php</code> | ||
- | <code> | ||
- | <html> | ||
- | <body> | ||
- | <h1>It works!</h1> | ||
- | <p>This is the default web page for this server.</p> | ||
- | <?php | ||
- | echo "La date du jour est " . date("d/m/Y") . "!\n"; | ||
- | ?> | ||
- | </body> | ||
- | </html> | ||
- | </code> | ||
- | |||
- | * Recharger apache : | ||
- | |||
- | <code root>service apache2 restart</code> | ||
- | |||
- | * Tester en tapant dans le navigateur : | ||
- | ''http://ip-du-serveur/'' | ||
- | |||
- | <code>It works! | ||
- | |||
- | This is the default web page for this server. | ||
- | La date du jour est 20/09/2014! </code> | ||
- | |||
- | 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 "monsite.com" : | ||
- | |||
- | <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/monsite.com/public_html/index.php</code> | ||
- | <code><html> | ||
- | <body> | ||
- | <h1>Bienvenue sur monsite.com</h1> | ||
- | <p>Site en cours de réalisation !</p> | ||
- | <?php | ||
- | echo "La date du jour est " . date("d/m/Y") . "!\n"; | ||
- | ?> | ||
- | </body> | ||
- | </html></code> | ||
- | |||
- | * Recharger apache : | ||
- | |||
<code root>service apache2 reload</code> | <code root>service apache2 reload</code> | ||
- | * Tester en tapant dans le navigateur : | + | Enfin depuis son navigateur : ''http://ip-serveur/monsite.com/''\\ |
- | ''http://ip-du-serveur/monsite.com'' | + | |
- | et cliquer 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 et on peut accéder à ses pages d'index !** |
- | + | ||
- | <code>Bienvenue sur monsite.com | + | |
- | + | ||
- | Site en cours de réalisation ! | + | |
- | La date du jour est 20/09/2014! </code> | + | |
- | + | ||
- | Tous les outils sont en place pour apprendre les langages html et php ! 8-) | + | |