Apache et PHP (Serveur Web sur Debian Lenny)

Publié le

UPDATE : voir la version à jour pour Debian Squeeze.

 

Et c'est là qu'on découvre les joies de Debian :

apt-get install apache2 apache2-dev libapache2-mod-gnutls php5 php5-mysql php5-dev php-pear php5-gd php5-mcrypt

Nous installes tout le nécessaire pour apache avec PHP5.

Un peu ce paramétrage s'impose quand même : dans le fichier /etc/apache2/mods-available/userdir.conf, remplacer public_html par www.
En effet, sur notre serveur, chaque site aura un utilisateur associé avec un dossier www où les fichiers web seront déposés.

Activons quelques modules Apache :

a2enmod userdir
a2enmod rewrite
a2enmod gnutls
a2enmod expires


J'ai décider d'utiliser gnutls plutôt que ssl car il permet de définir un certificat SSL par domaine. Malheureusement, ça marche qu'à partir de IE7 sur Windows Vista. Pour les autres navigateurs, pas de problèmes sur les autres systèmes d'exploitation.

D'ailleurs Apache doit écouter sur le port 443 (https) pour que gnutls puisse entrer en jeu. On modifie le fichier /etc/apache2/ports.conf pour y ajouter :

NameVirtualHost *:443
Listen 443

(Attention, pas dans la section puisque nous n'utilisons pas ce module)

Puis paramétrons le temps de cache des certifications, dans le fichier /etc/apache2/mods-available/gnutls.conf on ajoute :

GnuTLSCacheTimeout 300


La configuration debian d'apache donne beaucoup d'informations sur le serveur. On enlève tout ça dans le fichier /etc/apache2/conf.d/security :

ServerTokens Prod
ServerSignature Off
TraceEnable Off


De la même façon, la configuration de base pour les optimisations concernant le cache utilisateur des fichiers n'est pas optimales. Pour l'améliorer, on ajoute le fichier /etc/apache2/conf.d/optimisations :

ExpiresActive On
ExpiresDefault "access plus 31 days"
FileETag none


Toujours dans l'idée de mettre un maximum de fichier dans /home, déplaçons le dossier /var/www :

mv /var/www/ /home/var/
ln -s /home/var/www/ /var/www


Enfin, Apache arrive avec un fichier html de base affichant simplement "It works". Plutôt que cela, je préfère définir un fichier php qui
redirige sur mon nom de domaine principale :

echo " /home/var/www/index.php
echo "header('location: http://domain.tld');" >> /home/var/www/index.php
rm /home/var/www/index.html


On a finit de jouer avec Apache, on recharge la configuration pour appliquer les changements :

/etc/init.d/apache2 force-reload


Passons à la suite, le serveur FTP.

Retour au sommaire.