introduzione
phpMyAdmin è un comodo strumento di amministrazione del database MySQL basato sul web che può farti risparmiare un sacco di tempo dalla gestione del database basata sui comandi. In questo articolo, ti mostrerò come installare e proteggere phpMyAdmin sull'app WordPress con un clic.
Prerequisiti
Presumo che tu abbia distribuito un'app WordPress One-Click da zero e abbia effettuato l'accesso come root. Gli utenti non root dovranno utilizzare il sudo
comando.
Fase 1: installare phpMyAdmin
Visita il sito Web ufficiale di phpMyAdmin dal tuo browser, fai clic sul collegamento phpMyAdmin-4.4.7-all-languages.tar.bz2
per scaricare un file di archivio con lo stesso nome sul tuo computer locale. Quindi caricalo nella directory /var/www/html
sul tuo VPS con WinSCP o uno strumento SFTP simile.
Decomprimi il file di archivio con i seguenti comandi dal tuo terminale:
cd /var/www/html
tar -jxvf phpMyAdmin-4.4.7-all-languages.tar.bz2
Per proteggere phpMyAdmin da accessi non autorizzati, è necessario rinominare la phpMyAdmin
directory appena creata con un altro nome insolito e privato. Usiamo pmapma
qui.
mv phpMyAdmin-4.4.7-all-languages pmapma
Ora, dobbiamo creare un file di configurazione per phpMyAdmin. Crea una copia del file config.default.php
e rinominalo in config.inc.php
:
cd pmapma
cp config.sample.inc.php config.inc.php
Modifica config.inc.php
con l'editor di testo vi.
vi config.inc.php
Inserisci il segreto del pesce palla, lascia da solo qualsiasi altro parametro.
$cfg['blowfish_secret'] = 'InputRandomCharactersHere';
Sostituisci InputRandomCharactersHere
con qualsiasi carattere, non più di 46 bit, e non lasciarlo vuoto.
Salva ed esci vi.
:wq
Fase tre: concedere le autorizzazioni
Visita http://your_host_IP/pmapma
dal tuo browser. Si verificherà un errore di autorizzazione nella directory /var/lib/php/fpm/session/
. È possibile correggere l'errore modificando il proprietario di questa directory in nginx
.
chown nginx /var/lib/php/fpm/session/
Aggiorna la pagina dal tuo browser, scoprirai che il messaggio di errore è scomparso. Ora puoi accedere con le credenziali di root di MySQL. Puoi ottenerlo dal file /root/.my.cnf
.
cat /root/.my.cnf
Fase quattro: proteggere phpMyAdmin
phpMyAdmin è uno strumento potente, non vorresti mai che un utente non autorizzato vi accedesse. Pertanto, possiamo aggiungere un gate di autenticazione aggiuntivo all'interfaccia di accesso phpMyAdmin.
Innanzitutto, devi creare una password crittografata dal tuo terminale.
openssl passwd
Inserisci e conferma la password che desideri utilizzare. Quindi una versione crittografata della password inserita verrà visualizzata sullo schermo. Scrivilo sul foglio, lo useremo più tardi. La password crittografata dovrebbe essere simile a questa:
rs4D8QYVwojBI
Ora, crea un file di autenticazione nella directory di archiviazione del testo cifrato Nginx /etc/nginx/htpasswd/
. Useremo il nome del file pma
qui, ricordati di sostituirlo con il tuo nome file.
vi /etc/nginx/htpasswd/pma
Aggiungi il nome utente che desideri utilizzare e la password crittografata che hai appena generato in questo file nel seguente formato.
pmauser:rs4D8QYVwojBI
Ricorda di sostituire il nome utente pmauser
e la password crittografata rs4D8QYVwojBI
con i tuoi.
Salva ed esci vi.
:wq
Successivamente, è necessario modificare i file vhost in /etc/nginx/conf.d
: wordpress_http.conf
e wordpress_https.conf
.
In caso di errore di configurazione, crearne un backup.
cp /etc/nginx/conf.d/*.conf /root/
Nel file wordpress_http.conf
, trova il blocco che inizia con location ^~ /wp-admin/ {
, dovrebbe essere:
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;
}
}
Crea una copia dell'intero blocco proprio sotto di esso, quindi modifica wp-admin
nella prima riga in pmapma
e wpadmin
nella terza riga in pma
. Non modificare altri contenuti.
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;
}
}
Ricorda di sostituire il nome della directory pmapma
e il nome del file pma
con i tuoi.
Salva ed esci vi.
:wq
Inoltre, è necessario trovare un blocco simile nel file wordpress_https.conf
e modificare il file nello stesso modo.
Infine, per rendere effettive le modifiche, è necessario riavviare il server Web.
service nginx restart && service php-fpm restart
Questo è tutto. PhpMyAdmin è stato installato e protetto sull'app WordPress Vultr One-Click.