Вступление
phpMyAdmin - это удобный веб-инструмент администрирования баз данных MySQL, который может сэкономить массу времени при управлении базами данных на основе команд. В этой статье я покажу вам, как установить и защитить phpMyAdmin в приложении WordPress One-Click.
Предпосылки
Я предполагаю, что вы развернули приложение WordPress One-Click с нуля и вошли в систему как root. Пользователи без полномочий root должны будут использовать sudo
команду.
Шаг первый: установите phpMyAdmin
Посетите официальный веб-сайт phpMyAdmin в своем браузере, нажмите на ссылку, phpMyAdmin-4.4.7-all-languages.tar.bz2
чтобы загрузить архивный файл с тем же именем на локальный компьютер. Затем загрузите его в каталог /var/www/html
на вашем VPS с WinSCP или аналогичным инструментом SFTP.
Распакуйте архив с помощью следующих команд из вашего терминала:
cd /var/www/html
tar -jxvf phpMyAdmin-4.4.7-all-languages.tar.bz2
Чтобы защитить phpMyAdmin от несанкционированного доступа, вы должны переименовать вновь созданный phpMyAdmin
каталог в другое необычное и частное имя. Мы используем pmapma
здесь.
mv phpMyAdmin-4.4.7-all-languages pmapma
Теперь нам нужно создать файл конфигурации для phpMyAdmin. Сделайте копию файла config.default.php
и переименуйте его в config.inc.php
:
cd pmapma
cp config.sample.inc.php config.inc.php
Отредактируйте config.inc.php
с помощью текстового редактора vi.
vi config.inc.php
Заполните секрет blowfish, оставьте все остальные параметры в покое.
$cfg['blowfish_secret'] = 'InputRandomCharactersHere';
Замените InputRandomCharactersHere
любые символы, не более 46 бит, и не оставляйте их пустыми.
Сохраните и выйдите из vi.
:wq
Шаг третий: предоставить разрешения
Зайдите http://your_host_IP/pmapma
из вашего браузера. Вы столкнетесь с ошибкой разрешения для каталога /var/lib/php/fpm/session/
. Вы можете исправить ошибку, изменив владельца этого каталога на nginx
.
chown nginx /var/lib/php/fpm/session/
Обновив страницу из браузера, вы обнаружите, что сообщение об ошибке исчезло. Теперь вы можете войти с правами суперпользователя MySQL. Вы можете получить это из файла /root/.my.cnf
.
cat /root/.my.cnf
Шаг четвертый: Безопасный phpMyAdmin
phpMyAdmin - мощный инструмен��, вы никогда не захотите, чтобы неавторизованный пользователь имел к нему доступ. Таким образом, мы можем добавить дополнительный шлюз аутентификации в интерфейс входа в систему phpMyAdmin.
Во-первых, вам нужно создать зашифрованный пароль с вашего терминала.
openssl passwd
Введите и подтвердите пароль, который вы хотите использовать. Затем зашифрованная версия введенного вами пароля отобразится на экране. Запишите это на бумаге, мы будем использовать это позже. Зашифрованный пароль должен быть примерно таким:
rs4D8QYVwojBI
Теперь создайте файл аутентификации в каталоге хранения зашифрованного текста Nginx /etc/nginx/htpasswd/
. Мы будем использовать pma
здесь имя файла , не забудьте заменить его на собственное имя файла.
vi /etc/nginx/htpasswd/pma
Добавьте имя пользователя, которое вы хотите использовать, и зашифрованный пароль, который вы только что сгенерировали, в этот файл в следующем формате.
pmauser:rs4D8QYVwojBI
Не забудьте заменить имя пользователя pmauser
и зашифрованный пароль rs4D8QYVwojBI
своими собственными.
Сохраните и выйдите из vi.
:wq
Далее вам нужно изменить файлы vhost в /etc/nginx/conf.d
: wordpress_http.conf
и wordpress_https.conf
.
В случае ошибки конфигурации создайте их резервную копию.
cp /etc/nginx/conf.d/*.conf /root/
В файле wordpress_http.conf
найдите блок, начинающийся с location ^~ /wp-admin/ {
:
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;
}
}
Сделайте копию всего блока прямо под ним, затем измените wp-admin
в первой строке pmapma
, а wpadmin
в третьей строке pma
. Не изменяйте никакое другое содержимое.
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;
}
}
Не забудьте заменить имя каталога и имя pmapma
файла pma
своими собственными.
Сохраните и выйдите из vi.
:wq
Также вам нужно найти аналогичный блок в файле wordpress_https.conf
и изменить файл таким же образом.
Наконец, чтобы изменения вступили в силу, вам нужно перезапустить веб-сервер.
service nginx restart && service php-fpm restart
Вот и все. Вы установили и защитили phpMyAdmin в приложении WordPress Vultr One-Click.