Configuration de mon serveur web de développement PHP7 sous Debian 8

Voici la configuration de mon serveur web de développement PHP7, Apache2, MySQL, phpMyAdmin sous Debian 8 Jessie. Vu la difficulté à installer PHP7 et phpMyAdmin, j’ai cru bon de créer un tutoriel sur la configuration de mon environnement étape par étape.

Ceci se base sur le fait que ma machine était une machine Debian de base avec comme seul paquet supplémentaire sudo. Mon utilisateur étant membre du groupe sudo.

Étape 1 : Mettre à jour les sources du gestionnaire de paquets apt.

Nous ajoutons d’abord le référentiel Dotdeb qui fournit des paquets à jour pour PHP7 (entre autres), puisque celui-ci n’est pas offert (à ce jour) dans les référentiels officiels de Debian.

Note : Ce référentiel est également valide pour Debian 7 Wheezy, il faudrait toutefois changer le nom de la version dans les commandes suivantes.

sudo bash -c "echo 'deb http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list"
sudo bash -c "echo 'deb-src http://packages.dotdeb.org jessie all' >> /etc/apt/sources.list"

Étape 2 : Installer la clef GnuPG pour le référentiel de Dotdeb.

wget https://www.dotdeb.org/dotdeb.gpg
sudo apt-key add dotdeb.gpg
rm dotdeb.gpg

Étape 3 : Mettre le gestionnaire de paquets apt à jour.

sudo apt-get update

Étape 4 : Installer les paquets nécessaires.

sudo apt-get install apache2 php7.0 php7.0-fpm php7.0-gd php7.0-mysql php7.0-mbstring mysql-server

Pendant l’installation de mysql-server, vous devriez avoir à entrer un mot de passe pour l’utilisateur d’administration; ce mot de passe sera nécessaire pour tester phpMyAdmin à l’étape 9.

Étape 5 : Configurer Apache pour l’utilisation de PHP7.

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php7.0-fpm

Puis, nous redémarrons le service web.

sudo service apache2 reload

Étape 6 : Tester l’installation d’Apache et de PHP7.

Nous créons d’abord un fichier test.php pour y afficher les informations relatives à php dans le DocumentRoot de notre serveur web. Par défaut, sous Debian 8 avec Apache2, le DocumentRoot devrait être /var/www/html/.

sudo bash -c "cat >> /var/www/html/test.php" << EOL
<?php
phpinfo();
?>
EOL

Nous devrions être capables de naviguer vers le serveur de développement sur la page test.php et obtenir quelque chose de similaire à ceci.


Étape 7 : Tester l’installation de MySQL server.

Pour tester l’installation de mysql-server, il suffit d’entrer une commande comme celle-ci :

mysql -u root -p -e "show databases"

Cette commande devrait afficher le nom des bases de données présentes sur votre serveur.

Étape 8 : Installer phpMyAdmin.

Dans ce tutoriel, j’installerai phpMyAdmin dans le répertoire /var/www/phpmyadmin et je créerai un VirtualHost pour ce répertoire.

L’archive de phpMyAdmin que nous utiliserons est au format zip, tapper la commande suivante pour installer l’utilitaire unzip si vous ne l’avez pas par défaut.

sudo apt-get install unzip

D’abord, téléchargeons l’archive de phpMyAdmin et installons-la dans le répertoire voulu.

sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.5.3.1/phpMyAdmin-4.5.3.1-all-languages.zip -P /var/www/
sudo unzip /var/www/phpMyAdmin-4.5.3.1-all-languages.zip
sudo mv /var/www/phpMyAdmin-4.5.3.1-all-languages/ /var/www/phpmyadmin
sudo rm /var/www/phpMyAdmin-4.5.3.1-all-languages.zip

Puis, nous allons créer un fichier de configuration de phpMyAdmin en nous basant sur l’exemple fourni.

sudo cp /var/www/phpmyadmin/config.sample.inc.php /var/www/phpmyadmin/config.inc.php

Et nous y modifions une ligne pour ajouter une clef Blowfish secrète à la configuration de phpMyAdmin.

k=$(openssl rand -base64 32 | sed 's,\/,\\/,g')
o="\$cfg\['blowfish_secret'\] = '';"
n="\$cfg\['blowfish_secret'\] = '$k';"
sudo perl -p -i -e "s/$o/$n/g" /var/www/phpmyadmin/config.inc.php

Maintenant, vérifions que la clef a bel et bien été ajoutée.

cat /var/www/phpmyadmin/config.inc.php | grep blowfish

La sortie devrait être similaire à ceci (avec une clef différente).

$cfg['blowfish_secret'] = 'GdU9dq0/miodjA1DtIqqqZGvHEO/k2brFzpnOec5m2o='; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

Finalement, nous créons un VirtualHost pour phpMyAdmin.

D’abord, nous créons un fichier de configuration pour le site phpMyAdmin.

sudo bash -c "cat >> /etc/apache2/sites-available/phpmyadmin.conf" << EOL
Alias /phpmyadmin /var/www/phpmyadmin

<Directory /var/www/phpmyadmin>
 Options FollowSymLinks
 DirectoryIndex index.php
</Directory>
EOL

Puis nous activons le site et nous redémarrons Apache2.

sudo a2ensite phpmyadmin.conf
sudo service apache2 restart

Étape 9 : Tester l’installation de phpMyAdmin.

Nous devrions être capables de naviguer vers le site phpMyAdmin de notre serveur de développement.

Il ne nous reste qu’à nous connecter à phpMyAdmin avec l’utilisateur root et le mot de passe choisi à l’étape 4.

Voilà!

Notre serveur web de développement est fonctionnel avec PHP7 et phpMyAdmin.