Configuration de phpmyadmin

Tags: #<Tag:0x00007fb429801030> #<Tag:0x00007fb429800a68>

Bonjour à toutes et à tous.
J’ai installé le paquet des dépôts de phpmyadmin et je ne sais pas comment faire pour faire fonctionner le logiciel.
J’ai regardé plusieurs tutos, mais il n’y en a pas un qui dit la même chose.
Si quelqu’un peut m’aider.
Pour info, j’utilise Nginx.

Bonjour @ignace1972,

PhpMyAdmin fonctionne très bien sur un système LAMP (Linux, Apache, MySQL, Php). Il peut aussi être utilisé avec Nginx au lieu d’Apache.

Un tutoriel n’a pas forcément vocation de dire la même chose; il y a souvent plusieurs façons d’arriver au même résultat de différentes façons. De plus, il existe plusieurs formes et qualités de tutoriels: un tuto(riel) vidéo impose trop souvent un rythme contrairement à ceux en version écrite. Un tutoriel vise à montrer une manière de faire, souvent superficiel ce qui le distingue d’un cours ou d’un ouvrage mettant généralement plus d’éléments essentiels en avant avec une logique de progression.

Vous avez utilisé plusieurs tuto(riel)s mais aucun n’est cité, sans même précisé où cela coince. Difficile pour l’instant de vous aider plus si ce n’est de vous inviter à partir de la documentation officielle de PhpMyAdmin. Il y a aussi un article intéressant de DigitalOcéan sur PhpMyAdmin et NGinx sous Ubuntu mais vous ne devriez pas rencontrer de (grosses) difficultés avec Debian. Cet article est rédigé avec soin mais il est en anglais; rien ne vous empêche de faire appel à un traducteur en ligne tel que par exemple Deepl qui donne de bons résultats au cas ou vous seriez fâché avec la langue de Shakespeare. Enfin, si ce n’est pas suffisant, il vous faudra mettre la main sur la documentation de chacun des produits concernés car PhpMyAdmin repose sur Php, MySQL, et un serveur Web (Apache ou dans votre cas Nginx) pour préciser la nature de votre problème.

Bonjour, vbreton.
En fait, je regarde plusieurs tutoriels avant de faire quoi que ce soit.
En regardant celui de DigitalOcéan, il manque juste à faire le lien sudo ln -s /usr/share/phpmyadmin /var/www/html/phpmyadminen plus de l’installation du paquet officiel.
Merci à toi, problème résolu.

Bonjour,
Désolé mais ce lien est une mauvaise solution.
C’est une solution à la « commentcamarche.com », une bidouille.
Si phpmyadmin utilise /var/share/phpmyadmin et non /var/www/html/phpmyadmin dfirectement c’est qu’il y a une bonne raison. et cette raison c’est la sécurité.

En faisant cette solution, tu as tout simplement cassé la sécurité associée à l’application.

Voici un tutoriel digne de ce nom qui présente l’installation via les dépôts Debian ou les sources et qui est propre: CrownCloud Wiki - How To Install PhpMyAdmin In Debian 12

Bonjour, Zargos.
Je n’ai pas eu les deux écrans de configuration de phpadmin qu’il y a dans ce tutoriel quand j’ai installé le paquet.
Après, il faut deviner le bon répertoire du lien de phpmyadmin qui n’est évidemment pas phpmyadmin.

il n’y a pas de lien à faire!

Ce n’est que de la configuration, coté phpmyadmin et coté apache c’est tout. De quels écrans?
Celui-là?
image

et les suivants?

si tu as normalement utilisé les dépôts tu aurais du les avoir.
Et comme le dit @vbreton sans savoir quel tuto tu as utilisé", difficile de savoir ce que tu as fait.

Mais en tout cas tu devrais enlever la coche de « solution » car ce n’est pas une solution que tu as trouvé mais u ne bidouille.

Dans mon premier message, j’ai indiqué que j’utilisais Nginx comme serveur, mais visiblement, j’aurais dû l’écrire en capitale et en gras.
J’avais utilisé le tuto de DigitalOcéan, je l’ai clairement dit.
Je viens de désinstaller et de purger phpmyadmin.
Pour l’installation, j’ai les écrans suivants :
Faut-il configurer la base de données de phpmyadmin avec dbconfig-common ?
Pour la question : Serveur Web à reconfigurer automatiquement :
Je n’ai pas le choix du serveur Nginx.
Je n’ai pas panneau de choix : MySQL application password for phpmyadmin.
Le paragraphe : créer une configuration Apache pour phpmyadmin ne me sert à rien puisque j’utilise Nginx.
Et je ne devrais pas enlever la coche de solution puisque je ne l’ai pas mise.
Alors en attendant un tuto qui fonctionne autrement, j’utilise un lien ce qui me permet d’avoir un phpmyadmin fonctionnel.

