PhpMyAdmin

De Banane Atomic
Révision datée du 19 novembre 2016 à 22:01 par Nicolas (discussion | contributions) (→‎uwsgi)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Installation

Bash.svg
sudo pacman -S phpmyadmin php-mcrypt

Configuration Apache

Bash.svg
# Copy the example configuration file to your httpd configuration directory.
cp /etc/webapps/phpmyadmin/apache.example.conf /etc/httpd/conf/extra/httpd-phpmyadmin.conf
/etc/httpd/conf/httpd.conf
# Ajoutez la prise en compte du fichier de configuration de phpMyAdmin
Include conf/extra/httpd-phpmyadmin.conf

# Ajoutez les lignes suivantes pour PHP 5.x
LoadModule php5_module        modules/libphp5.so
AddHandler php5-script php

# Ajoutez index.php
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>
.htacces
# N'autoriser l'accès que depuis le poste local
deny from all
allow from localhost
allow from 127.0.0.1
allow from ::1
/etc/php/php.ini
extension=mcrypt.so
extension=mysql.so
; optional
extension=mysqli.so

Configuration Nginx

/etc/nginx/nginx.conf
server {
    listen      80;
    server_name phpmyadmin.odroid;
    root        /usr/share/webapps/phpMyAdmin;
    index       index.php;
    
    location ~ \.php$ {
        try_files      $uri =404;

        # uwsgi
        include uwsgi_params;
        uwsgi_modifier1 14;
        uwsgi_pass unix:/run/uwsgi/phpmyadmin.sock;

        # php-fpm
        fastcgi_pass    unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index   index.php;
        include         /etc/nginx/fastcgi.conf;
    }
}

uwsgi

/etc/uwsgi/phpmyadmin.ini
[uwsgi]

logger = file:/var/log/uwsgi/%n.log

; the user and group id of the process once it’s started
uid = http
gid = http

socket = /run/uwsgi/%n.sock
master = true
chdir = /usr/share/webapps/phpMyAdmin

; php
plugins = php
php-sapi-name = apache
php-docroot = /usr/share/webapps/phpMyAdmin
php-index = index.php

; clear environment on exit
vacuum = true

php-set = extension=mysqli.so
php-set = extension=bz2.so
php-set = extension=zip.so

php-set = open_basedir=/usr/share/webapps/phpMyAdmin/:/etc/webapps/phpmyadmin/:/tmp/

; PHP Fatal error:  session_start(): Failed to initialize storage module: files (path: )
php-set = session.save_path=/tmp

Configuration PhpMyAdmin

/etc/php/php.ini
extension=mysqli.so
extension=mcrypt.so
; optionnel
extension=bz2.so
extension=zip.so

open_basedir = ...:/usr/share/webapps/:/etc/webapps

Setup script

Bash.svg
# créer un dossier de configuration accessible en écriture
cd /usr/share/webapps/phpMyAdmin
mkdir config
chgrp http config
chmod g+w config

Aller à l'url « http://mon-serveur-phpmyadmin/setup » pour lancer le script de configuration.

Le fichier « /usr/share/webapps/phpMyAdmin/config/config.inc.php » est créer lors de l'appui sur le bouton « Save ».
Il faut ensuite le déplacer dans « /etc/webapps/phpMyAdmin » et lui réassigne les permissions root:root 644
Supprimer le dossier « /usr/share/webapps/phpMyAdmin/config » une fois la configuration terminée.

Enabling Configuration Storage

/etc/webapps/phpmyadmin/config.inc.php
// Décommenter les 2 lignes suivantes et modifier le mot de passe
$cfg['Servers'][$i]['controluser'] = 'pma';
$cfg['Servers'][$i]['controlpass'] = 'mot de passe';
// Décommenter ensuite toutes les lignes du paragraphe /* Storage database and tables */

Création de la base de données phpMyAdmin

Mysql.svg
# se logger au serveur avec le compte root
# exécuter le script sql suivant
source /usr/share/webapps/phpMyAdmin/examples/create_tables.sql

Création de l'utilisateur pma

Mysql.svg
GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'mot de passe';

GRANT SELECT (
    Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
    Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
    File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
    Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
    Execute_priv, Repl_slave_priv, Repl_client_priv
    ) ON mysql.user TO 'pma'@'localhost';

GRANT SELECT ON mysql.db TO 'pma'@'localhost';

GRANT SELECT ON mysql.host TO 'pma'@'localhost';

GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
    ON mysql.tables_priv TO 'pma'@'localhost';

# autorise pma a modifier la bdd phpmyadmin
GRANT SELECT, INSERT, UPDATE, DELETE, ALTER ON phpmyadmin.* TO 'pma'@'localhost';

Supprimer toutes les tables d'une base de données

Il peut arriver que l'utilisateur n'est pas les droits suffisant pour supprimer une BdD. Il convient donc d'en supprimer toutes les tables.
Pour se faire :

  • sélectionner la BdD : un tableau s'afficher contenant les tables de la BdD
  • tout en bas du tableau cliquer sur le lien Tout cocher
  • sur la même ligne, dans le menu déroulant Pour la sélection :, choisissez Supprimer

DROP DATABASE

Cette commande n'est pas autorisée dans la fenêtre de requêtes SQL.
Aller dans l'onglet Databases → sélectionner une base de données → Drop

Renommer une base de donnée

Sélectionner la bdd → Operations → Rename database to

Copier une base de donnée

Sélectionner la bdd → Operations → Copy database