MySQL : Configuration et sécurisation
Table des matières
Bien souvent, le répertoire de travail d'apache /var/www et celui de mysql se trouve dans /var/lib/mysql
Le principal fichier de configuration d'apache est httpd.conf ou apache2.conf situé dans /etc/httpd ou /etc/apache2.
Pour mysql il s'agit de /etc/my.cnf et pour PHP, /etc/php.ini.
Par défaut, la configuration de LAMP "fonctionne bien".
Néanmoins, il est possible de changer quelques informations dedans. Cela peut être utile dans certains cas.
Si on souhaite accéder à nos bases mysql depuis l'extérieur, il est nécessaire de commenter la ligne skip-networking et de modifier la ligne bind-address
Il ne faut pas oublier d'ouvrir le port 3306 (port par défaut) dans le pare-feu.
Redémarrer le service mysql pour prendre en compte les modifications (une des 3 commandes suivant la distribution) :
Je conseille toujours de créer un deuxième utilisateur avec mot de passe, avec tous les droits pour travailler (un utilisateur en localhost et partout):
Si le site web installé est destiné à uploader des fichiers, il est possible que PHP vous refuse des fichiers au delà d'une limite.
Modifier dans ce cas les lignes
post_max_size = 8M
et
upload_max_file_size = 16M
par les valeurs désirées.
Configuration des services
Bien souvent, le répertoire de travail d'apache /var/www et celui de mysql se trouve dans /var/lib/mysql
Le principal fichier de configuration d'apache est httpd.conf ou apache2.conf situé dans /etc/httpd ou /etc/apache2.
Pour mysql il s'agit de /etc/my.cnf et pour PHP, /etc/php.ini.
Par défaut, la configuration de LAMP "fonctionne bien".
Néanmoins, il est possible de changer quelques informations dedans. Cela peut être utile dans certains cas.
MySQL (MariaDB)
Si on souhaite accéder à nos bases mysql depuis l'extérieur, il est nécessaire de commenter la ligne skip-networking et de modifier la ligne bind-address
Code TEXT :
<résultat omis> #skip-networking <résultat omis> bind-address=0.0.0.0 <résultat omis>
Il ne faut pas oublier d'ouvrir le port 3306 (port par défaut) dans le pare-feu.
Redémarrer le service mysql pour prendre en compte les modifications (une des 3 commandes suivant la distribution) :
Code BASH :
/etc/init.d/mysqld restart
Code BASH :
service mysqld restart
Code BASH :
systemctl restart mysqld.service
Je conseille toujours de créer un deuxième utilisateur avec mot de passe, avec tous les droits pour travailler (un utilisateur en localhost et partout):
Code SQL :
CREATE USER 'utilisateur'@'%' IDENTIFIED BY 'motdepasse'; GRANT ALL PRIVILEGES ON * . * TO 'utilisateur'@'%' IDENTIFIED BY 'motdepasse' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ; CREATE USER 'utilisateur'@'localhost' IDENTIFIED BY 'motdepasse'; GRANT ALL PRIVILEGES ON * . * TO 'utilisateur'@'localhost' IDENTIFIED BY 'motdepasse' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
PHP
Si le site web installé est destiné à uploader des fichiers, il est possible que PHP vous refuse des fichiers au delà d'une limite.
Modifier dans ce cas les lignes
post_max_size = 8M
et
upload_max_file_size = 16M
par les valeurs désirées.