====== Un serveur LAMP ====== ===== Installation de base ===== L'idée est d'installer un serveur Web en local, pour des tests et du bidouillage de //template// de CMS. On part sur une base d'une distribution GNU/Linux, en l'occurrence une Debian Jessie. Pour Archlinux, la documentation du wiki est excellente : https://wiki.archlinux.org/index.php/LAMP On met à jour la liste des paquets : aptitude update On installe les paquets de base, comprenant le serveur Web Apache proprement dit, le langage PHP et un [[:informatique:serveur:mariadb|serveur MySQL, ici MariaDB]] : aptitude install apache2 php5 mariadb-common mariadb-server php5-mysql Il faut attribuer un mot de passe solide pour l'utilisateur ''root'' de MariaDB : {{ :informatique:serveur:capture_d_ecran_de_2015-01-29_09_35_57.png?direct&600 |}} En se rendant avec son navigateur Web préféré à la racine de son serveur local (http://localhost/), on devrait voir s'afficher la page par défaut d'Apache, qui donne quelques explications. ===== Quelques modules PHP ===== Sont très souvent nécessaires ou au moins utiles : aptitude install php5-gd php5-imagick Après installation, il est nécessaire de redémarrer Apache : ''apache2ctl graceful''. ===== Une adresse IP fixe ===== S'il s'agit d'un serveur Web sur sa propre machine, ce n'est pas nécessaire. S'il s'agit d'un serveur Web en production, ça peut être utile. Il faut modifier le fichier ''/etc/network/interfaces'' comme suit : auto lo iface lo inet loopback iface eth0 inet static address 192.168.0.x gateway 192.168.0.x netmask 255.255.255.0 L'''address'' est l'IP à attribuer au serveur. ''gateway'' est l'adresse IP du routeur. Ne pas oublier de regarder les DNS : https://www.howtoforge.com/debian-static-ip-address#dns-configuration ===== Apache2 ===== Pour vérifier l'état du service : systemctl status apache2 Pour vérifier la syntaxe de la configuration : apachectl configtest ==== ServerName ==== Lors des redémarrage d'Apache, il lui arrive de signaler qu'il n'a pu déterminer le nom du serveur et qu'il utilise donc l'adresse IP publique, s'il l'a trouve, ou locale. Pour résoudre cette situation, il faut vérifier : - Que la commande ''hostname'' renvoie bien le nom désiré. Si ce n'est pas le cas, il faut renseigner correctement le fichier ''/etc/hostname''. Le changement est pris en compte au redémarrage. Pour l'éviter, en plus de modifier le fichier (pour le prochain redémarrage), on peut modifier cette valeur grâce à la commande ''hostname [nouveau-nom]''. - Que le fichier ''/etc/hosts'' est correct, à savoir que l'adresse IP locale renvoie bien au nom de la machine. - Dans la configuration, chaque VHOST peut avoir son ServerName, mais il peut être indiqué de donner un ServerName global. Il faut ajouter la ligne ''ServerName [www.example.com]'' tout au début du fichier ''/etc/apache2/sites-available/000-default'' ServerName [www.example.com] # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. # ServerName www.example.com ServerAdmin webmaster@example.com DocumentRoot /var/www/html [...]