Tu utilise un tuto pour apache que tu détournes avec le lien. Les packages sont conçus avec apache donc normal que tu n’ai pas le choix de nginx. Ça semble une évidence.
Après si la violation de la secu est sans importance tant mieux. Mais c’est crade.
Voilà un lien avec nginx, et là non plus il n’y a pas de lien symbolique.

Il est pour Debian 11/10 mais valable pour 12.

C’est TOI qui m’as donné un tutoriel pour Apache alors que j’ai dit dès mon premier message que j’utilisais Nginx.
Après, libre à toi de ne pas te préoccuper de ce qu’a besoin celui qui ouvre un fil de forum avant d’y répondre.
Sur ton dernier tutoriel, on remarque dans les commentaires que la configuration de Nginx donne une erreur 404.
J’aimerais autant avoir un tutoriel qui fonctionne, car un tutoriel qui ne fonctionne pas, c’est crade.
En tout cas, ça fonctionne sans lien.

SAlut,
quand on aide beaucoup de gens,comme le fait zargos, on a tendance à rater une ligne quand elle n’est pas mise en avant.

Pour pouvoir aider , il faut aussi que les infos soient complètes :

  • on ne sait pas quel debian ( 8/9/10/11/12/13 ?)
  • on ne sait pas comment tu as installé nginx, phpmyadmin ( dépots, autre ) ; quelles configurations tu as changé ou est-ce tout neuf?
  • on n’a pas les messages d’erreurs : que donnent les logs de nginx?
  • quand tu fais un truc, puisque tu n’as pas réussi à aller jusqu’u bout, peut-être fais-tu des erreurs intermédiaires, donc donnes toujours les commandes effectuées : par exemple quand tu dis « Je viens de désinstaller et de purger phpmyadmin » , as-tu vérifieé , par exemple que /usr/share/phpmyadmin avait disparu

En tout cas sur le site nginx. pas de phpmyadmin, sur le site de phpmyadmin pas de nginx

1 J'aime

Bonjour, dindoun.
Quelle mauvaise foi.
Vous ne ferez pas croire que Zargos n’est capable de faire attention à un message de cinq lignes.
D’autre part, aider beaucoup de personnes ne justifie pas de ne pas faire attention à ce qu’elles disent, car c’est quand même un minimum.

On sait comment j’ai installé phpmyadmin dès mon premier message.
Comme vous n’avez pas lu mon premier message, je vous cite la seconde ligne de mon premier message : « J’ai installé le paquet des dépôts de phpmyadmin et je ne sais pas comment faire pour faire fonctionner le logiciel. »

Non, je n’ai pas vérifié que le gestionnaire de paquet avait fait son boulot quand j’ai désinstallé et purgé phpmyadmin, car j’ai confiance en ce gestionnaire de paquet que je connais depuis au moins vingt ans. Si vous mettez en doute son efficacité, merci d’en apporter les preuves.

Oui, le site de Nginx ne parle pas de phpmyadmin et le site de phpmyadmin ne parle pas de Nginx.
Tout le monde peut comprendre que le site d’un serveur WEB a mieux à faire que de parler de toutes les applications WEB disponible.
De même, le site de phpmyadmin a sans doute mieux à faire que de parler de tous les serveurs WEB du marché.

Enfin bon, votre message ne sert à rien puisque ma question est résolue et je suis passé à autre chose depuis.

3 messages ont été fusionnés à un sujet existant : Gestion des accès et su/sudo

bon STOP la récréation on reviens au sujet …

PS : grâce à vous je vais avoir du ménage.

Pour résumer que ce soit avec Nginx ou Apache la méthode d’utilisation reste la même, PHPMyAdmin est à placé dans un vhost et le fichier de configuration est à récupérer comme d’habitude.

Pour ce qui est du paquets provenant des dépôts j’ai trop rien contre mais il ne prends pas en charge Nginx correctement (cela devrait être signalé mais bon …).

En règle générale je récupère le paquets provenant du projet :

wget https://files.phpmyadmin.net/phpMyAdmin/X.X.X/phpMyAdmin-X.X.X-all-languages.tar.gz
tar -zxvf phpMyAdmin-X.X.X-all-languages.tar.gz
sudo mv phpMyAdmin-X.X.X-all-languages /usr/share/phpMyAdmin
sudo cp -pr /usr/share/phpMyAdmin/config.sample.inc.php /usr/share/phpMyAdmin/config.inc.php
sudo vim /usr/share/phpMyAdmin/config.inc.php
$cfg['blowfish_secret'] = '?????????????????????'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

