introduction
phpMyAdmin est un outil d'administration de base de données MySQL basé sur le Web qui peut vous faire gagner beaucoup de temps grâce à la gestion de la base de données commandée par les commandes. Dans cet article, je vais vous montrer comment installer et sécuriser phpMyAdmin sur l'application WordPress en un clic.
Conditions préalables
Je suppose que vous avez déployé une application WordPress en un clic à partir de zéro et que vous vous êtes connecté en tant que root. Les utilisateurs non root devront utiliser la sudo
commande.
Première étape: installer phpMyAdmin
Visitez le site officiel de phpMyAdmin depuis votre navigateur, cliquez sur le lien phpMyAdmin-4.4.7-all-languages.tar.bz2
pour télécharger un fichier d'archives du même nom sur votre ordinateur local. Ensuite, téléchargez-le dans le répertoire /var/www/html
de votre VPS avec WinSCP ou un outil SFTP similaire.
Décompressez le fichier d'archive avec les commandes suivantes de votre terminal:
cd /var/www/html
tar -jxvf phpMyAdmin-4.4.7-all-languages.tar.bz2
Pour protéger phpMyAdmin contre tout accès non autorisé, vous devez renommer le phpMyAdmin
répertoire nouvellement créé en un autre nom inhabituel et privé. Nous utilisons pmapma
ici.
mv phpMyAdmin-4.4.7-all-languages pmapma
Maintenant, nous devons créer un fichier de configuration pour phpMyAdmin. Faites une copie du fichier config.default.php
et renommez-le en config.inc.php
:
cd pmapma
cp config.sample.inc.php config.inc.php
Modifiez config.inc.php
avec l'éditeur de texte vi.
vi config.inc.php
Remplissez le secret de Blowfish, laissez tous les autres paramètres seuls.
$cfg['blowfish_secret'] = 'InputRandomCharactersHere';
Remplacez-le InputRandomCharactersHere
par des caractères ne dépassant pas 46 bits et ne le laissez pas vide.
Enregistrez et quittez vi.
:wq
Troisième étape: accorder des autorisations
Visitez http://your_host_IP/pmapma
depuis votre navigateur. Vous rencontrerez une erreur d'autorisation dans le répertoire /var/lib/php/fpm/session/
. Vous pouvez corriger l'erreur en changeant le propriétaire de ce répertoire en nginx
.
chown nginx /var/lib/php/fpm/session/
Actualisez la page à partir de votre navigateur, vous constaterez que l'invite d'erreur a disparu. Vous pouvez maintenant vous connecter avec les informations d'identification racine MySQL. Vous pouvez l'obtenir à partir du fichier /root/.my.cnf
.
cat /root/.my.cnf
Quatrième étape: sécuriser phpMyAdmin
phpMyAdmin est un outil puissant, vous ne voudriez jamais qu'un utilisateur non autorisé y accède. Ainsi, nous pouvons ajouter une porte d'authentification supplémentaire à l'interface de connexion phpMyAdmin.
Tout d'abord, vous devez créer un mot de passe crypté à partir de votre terminal.
openssl passwd
Saisissez et confirmez le mot de passe que vous souhaitez utiliser. Ensuite, une version cryptée du mot de passe que vous saisissez s'affichera à l'écran. Notez-le sur le papier, nous l'utiliserons plus tard. Le mot de passe chiffré devrait ressembler à ceci:
rs4D8QYVwojBI
Maintenant, créez un fichier d'authentification dans le répertoire de stockage de texte chiffré Nginx /etc/nginx/htpasswd/
. Nous utiliserons le nom de fichier pma
ici, n'oubliez pas de le remplacer par votre propre nom de fichier.
vi /etc/nginx/htpasswd/pma
Ajoutez le nom d'utilisateur que vous souhaitez utiliser et le mot de passe crypté que vous venez de générer dans ce fichier au format suivant.
pmauser:rs4D8QYVwojBI
N'oubliez pas de remplacer le nom d'utilisateur pmauser
et le mot rs4D8QYVwojBI
de passe crypté par les vôtres.
Enregistrez et quittez vi.
:wq
Ensuite, vous devez modifier les fichiers vhost dans /etc/nginx/conf.d
: wordpress_http.conf
et wordpress_https.conf
.
En cas d'erreur de configuration, créez-en une sauvegarde.
cp /etc/nginx/conf.d/*.conf /root/
Dans le fichier wordpress_http.conf
, recherchez le bloc commençant par location ^~ /wp-admin/ {
, il doit être:
location ^~ /wp-admin/ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd/wpadmin;
location ~* \.(htaccess|htpasswd) {
deny all;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-handler-http;
fastcgi_read_timeout 60s;
}
}
Faites une copie dans tout le bloc juste en dessous, puis modifiez-la wp-admin
dans la première ligne vers pmapma
et wpadmin
dans la troisième ligne vers pma
. Ne modifiez aucun autre contenu.
location ^~ /pmapma/ {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/htpasswd/pma;
location ~* \.(htaccess|htpasswd) {
deny all;
}
location ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_pass php-handler-http;
fastcgi_read_timeout 60s;
}
}
N'oubliez pas de remplacer le nom du répertoire pmapma
et le nom du fichier pma
par les vôtres.
Enregistrez et quittez vi.
:wq
Vous devez également rechercher un bloc similaire dans le fichier wordpress_https.conf
et modifier le fichier de la même manière.
Enfin, pour appliquer les modifications, vous devez redémarrer le serveur Web.
service nginx restart && service php-fpm restart
C'est ça. Vous avez installé et sécurisé phpMyAdmin sur l'application WordPress Vultr One-Click.