Ceci est une ancienne révision du document !
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.
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 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 :
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.
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
.
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
Pour vérifier l'état du service :
systemctl status apache2
Pour vérifier la syntaxe de la configuration :
apachectl configtest
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 :
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]
./etc/hosts
est correct, à savoir que l'adresse IP locale renvoie bien au nom de la machine.ServerName [www.example.com]
tout au début du fichier /etc/apache2/sites-available/000-default
ServerName [www.example.com] <VirtualHost *:80> # 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 [...] </VirtualHost>