A ce moment on adapte la configuration à ces besoins et on s’assure d’avoir les modules php suivants pour le bon fonctionnement : php-json php-mbstring php-xml

On s’occupe de la partie Mysql :

sudo mysql < /usr/share/phpMyAdmin/sql/create_tables.sql -u root -p
sudo mysql -u root -p

Dans le shell :

CREATE USER 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

On s’occupe du vhost :

sudo nano /etc/nginx/conf.d/phpMyAdmin.conf

On adapte au besoin :

server {
   listen 80;
   server_name XXXXXXXXXXXXXXXX;
   root /usr/share/phpMyAdmin;
   location / {
      index index.php;
   }
## Images and static content is treated different
   location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
      access_log off;
      expires 30d;
   }
   location ~ /\.ht {
      deny all;
   }
   location ~ /(libraries|setup/frames|setup/libs) {
      deny all;
      return 404;
   }
   location ~ \.php$ {
      include /etc/nginx/fastcgi_params;
      fastcgi_pass unix:/run/php/phpX-X-fpm.sock;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$fastcgi_script_name;
   }
}

PS : Ne pas oublier la création/permissions au dossier temporaire de PHPMyAdmin.

Franchement des tutoriels ils y en a pléthore donc par pitié si vous en proposez un à quelqu’un assurez vous à minima de lui préciser si il faut adapter …

PS : 2 En règle générale je ne déploie quasiment plus que par Ansible mes stacks applicatives, via des rôles adaptés depuis ceux sur Ansible galaxy

PS3 : Pour les remarques sur la sécurité, je dirais aussi que l’on peux aussi très bien se passer de PHPMyAdmin :wink:

1 J'aime

L’important, c’est que maintenant, ça fonctionne avec le paquet APT des dépôts sans avoir besoin d’un lien alors que je n’ai aucun vhost pour Nginx. Enfin, je ne vais pas chercher plus loin du moment que ça fonctionne.
Le plus drôle, c’est que j’avais besoin de phpmyadmin pour récupérer le mot de passe admin de Joomla! et qu’hier, l’équipe de Joomla! a mis à disposition un fichier php empaqueté qui permet de réinitialiser le mot de passe admin.
Bon, je vais quand même garder phpmyadmin en cas de besoin, c’est quand même plus conviviale que le terminal.

Tu parviens à atteindre en web à une web application sans vhost ?

Tu peux très bien dédié un vhost comme recycler le vhost par défaut (que d’ailleurs je ne recommande pas d’utiliser).
De manière générale je conserve le vhost par défaut pour gérer mon monitoring (dans le cas de répartition de charges avec plusieurs frontaux, test de santé et autres) et dédie systématiquement des vhosts pour mes applications servi par le serveur web.

PS : @ignace1972 tu as le droit d’indiquer via la petite coche le message où réside ta solution fonctionnelle :wink:

J’ai la config nginx.conf pour Wordpress, une autre dans site-avalable pour Joomla! et c’est tout.
En fait, j’ai fait le tuto de DigitalOcéan puis je me suis aperçu que ça fonctionnait avec le lien, puis je me suis aperçu que ça fonctionnait avec ignace72.eu/phpmyadmin, donc j’ai supprimé le lien et je laisse comme ça puisque ça fonctionne.

salut,

j’ai essayé aussi cette méthode , mais j’a iété bloqué par l’absence de conf-available

d’après ce que tu dis , il faut juste créer /etc/nginx/conf.d/phpMyAdmin.conf , pas de a2enconf ?

pour server_name, je peux mettre localhost?

pas de création de /usr/share/phpMyAdmin/tmp/ ?

PS

désolé je ne n’essayerais plus de t’aider pour me faire insulter

justement , il reste des traces : je ne dis jamais rien que je n’essaie moi-même , c’est pour ça que , n’ayant pas réussi , je n’ai pas proposé de méthode. Par contre /usr/share/phmmyadmin n’est pass toujours nettoyé après un purge remove

C’est le vhost dédié, oui

Nope c’est pour Apache ça, tu fais un lien symbolique vers sites-enabled ou tu colle le fichier à cet endroit, le include présent dans le fichier générale fera le reste … un simple reload et c’est parti.

Nginx sur cet aspect est bien plus basique que Apache.

Si il doit y avoir ça pour régler les trois (de souvenir j’en déploie quasiment jamais et à chaque fois via ansible) :

$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';
$cfg['TempDir'] = '';

https://docs.phpmyadmin.net/fr/latest/config.html

désolé je ne n’essayerais plus de t’aider pour me faire insulter

Il n’existe aucune insulte dans ce que je vous ai dit, mais je survivrai à votre absence d’aide.