Piwigo Configuration MySQL
L'installation de l'application Piwigo est réalisée sur MySql. L'initialisation de la base de données s'effectue lors du premier accès à l'application Piwigo. Il est préférable de créer l'utilisateur et la base de données, afin de ne pase avoir à renseigner le compte administrateur lors de l'installation.
Sommaire
Votre avis
Nobody voted on this yet
|
|
Paramétrage MySql
Après installation de Piwigo, l'utilisation peut entraîner des erreurs de requêtes sur la base de données, comme l'exemple suivant.
Warning: [mysql error 3065] Expression #1 of ORDER BY clause is not in SELECT list, references column 'piwigo.piwigo_images.hit' which is not in SELECT list; this is incompatible with DISTINCT SELECT DISTINCT(id) FROM piwigo_images INNER JOIN piwigo_image_category AS ic ON id = ic.image_id WHERE hit > 0 ORDER BY hit DESC, id DESC LIMIT 15 ; in /var/opt/piwigo/2.8.2/include/dblayer/functions_mysqli.inc.php on line 832 Fatal error: Uncaught Error: Call to a member function fetch_assoc() on boolean in /var/opt/piwigo/2.8.2/include/dblayer/functions_mysqli.inc.php:893 Stack trace: #0 /var/opt/piwigo/2.8.2/include/section_init.inc.php(499): query2array('\nSELECT DISTINC...', NULL, 'id') #1 /var/opt/piwigo/2.8.2/index.php(27): include('/var/opt/piwigo...') #2 {main} thrown in /var/opt/piwigo/2.8.2/include/dblayer/functions_mysqli.inc.php on line 893
Ces erreurs sont liées au paramétrage de MySql fourni dans le paquet Ubuntu, et la façon dont sont écrites les requêtes dans Piwigo. Ce problème est connu est a été référencé dans le ticket suivant : https://github.com/Piwigo/Piwigo/issues/376
L'équipe ne considère pas cela comme un bug et founi le paramétrage sql-mode = ""
à appliquer dans la configuration de MySql.
Dans le cadre de cette installation, la configuration est mise en place dans le fichier /var/opt/mysql/mysqld_custom.cnf
, sur lequel un lien est placé sous /etc/mysql/mysql.conf.d/mysqld_custom.cnf
.
[mysqld]
sql-mode = ""
Création de la base
Un nouveau schéma est créé.
mysql> CREATE DATABASE piwigo CHARACTER SET UTF8;
Query OK, 1 row affected (0.00 sec)
Création du compte MySQL
Un compte est mis en place pour ne pas interférer avec les autres installations.
mysql> CREATE USER 'piwigo'@'localhost' IDENTIFIED BY 'PIWIGO_PASSWORD';
Query OK, 0 ROWS affected (0.00 sec)
mysql> GRANT ALL ON piwigo.* TO 'piwigo'@'localhost';
Query OK, 0 ROWS affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 ROWS affected (0.00 sec)
Où PIWIGO_PASSWORD
est remplacé par le mot de passe souhaité.
Permissions
Lors de la création du compte, les permissions accordées sont totales. En effet, l'installation va créer tous les éléments dans la base de données. Cependant, une fois l'installation terminée, ces permissions sont trop importantes. Seules les manipulations dans les tables sont nécessaires et les droits doivent être diminués avec les commandes suivantes.
mysql> REVOKE ALL ON piwigo.* FROM 'piwigo'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT CREATE, SELECT, INSERT, UPDATE, DELETE, DROP, LOCK TABLES ON piwigo.* TO 'piwigo'@'localhost';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)