[Debian/Archlinux] Installation de PHPMyAdmin pour Nginx

Après l’installation de votre serveur web nginx (article à cette adresse), mais aussi de votre serveur de bases de données (article à cet endroit), il vous est maintenant possible d’installer PHPMyAdmin – Ce paquet permet la gestion des bases de données de façon « graphique », à l’aide d’une interface web dédiée à cette gestion.
Ainsi, fini les lignes de commandes SQL à passer !

Mise à jour le 15/06/2017


I. Téléchargement et installation de PHPMyAdmin

Le téléchargement du paquet se fait très simplement à l’aide d’APT :

Le choix fatidique à effectuer…

Suite au téléchargement, l’installation sera initiée par la suite. Il y a un point sur lequel vous devrez faire attention : la sélection du serveur web pour pré-configurer PHPMyAdmin. En effet, vous arriverez certainement à cette étape lors de l’installation – Vous avez le choix entre « Apache2 » et « Lighttpd« .

Les deux options doivent être décochées !

En effet, chaque serveur web a sa configuration bien spécifique ; nginx n’étant pas répertorié dans le paquet pour Debian, vous devez donc décocher les serveurs web proposés.
Si une option est cochée, vous pouvez appuyer sur la barre d’espace pour cocher / décocher la ligne correspondante. Une fois l’opération effectuée, appuyez sur la touche « Tab » pour vous diriger sur le bouton « Ok ».

La configuration préliminaire est terminée, l’installation aussi… Ou presque.

Il faut ensuite spécifier le mot de passe root pour le serveur SQL (le mot de passe que vous avez saisi lors de la première configuration de votre serveur SQL). Un nouveau mot de passe vous sera demandé, cette fois-ci pour sécuriser l’accès à PHPMyAdmin. Pensez à utiliser des mots de passe « forts » pour sécuriser les accès aux comptes…

L’installation place tous les fichiers nécessaire à PHPMyAdmin dans le dossier « /usr/share/phpmyadmin« .


II. Configuration nécessaire (exemple)

L’installation est terminée, mais il faut encore faire comprendre à nginx qu’il existe une nouvelle application à « lancer »… Ou plutôt une application qui est maintenant accessible par le biais du serveur nginx.

[alert type= »info » close= »false » heading= »Information quant aux lignes de code »] Les lignes de code présentées ci-dessous ne sont qu’un exemple de configuration possible. Il existe d’autres façon de faire fonctionner PHPMyAdmin avec nginx… Toutefois, je vous présente ma méthode qui, je trouve, permet d’avoir des applications web / sites web bien cloisonnés et surtout indépendants. [/alert]

Dans notre exemple, nous allons créer un nouveau fichier de configuration pour cette application web ; Ce fichier sera placé dans le dossier « /etc/nginx/sites-available« .

Création d’un nouveau fichier de configuration (pour PHPMyAdmin) :

Le fichier étant créé, nous allons donc l’ouvrir, pour lui injecter toute la partie « server { … } »…

Et le cœur…

