Installer et configurer PHP5
Maintenant que notre serveur Apache2 est opérationnel, nous allons pouvoir lui ajouter le plugin PHP5.

Installer PHP5

Il existe deux types d'installation de PHP5.
Soit le mode CGI, soit le module apache (libapache2-mod-php5).
Nous utiliserons le mode apache qui a l'avantage d'être fonctionnel dès son installation avec apache.
Retournez sur votre console SSH en mode root ou utilisez sudo devant chaque commande.
apt-get install libapache2-mod-php5
Et c'est tout, PHP5 est installé ! Simple non ?

Problème d'installation de PHP5 sur debian ?

Si APT ne trouve pas le package libapache2-mod-php5, c'est sans doute que vous n'utilisez pas une version de debian récente. Dans ce cas, ajoutez le dépôt suivant dans /etc/apt/sources.list
deb <http://packages.dotdeb.org/> ./
Mettez à jour les dépôts avec apt-get update puis réitérez l'installation.

Installation des plugins supplémentaires pour PHP5

PHP dispose d'un grand nombre de plugins, voici une liste des principaux qui vous serons sans doute utile :

php5-dev : Fichiers permettant le développement de modules PHP5.
php5-gd : Ajout du support de GD 2 pour le traitement des images en PHP.
php5-mcrypt : Ajout du support de la librairie mcrypt qui ajoute des fonctions de cryptage avancées.
php5-memcache : Ajout du module memcache sur PHP. Memcache est un démon permettant de réduire la charge du serveur en mettant en cache des informations (Appels en BDD) directement dans la mémoire serveur.
php5-mysql : Le module MySQL pour PHP5. Nous verrons comment installer MySQL dans le chapitre suivant.
php-pear : PEAR le framework et système de distribution d'applications.

Installer les extensions PHP5

Installons maintenant les extensions PHP qui nous serons utiles :
apt-get install php5-gd php5-mcrypt php-pear
Vérifiez bien que APT ne vous impose pas d'installer d'autres versions de PHP.

Configurer PHP5

Maintenant que tout est opérationnel, allons faire un tour dans la configuration de PHP pour faire quelques modifications :
nano /etc/php5/apache2/php.ini

Balises d'ouverture de PHP
Ligne 83
short_open_tag = On
Si vous utilisez des balises courtes dans vos scripts PHP au lieu de , activez short_open_tag.
Il est néanmoins conseillé de ne pas utiliser les balises courtes, pour disposer d'un code portable et compatible.

PHP Charset
Décommenter la ligne
défault_charset = ‘iso-8859-1’

Affichage des erreurs
Pour plus de confidentialité et sécurité, si vous êtes en production, il est conseillé d'empêcher l'affichage des erreurs pour ne donner aucune information sur votre code.
Ligne 323
display_errors = Off
Passez la valeur display_errors à Off pour ne plus afficher les erreurs.
Et vous pouvez par contre activer le reporting d'erreurs dans un fichier de log que vous seul pourrez voir :
Ligne 333
log_errors = On

Upload de fichiers
Si vous souhaitez permettre l'upload de fichiers en PHP, vous pouvez modifier les valeurs d'upload :
Ligne 537
; Whether to allow HTTP file uploads.
file_uploads = On
Activez ou refusez les uploads en PHP.
Ligne 545
; Maximum allowed size for uploaded files.
upload_max_filesize = 8M
Augmentez ou réduisez le poids maximum des fichiers uploadables.
Ligne 267
max_execution_time = 60
Si vous activez l'upload, augmentez le temps maximal d'éxécution des scripts php, à au moins 1 minute.

Sauvegardez et quittez le fichier de config puis restartez apache2 pour prendre en compte les modifications, en tapant :
apache2ctl restart

Tester l'installation de PHP

Nous allons tester si l'installation de PHP et de ses plugins s'est bien effectuée.
Dans votre répertoire web, supprimez le fichier index.html de test précedemment créé, puis créez un nouveau fichier index.php dans ce répertoire.
root [/var/www/lafermeduweb] > rm -rf index.html
root [/var/www/lafermeduweb] > nano index.php


Insérer dans index.php les lignes suivantes :
<?php
phpinfo();
?>
Enregistrez et quittez le fichier index.php.

Ouvrez votre navigateur et entrez l'adresse de votre serveur :
Si tout s'est passé correctement, le PHPInfo devrait s'afficher.
Vérifiez que tous les modules soient bien chargés (GD, mcrypt ...).