pense-bête de bruno sanchiz

Accueil > Programmation > mysql - mariadb > installation de phpmyadmin

installation de phpmyadmin

Publié le 8 décembre 2024, dernière mise-à-jour le 21 janvier 2025, > 5 visites, >> visites totales.

  1. installation normale
  2. autre installation
  3. configuration
  4. DOC
  5. Erreurs

installation normale

systemctl stop apache2 && apt-get install  phpmyadmin && systemctl start apache2 && a2enconf phpmyadmin && systemctl reload apache2 && systemctl stop apache2 && systemctl start apache2

marche pour trixie/deb13, on obtient ce fichier /etc/apache2/conf-available/phpmyadmin.conf :

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    # limit libapache2-mod-php to files and directories necessary by pma
    <IfModule mod_php7.c>
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/
    </IfModule>

    # PHP 8+
    <IfModule mod_php.c>
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/usr/share/doc/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/:/usr/share/javascript/
    </IfModule>

</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>

autre installation

Si on ne peut pas l’installer normalement, le télécharger sur le site https://files.phpmyadmin.net/phpMyAdmin/ et prendre celui avec le plus grand numéro ; dans l’exemple en dessous on a le fichier phpMyAdmin-4.9.5-all-languages.zip.

7z x phpMyAdmin-4.9.5-all-languages.zip && mv phpMyAdmin-4.9.5-all-languages /usr/share/phpmyadmin && cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php && mkdir -p /usr/share/phpmyadmin/tmp

créer un fichier /etc/apache2/conf-available/phpmyadmin.conf :

# phpMyAdmin default Apache configuration

Alias /phpmyadmin /usr/share/phpmyadmin

<Directory /usr/share/phpmyadmin>
    Options SymLinksIfOwnerMatch
    DirectoryIndex index.php

    <IfModule mod_php5.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>
    <IfModule mod_php.c>
        <IfModule mod_mime.c>
            AddType application/x-httpd-php .php
        </IfModule>
        <FilesMatch ".+\.php$">
            SetHandler application/x-httpd-php
        </FilesMatch>

        php_value include_path .
        php_admin_value upload_tmp_dir /var/lib/phpmyadmin/tmp
        php_admin_value open_basedir /usr/share/phpmyadmin/:/etc/phpmyadmin/:/var/lib/phpmyadmin/:/usr/share/php/php-gettext/:/usr/share/php/php-php-gettext/:/usr/share/javascript/:/usr/share/php/tcpdf/:/usr/share/doc/phpmyadmin/:/usr/share/php/phpseclib/
        php_admin_value mbstring.func_overload 0
    </IfModule>

</Directory>

# Disallow web access to directories that don't need it
<Directory /usr/share/phpmyadmin/templates>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/libraries>
    Require all denied
</Directory>
<Directory /usr/share/phpmyadmin/setup/lib>
    Require all denied
</Directory>

PUIS a2enconf phpmyadmin.conf


Configuration de phpmyadmin

Les variables de phpmyadmin sont configurables dans un fichier config.inc.php. On peut trouver les variables dans https://docs.phpmyadmin.net/fr/latest/config.html

cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php

Exemple : augmenter le temps pour les exécutions de scripts ( importer par exemple )
echo -e "\$cfg['ExecTimeLimit'] = 3000;" >> /usr/share/phpmyadmin/config.inc.php


DOC

ERREUR : Access denied for user ’phpmyadmin’@’localhost

sudo mysql
use mysql;
CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'supersecretpassword';
SET PASSWORD FOR 'phpmyadmin'@'localhost' = PASSWORD('supersecretpassword');
GRANT ALL PRIVILEGES ON *.* TO 'phpmyadmin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
exit

ERREUR : phpmyadmin mal configuré : créer la base phpmyadmin

importer le fichier /usr/share/phpmyadmin/sql/create_tables.sql

ERREUR : la configuration/le site a été réinitialisée

Si c’est pendant un upload, augmenter la taille des fichiers de apache et le temps nécessaire pour le lire :

sed -e "s/max_execution_time\ =\ \([0-9]*\)/max_execution_time = 30000 /" -e "s/max_input_time\ =\ \([0-9]*\)/max_input_time = 60000 /" -e "s/^session.gc_maxlifetime.*/session.gc_maxlifetime=72000/" -e "s#memory_limit =.*#memory_limit = 4096M#" -e "s#post_max_size =.*#post_max_size = 800M#" -e "s#upload_max_filesize =.*#upload_max_filesize = 800M#" -i /etc/php/[0-9].[0-9]/apache2/php.ini && systemctl restart apache2

remise normale :
sed -e "s/max_execution_time\ =\ \([0-9]*\)/max_execution_time = 30 /" -e "s/max_input_time\ =\ \([0-9]*\)/max_input_time = 60 /" -e "s/^session.gc_maxlifetime.*/session.gc_maxlifetime=1440/" -e "s#memory_limit =.*#memory_limit = 128M#" -e "s#post_max_size =.*#post_max_size = 8M#" -e "s#upload_max_filesize =.*#upload_max_filesize = 2M#" -i /etc/php/[0-9].[0-9]/apache2/php.ini && systemctl restart apache2

ERREUR : La limite de temps pour l’exécution du script a été atteinte

Voir au dessus #configuration

[bruno sanchiz]