Serveur LAMP Apache (Debian 8) Sommaire 1) Installation de LAMP... 2 2) Tests... 3 3) PhpMyAdmin... 4 4) Importer un CMS (Wordpress)... 5 5) Installation et configuration de base Apache... 6 5.1) Installation de Apache... 6 5.2) Configuration de Apache2... 7 6) Script CGI Simple... 9 7) Protection des accès... 11 Créer une authentification pour accéder à des pages web :... 12 8) Serveur «Virtuel»... 13 9) HTTPS : Le http sécurisé... 15 Pour trouver une erreur qui se trouve dans le fichier de configuration apache2.conf, faire la commande : apache2ctl -k start 1
1) Installation de LAMP Avant l installation de LAMP, faire les commandes «apt-get update» et «apt-get upgrade» pour éviter toutes erreurs de sources. (avoir une connexion internet) Pour installer LAMP sous Debian / Ubuntu faire la commande suivante : apt-get install apache2 mysql-server-5.5 libapache2-mod-php5 php5-mysql Une fois l installation effectuée, il faut démarrer les services avec les commandes : «service apache2 start» et «service mysqld start» Si les services ne démarre pas, refaire les commandes «apt-get update» et «apt-get upgrade» Pour visualiser les statuts des services faire les commandes suivantes : (les statuts sont Active) 2
2) Tests Pour tester le serveur MySQL faire la commande «mysql u root p» La console SQL devrait apparaitre, taper exit pour la quitter. Pout tester le serveur apache, aller dans le navigateur et taper «http://localhost» sur le serveur ou «http://@ip-du-serveur» depuis une station du même réseau. Une page devrait apparaitre avec un message It works. Pour tester PHP, créer un fichier phpinfo.php dans le répertoire /var/www/html Dans le fichier phpinfo.php ajouter les lignes suivantes : <?php phpinfo() ;?> Aller ensuite sur la page localhost/phpinfo.php La page devrait apparaitre avec des informations de la configuration du serveur Si le php fonctionne correctement. 3
3) PhpMyAdmin Pour installer PhpMyAdmin, faire la commande suivante : apt-get install phpmyadmin Choisir apache2 pour reconfigurer le serveur Web automatiquement. Sélectionner oui pour configurer la base de données de phpmyadmin avec dbconfig-common Entrer ensuite un mot de passe pour l administrateur de la base de donnée et SQL. Un fois l installation terminé, PhpMyadmin devrait etre disponible a cette adresse : (@IP-SRV/phpmyadmin) 4
4) Importer un CMS (Wordpress) Dans mon cas, mon CMS que j utilise est wordpress. J ai déjà créé un siteweb avec Wordpress, pour cela nous allons l importer sur le serveur LAMP. Il faut donc ajouter le dossier Wordpress dans /var/www/html Puis aller dans PhpMyAdmin et créer une base de donnée : (Pour moi wordpress) Aller ensuite dans la base de données créé précédemment, et choisir importer une base de données (sélectionner la base de données de notre site Wordpress) Le site Wordpress devrait être disponible sur le serveur web. 5
5) Installation et configuration de base Apache 5.1) Installation de Apache Pour installer Apache2 sous Debian/Ubuntu faire la commande : Apt-get install apache2 Si vous avez déjà installé LAMP, Apache2 sera déjà présent sur le serveur. Pour vérifier le fichier le log de apache2 aller dans /var/log/apache2 Pour associer l adresse IP du serveur local à un nom, aller dans le fichier hosts. Faire nano /etc/hosts (Désactiver le proxy) Aller dans nano /etc/apache2/apache2.conf et ajouter la ligne ServerName jordanvivet Puis redémarrer le service apache2 : service apache2 restart Le serveur web est accessible avec le nom jordanvivet uniquement sur le serveur. 6
5.2) Configuration de Apache2 Pour modifier le port d écoute aller dans le fichier ports.conf (nano /etc/apache2/ports.conf) Puis redémarrer le service apache2 Les fichiers de configuration chargée depuis apache2.conf sont les suivants : (/etc/apache2/apache2.conf) La directive qui permet de charger un module est la suivante : LoadModule env_module /usr/lib/apache2/modules/nom_du_module Les listes des modules se trouve dans /etc/apache2/mods- Le serveur Apache2 s exécute avec l utilisateur www-data et root Le répertoire racine pour les pages est : /var/www/html Apache renvoie la page index.htm par défaut. Cette page index.htm est située dans : /var/www/html/ 7 Voici un exemple de page index.htm
Les logs sont enregistrés dans : /var/log/apache2 Leur format sont en.log Dans les fichiers access.log, se trouve de démarrage de index.htm La page index.htm est accessible depuis le serveur (http://jordanvivet) mais aussi depuis un client du même réseau en tapant l adresse du serveur. http://172.16.41.122/ Les traces sont enregistrées dans le fichier access.log Sécurisé l accès a l arboréssence du site : Créer un nouveau dossier webftp : Nous pouvons voir que l accès à webftp est disponible : Pour sécurisé sont accès, aller dans le fichier apache2.conf et ajouter : 8
-indexes permet d interdire l accés à webftp Redémarrer le service apache2. Le dossier webftp est alors sécurisé car on ne peut le visualiser. 6) Script CGI Simple Faire la commande nano date.cgi pour éditer le fichier. Ensuite donner les droits au script avec la commande chmod 777 date.cgi Pour tester le script, faire la commande./date.cgi Si le script fonctionne, il faut le déplacer dans /usr/lib/cgi-bin/ Il faut activer le mode cgi avec la commande a2enmod cgi puis redémarrer le service apache2 service apache2 restart. Aller sur le navigateur au lien suivant : localhost/cgi-bin/date.cgi (le script date devrait fonctionner) Pour considérer les suffixes.sh en.cgi aller dans le fichier de configuration apache2. (/etc/apache2/apache2.conf) et ajouter les lignes suivantes : (peut être facultatif) 9
Pour tester que le suffixe.sh fonctionne, il faut renommer date.cgi en date.sh (aller dans le navigateur à l adresse suivante : localhost/cgi-bin/date.sh) Script qui permet d afficher la liste des processus appartement à un utilisateur : Dans le navigateur, aller au lien suivant : http://localhost/cgi-bin/listeprocs.sh?user=vivet Listeprosc.sh se trouve dans le dossier /usr/lib/cgi-bin/ Pour faciliter la recherche des processus pour un utilisateur, j ai créé un formulaire que j ai placé dans /var/www/html/formulaire.html Chemin du script listeprocs.sh Ensuite aller sur un navigateur : (Entrer le nom d utilisateur pour voir la liste des processus de l utilisateur concerné) 10
7) Protection des accès Pour accéder à un répertoire uniquement sur le serveur il faut ajouter une règle dans le fichier /etc/apache2/apache2.conf Répertoire «secret» Autorise juste le serveur à accéder au répertoire «secret» Le répertoire secret n est pas disponible sur une station autre que le serveur : (erreur 403 forbidden) Le répertoire secret est bien accessible sur le serveur! En observant les logs dans /var/log/apache2/access.log nous pouvons voir que une station «pedage.domaine.lan» à obtenue l erreur 404, et que le serveur local «127.0.0.1» à été autorisé à accédé au répertoire «secret» 11
Créer une authentification pour accéder à des pages web : Créer un répertoire privé contenant deux pages html Créer ensuite nano /var/www/html/prive/.htaccess Créer un utilisateur admin : «adduser admin» Ensuite aller dans /etc/apache2 et faire la commande htpasswd c users admin Dans le fichier users qui se trouve dans /etc/apache2/ se trouve le mot de passe crypté de admin : Pour ajouter des nouvelles utilisateurs dans le fichier users faire la commande «htpasswd users $utilisateur» Aller dans le fichier de configuration /etc/apache2/apache2.conf et ajouter les lignes suivantes pour activer l authentification pour accéder au répertoire prive. Redémarrer ensuite le service apache 2 En se connectant à l adresse sur serveur : 172.16.41.122/prive il y a une fenêtre d authentification qui apparait : l utilisateur inscrit dans le fichier /etc/apache2/users peut se connecter 12
8) Serveur «Virtuel» Tout d abord aller dans le fichier /etc/hosts et ajouter plusieurs noms au serveur. L adresse IP 192.168.23.2 est celui de mon serveur. (J ai changé l adresse du serveur car j utilise à présent un routeur) Créer deux dossier dans /var/www Dans ces dossiers créer un page index.html classique 13
Dans /etc/apache2/sites-available créer deux fichier texte : (monsite1.conf et monsite2.conf) Voici le fichier monsite1.conf : (le fichier monsite2.conf est identique, il faut juste remplacer monsite1 par monsite2) 14
Créer ensuite les liens des deux fichiers nouvellement créés dans le dossier /etc/apache2/sitesenabled. Faire : Redémarrer ensuite le service apache2 : Il est donc possible d accéder aux deux sites! 9) HTTPS : Le http sécurisé Pour activer le module SSL d Apache et activer le site «default-ssl» d apache faire les commandes suivantes : A2enmod ssl A2ensite default-ssl Service apache2 restart Le site fonctionne bien en https:// Pour forcer la redirection vers https, il faut entrer la ligne Redirect / https://monsite1.fr dans le fichier de configuration du site (/etc/apache2/sites-avaibles/monsite1.conf) puis redémarrer le service apache2 15