Quelques explications :

  • server {… | Création d’un bloc « server { … } » – On déclare à nginx l’existence d’une nouvelle application web (un nouveau « vhost » pour se rapprocher d’nginx) ;
  • listen 81 | L’application web va écouter sur le port non-standard « 81 » (et non pas 80 comme toutes les applications web traditionnelles/conventionnelles).
    Ce port peut être changé par n’importe lequel, tout en faisant attention que certains ports sont déjà occupés par d’autres services / rôles… ;
    Il s’agit d’une démarche voulue, pour cloisonner l’application web « site » de l’application « gestion ». Il faut faire attention, vous devrez sans doute modifier les règles de votre pare-feu / routeur dans certains cas, selon votre architecture.
  • server_name localhost | Nom de votre serveur web. Il est possible de changer ce nom selon votre bon vouloir… ;
  • root /usr… | L’attribut « root » déclare au serveur web où se trouve l’application dans votre serveur. Dans notre situation, pour PHPMyAdmin, les fichiers se situent dans « /usr/share/phpmyadmin » ;
  • index … | Tous les fichiers déclarés dans cet attributs seront susceptibles de devenir la page d’accueil de votre application, seulement si ces fichiers sont présents dans le dossier de l’appplication ;
  • Partie « if » | Partie un peu plus spécifique pour PHPMyAdmin : réécriture des liens selon les fichiers / pages demandés ;
  • Partie « Location » | Pour plus d’informations sur cette partie, je vous re-dirige vers l’article – installation du serveur web nginx ;

N’oubliez pas d’enregistrer votre fichier avant de le quitter ;

La configuration étant créée, il faut ajouter un lien symbolique dans le dossier « sites-enabled » d’nginx ; En effet, nginx ne « lance » que les applications web dont les fichiers de configuration sont dans le dossier sites-enabled. Pour tronquer cette opération, il faut créer ce lien entre sites-available et sites-enabled :

Le fichier « phpmyadmin » est à changer au niveau du nom selon votre configuration personnelle.

Le fichier de configuration étant maintenant créé, il vous faut redémarrer le serveur web pour lui permettre d’inclure cette nouvelle configuration, et tester notre application !


III. Tests

Dernière étape, re-démarrage du serveur web pour prendre en compte nos dernières modifications.

Redémarrage quasi instantané, puisque nginx est très léger.

Notre serveur web et surtout notre application web sont tous les deux prêts à l’emploi !
Ouvrez donc un navigateur web, et saisissez l’adresse de votre serveur web, suivi du port que vous avez saisi dans le fichier de configuration (dans notre exemple, 81) :

Julien H

Passionné depuis toujours par l'informatique, je transforme ma passion en expertise. J'utilise quotidiennement les outils et systèmes Microsoft. Je ne délaisse pas mon côté ouvert, notamment via l'utilisation des OS Debian et Archlinux. L'infosec m'ouvre les yeux sur les enjeux actuels et futurs de l'IT.

4 Comments

  1. Bonjour,
    mon problème réside dans le fait que mon site principal utilise un redirection https automatique. Résultat, une page blanche sans erreur de précisée.
    voici le début de mon phpmyadmin.conf :

    server {
    listen 81;
    server_name 192.168.1.80;
    allow 192.168.1.85;
    allow 192.168.1.86;
    allow 192.168.1.87;

    Une idée ?

    1. Bonjour Phil,
      J’ai mis à jour l’article – Il était cassé… Vous avez dès à présent la vue sur tout mon vhost pour Nginx / PHPMyAdmin. Suite à la modif de votre vhost, la redirection automatique en HTTPS devrait juste vous afficher une erreur SSL lors de l’accès à votre PHPMyAdmin : sans conséquence, puisque pour le moment les lignes SSL pour le certificat et la clef ne sont pas saisi 😉

  2. Pour le ln -s /etc/nginx/sites-available/phpmyadmin /etc/nginx/sites-enabled/phpmyadmin
    il n’y a plus avec la dernière version d’nginx qu’un répertoire conf.d avec dans nginx.conf un include /etc/nginx/conf.d/*.conf.

    Pour le reste j’ai fusionné votre code pour ne pas avoir plusieurs fichiers de configurations :

    et là en tapant https://monserveur/phpmyadmin on m’affiche : page introuvable ….?

    1. Je pense qu’il y a une petite coquille dans la configuration, notamment côté PHP.
      La ligne « fastcgi_param » est en trop à mon avis. Essayez de la supprimer et de relancer par la suite le serveur web et PHP, puis accédez à PHPMyAdmin via l’adresse. 😉

      server {
      listen 80;
      server_name localhost;
      root /usr/share/phpmyadmin;
      index index.php index.html index.htm;
      if (!-e $request_filename) {
      rewrite ^/(.+)$ /index.php?url=$1 last;
      break;
      }
      location ~ .php$ {
      try_files $uri =404;
      fastcgi_pass unix:/var/run/php5-fpm.sock;
      fastcgi_index index.php;
      include /etc/nginx/fastcgi_params;
      }
      }

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. Apprenez comment vos données de commentaires sont traitées.

Close
Close