Ubuntu phpmyadmin nginx: 404 Page not found | Linuxize
Установите и защитите phpMyAdmin с помощью Nginx в Ubuntu 18.04
В этой статье мы узнаем, как установить и защитить phpMyAdmin с помощью Nginx в Ubuntu 18.04.
phpMyAdmin – наиболее часто используемый бесплатный графический интерфейс для операций Mysql и MariaDB. phpMyAdmin имеет широкий спектр операций на MySQL и MariaDB. Если вам не нравится интерфейс командной строки, попробуйте один раз.
Предварительные условия:
Прежде чем мы начнем, вам понадобятся Ubuntu и Nginx. Вы можете научиться делать это с помощью статьи «Как установить Nginx, MySQL, PHP (стек LEMP) на Ubuntu».
Шаг 1: Установка phpMyAdmin с Nginx в Ubuntu 18.04
Самое первое, что нам нужно сделать, это установить phpMyAdmin в Ubuntu. PhpMyAdmin доступен в репозиториях Ubuntu по умолчанию. Итак, мы будем использовать то же самое.
Примечание
Все команды в этой статье выполняются с правами root. Вы должны использовать команду sudo, если вы не используете пользователя root.
Здесь мы начнем с обновления списка пакетов с помощью следующей команды:
root@andreyex:~$ apt-get update
Теперь установите phpMyAdmin с помощью следующей команды:
root@andreyex:~$ apt-get install phpmyadmin
В процессе установки вам будет предложено выбрать веб-сервер (Apache или Lighttpd). Но мы не собираемся использовать оба из них, поэтому мы не выбираем ни одного из них. Просто нажмите клавишу табуляции и выберите опцию ОК .
После этого вам будет предложено настроить базу данных phpMyAdmin. Выберите Да и установите надежный пароль для пользователя PHPMyAdmin для доступа к MySQL.
Установка завершится сейчас. Здесь мы используем веб-сервер Nginx, поэтому нам необходимо выполнить некоторые настройки в Nginx, чтобы он мог обслуживать файлы приложения PHPMyAdmin. Мы собираемся создать символическую ссылку на файлы приложения PHPMyAdmin в нашей корневой папке документов Nginx с помощью следующей команды:
root@andreyex:~# ln -s /usr/share/phpmyadmin /var/www/html/phpmyadmin
После этого шага наша установка PhpMyAdmin теперь работает. Теперь мы можем получить доступ к интерфейсу приложения, введя IP-адрес или доменное имя наших серверов, после чего в нашем веб-браузере следует « /phpmyadmin».
http://server_domain_or_IP/phpmyadmin
Теперь войдите в систему с любым из ваших пользователей MySQL, созданных вами, или вы можете начать с пользователем root. После этого вы должны получить доступ к административной панели phpMyAdmin.
Шаг 2. Защитите phpMyAdmin с помощью Nginx.
Лучший метод защиты любого из веб-приложений заключается в том, что вы должны скрывать его для других. Итак, здесь мы собираемся изменить URL-адрес по умолчанию веб-интерфейса PHPMyAdmin.
По умолчанию приложение имеет URL-адрес «http://server_domain_or_IP/phpmyadmin». Мы изменим это на что-то нестандартное. Так что доступ к веб-приложению будет сложнее. Сначала перейдите к корню документа Nginx, где мы создадим символическую ссылку для PHPMyAdmin, а затем выполните следующую команду:
root@andreyex:~# mv phpmyadmin mycustomname
Измените mycustomname на свое собственное альтернативное имя. После этой команды вы можете получить доступ к веб-интерфейсу phpmyadmin с помощью приведенного ниже URL-адреса.
http://server_domain_or_IP/mycustomname
Резюме:
Выполнив вышеуказанные процедуры, вы сможете управлять своим сервером MySql через безопасный веб-интерфейс. Phpmyadmin предоставляет большинство функций, доступных через командную строку MySQL. Теперь вы узнали, как установить и защитить phpMyAdmin с помощью Nginx в Ubuntu 18.04. Спасибо за чтение. Счастливого обучения !!!
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Как установить phpmyadmin с nginx на Ubuntu 18.04 2021
phpMyAdmin — это инструмент на основе PHP с открытым исходным кодом для управления серверами MySQL и MariaDB через веб-интерфейс.
phpMyAdmin позволяет вам взаимодействовать с базами данных MySQL, управлять учетными записями пользователей и привилегиями, выполнять SQL-операторы, импортировать и экспортировать данные в различные форматы данных и многое другое.
В этом руководстве рассказывается, как установить phpMyAdmin с Nginx в Ubuntu 18.04.
Предпосылки
Убедитесь, что вы выполнили следующие предварительные условия, прежде чем продолжить этот учебник:
- LEMP (Linux, Nginx, MySQL и PHP 7) установлен на вашем сервере Ubuntu. Зарегистрирован как пользователь с привилегиями sudo.
Хотя это и не обязательно, настоятельно рекомендуется получить доступ к вашему экземпляру phpMyAdmin через HTTPS. Если у вас не включен SSL на ваших сайтах, ознакомьтесь с нашей статьей о том, как обезопасить ваш Nginx с помощью Let’s Encrypt в Ubuntu 18.04.
Установка phpMyAdmin в Ubuntu
Установка phpMyAdmin — довольно простая задача. Начните с обновления списка пакетов:
sudo apt update
Затем выполните следующую команду, чтобы установить пакет phpMyAdmin из репозиториев Ubuntu по умолчанию:
sudo apt install phpmyadmin
Перед установкой phpMyAdmin убедитесь, что в вашей системе установлены Nginx и PHP FPM.
Установщик попросит вас выбрать веб-сервер, который должен быть автоматически настроен для запуска phpMyAdmin. Нет возможности выбрать Nginx, нажмите TAB
чтобы выбрать OK
а затем Enter
. Мы настроим Nginx в следующем разделе.
Вывод
Поздравляем, вы успешно установили phpMyAdmin на свой сервер Ubuntu 18.04. Теперь вы можете начать создавать базы данных, пользователей и таблицы MySQL и выполнять различные запросы и операции MySQL.
ubuntu phpmyadmin mysql mariadb nginx php
Как настроить PhpMyAdmin на NGINX и PHP 7.4
Не всегда удобно пользоваться консолью MySQL для редактирования и создания баз данных. Поэтому многие устанавливают phpMyAdmin, но не знают как настроить PhpMyAdmin на NGINX в связке с PHP
Для опытных пользователей в данном посте не будет ничего нового, а вот для новичков будет шпаргалкой на пути к созданию своего сайта и управления им.
Установка phpMyAdmin + Nginx в Ubuntu 18.04
Предположительно
у вас уже установлен MySQL сервер но еще не установлен phpMyAdmin.
Приступим к установке через терминал, putty и.т.д
sudo apt install phpmyadmin
В процессе установки будет предложено выбрать веб сервер на котором будет работать phpmyadmin. Так как устанавливать мы будем NGINX, то естественно мы просто нажмем enter и продолжим дальше. Далее будет предложено создать базу данных, и создать пароль для нее — выполните требуемое.
Так как phpmyadmin распаковался и находится по пути /usr/share/phpmyadmin , а ваш сайт допусти лежит в директории /home/www/my.site.ru, то нам всего навсего нужно будет создать символьную ссылку таким образом:
ln -s /usr/share/phpmyadmin /home/www/my.site.ru
после
чего в директории сайта появится ссылка на менеджер управления базами
данных. И чтобы зайти в phpmyadmin нам нужно перейти по адресу:
http://my.site.ru/phpmyadmin/
Если вы не установили php 7.4 или другую версию php то phpmyadmin работать не будет
Установка php 7.4, php7.4-fpm и других расширений php
Вводим в терминале команду, которая установит все необходимые расширения для работы php движков:
sudo apt install php7.4 php7.4-fpm php7.4-mbstring php-pear php7.4-mcrypt php7.4-mysql php7.4-gd php7.4-zip php7.4-curl
После установки отредактируем php.ini
sudo nano /etc/php/7.4/fpm/php.ini
включаем поиск по файлу комбинацией клавиш ctrl+w. Вводим строку:
;cgi.fix_pathinfo = 1
раскомментируем и изменим 1 на 0. Чтобы выглядело вот так:
cgi.fix_pathinfo = 0
Данное действие рекомендовано для увеличения безопасности.
И так у нас все готово: расширение php для работы с mySQL установлены, установлен php-fpm для работы c nginx.
перейдем к следующему этапу настройки.
Настройка nginx для работы с phpmyadmin
Создаем конфигурационный файл
sudo nano /etc/nginx/conf.d/my.site.conf
Вставим в него
server {
listen 80;
server_name my.site.ru;
root /home/www/my.site.ru;
charset utf-8;
index index.php index.html;
client_max_body_size 100m;
fastcgi_read_timeout 160s;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
В данном случае вам будет доступен сайт если у вас он есть и phpmyadmin по адресу my.site.ru/phpmyadmin/ .
Если вы хотите чтобы менеджер баз данных был на другом домене, например mysql.my.site.ru, создайте в редакторе зон DNS вашего хостинга специальный поддомен и отредактируйте файл nginx так:
sudo nano /etc/nginx/conf.d/mysql.my.site.conf
server {
listen 80;
server_name mysql.my.site.ru;
root /home/www/my.site.ru/phpmyadmin;
charset utf-8;
index index.php index.html;
client_max_body_size 100m;
fastcgi_read_timeout 160s;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_index index.php;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params;
}
}
Перезагружаем nginx и php fpm
sudo service php7. 4-fpm restart
sudo service nginx restart
Теперь можно проверить все ли работает. На этом всё.
Если есть вопросы, то пишем в комментариях.
Также можете помочь проекту, заранее всем СПАСИБО!!!
.
RSS
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
0
0
vote
Рейтинг статьи
Nginx не могу найти phpMyAdmin
Здравствуйте, я установил новейшую стабильную версию Nginex (1.4.4 ) и хочу установить также phpMyAdmin, к сожалению, при попытке открыть phpMyAdmin в моем браузере через http появляется следующая ошибка:/ / 192 . .. /phpmyadmin:
404 Not Found
nginx/1.4.4
В чем именно причина того, что Nginx не может найти файл phpMyAdmin?
Это содержимое моего файла /etc/nginx/nginx.conf:
user nginx;
worker_processes 4;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
#gzip on;
include /etc/nginx/conf.d/*.conf;
}
Большой Привет
nginx
Поделиться
Источник
user1941083
21 ноября 2013 в 19:50
7 ответов
4
Это действительно не очень хорошая идея, чтобы сделать символ в корне вашего документа, это просто напрашивается на проблемы с ярлыком phmyadmin в www.
Правильный способ сделать это-создать файл с именем php и добавить его в /etc/nginx/sites-available. Вы можете скопировать файл ниже, но изменить номер порта на что-то другое.
server {
listen 30425;
# Don't want to log accesses.
#access_log /dev/null main;
access_log /var/log/nginx/php.acces_log main;
error_log /var/log/nginx/php.error_log info;
root /usr/share/phpmyadmin;
index index.php index.html index.htm;
error_page 401 403 404 /404.php;
location ~ .*.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SERVER_NAME $http_host;
fastcgi_ignore_client_abort on;
}
}
Теперь вам нужно сделать символическую ссылку на каталог сайтов с включенной поддержкой
ЛН-з /etc/nginx/sites-available/php//etc/nginx/sites-enabled
теперь вам нужно добавить этот код в Настройки ведения журнала часть nginx.conf
log_format main ‘$remote_addr – $remote_user [$time_local] ‘
‘”$request” $status $body_bytes_sent “$http_referer” ‘
‘”$http_user_agent” “$http_x_forwarded_for”‘ ;
Теперь вы можете получить доступ к своему phpmyadmin с помощью http://example.com:30425
Поделиться
STH
12 июня 2014 в 15:19
0
Ответы, приведенные здесь, не помогли мне по неизвестным причинам. Я подозреваю, что другие части моего файла conf исключают попадание в каталог phpmyadmin.
Не желая тратить слишком много времени на его исправление, я просто скопировал свой рабочий файл conf с www.example.com на phpmyadmin.example.com и установил каталог в /usr/share/phpmyadmin. Затем я сделал перезагрузку nginx-s, и мне было хорошо идти, даже не пытаясь добраться до сути ошибок 403/502, с которыми я столкнулся, делая это правильно. Я также считаю, что http:/ / phpmyadmin.example.com более защищен от случайных хакеров, пытающихся использовать свои скрипты, чем http://www.example.com/phpmyadmin домен, однако это влечет за собой правильную настройку подстановочного знака для DNS для вашего домена, то есть так, чтобы адрес разрешался на вашем сервере.
Надеюсь, это поможет любому, кто разочарован в простой задаче заставить phpmyadmin работать с nginx.
Поделиться
ʍǝɥʇɐɯ
14 мая 2014 в 13:47
0
Я следовал инструкциям на https:/ / www.digitalocean.com / community/articles/how-to-install-phpmyadmin-on-a-lemp-server и связал nginx и phpMyAdmin с помощью следующей команды:
sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html
(the folder "www" was replaced in the newer versions of Nginx through "html")
sudo service nginx restart
Если я сейчас попытаюсь начать phpMyAdmin через
«http:/ / 192 . .. /phpmyadmin»
в моем браузере появляется следующая ошибка:
403 Forbidden
nginx/1.4.4
Если я попытаюсь начать phpMyAdmin через
«http:// 192 . . . /phpmyadmin/index.php»
файл index.php только загружается.
Большой Привет
Поделиться
user1941083
22 ноября 2013 в 13:54
- phpmyadmin на debian с nginx
Я пытаюсь использовать пакет Деабиана phpmyadmin с nginx. В учебниках они создают символическую ссылку на исходные файлы phpmyadmin из virtualhost, например: $ln -s /usr/share/phpmyadmin/ /var/www/host.com/phpmyadmin Я думаю, что моя первая проблема заключается в том, что nginx работает под никем…
- Не удалось открыть localhost/phpmyadmin с nginx
Перед запуском я установил XAMPP. Теперь я пытаюсь использовать nginx вместо Apache. Для этого я сделал следующие шаги: Установлен nginx (1. c:>cd nginx 1.8.0 2. start nginx). установлен успешно. Теперь я не могу загрузить файлы php и localhost/phpmyadmin.
0
Как объяснил пользователь 1941083.
Вам просто нужно создать символическую ссылку между phpMyAdmin и каталогом вашего сайта.
sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/www
И после этого измените параметр nginx в /etc/nginx/sites-available.
Изменить :
index index.html index.html;
к :
index index.html index.html index.php;
Поделиться
Redy S
09 июня 2014 в 10:32
0
Я знаю, что это поздно, но у меня была та же проблема после того, как я последовал некоторым учебникам и предложениям в интернете, но безрезультатно. Я также попытался ответить @STH на этой странице, но ошибка все еще существует.
Мне пришлось перезапустить следующие службы:
sudo systemctl restart nginx.service
sudo systemctl restart php-fpm
Это сделало трюк: настройте демонов на запуск в Boot, чтобы гарантировать, что все программы LEMP запускаются автоматически после перезагрузки любого сервера:
sudo systemctl enable nginx mysqld php-fpm
Поделиться
Young Emil
02 сентября 2017 в 11:05
0
Просто попробуйте использовать http://domain-name-or-ip-address/phpmyadmin/index.php
Иногда Nginx не использует index.php автоматически, мы должны сказать это, либо изменив местоположение в файле nginx.conf
, либо добавив index. php
вручную в url, как описано выше.
Поделиться
Salman Mohammad
25 февраля 2017 в 13:26
-1
Попробуйте создать символическую связь между местоположением phpmyadmin и nginx www:
sudo ln -s /usr/share/phpmyadmin/ /usr/share/nginx/html
после этого вы можете получить 403 запрещенных, но должны добавить index.php внутри тега сервера, где index.html и другие:
/etc/nginx/sites-available/default
а затем перезапустить nginx
Поделиться
Agli Panci
29 марта 2014 в 14:39
Похожие вопросы:
Nginx + Django + Phpmyadmin конфигурация
Я перенес свой сервер на amazon ec2 и пытаюсь настроить там следующую среду: Nginx спереди обслуживает статический контент, переходя к django для динамического контента. Я также хотел бы…
Конфигурация PhpMyAdmin и nginx, получите phpmyadmin после IP
То, что я пытаюсь сделать, — это получить доступ к phpmyadmin из IP/phpmyadmin Я отредактировал файл конфигурации по умолчанию в каталоге Site-available моя конфигурация : server { location…
Nginx + phpMyAdmin вопросов
У меня возникла проблема с моим конфигурационным файлом Nginx. Когда я загружаю phpMyAdmin, все работает нормально-за исключением того, что изображения не загружаются. Проверяя журнал ошибок, я…
vagrant, nginx, phpmyadmin проблема установки
Я работаю над созданием виртуального ящика для vagrant. Со спецификацией ниже: Host : Windows 7 Guest: Centos 6.5 PHP 5.5 Mysql 5.6.19 Nginx 1.6.0 PhpMyAdmin 4.2.2 В моем файле vagrant я установил…
Ubuntu 14 + Nginx + PHPMyAdmin : как я могу ограничить доступ по адресу IP?
Я пробовал гуглить, но, похоже, не могу найти ответа на Nginx. Как я могу ограничить доступ к PHPMyAdmin по IP адресу?
phpmyadmin на debian с nginx
Я пытаюсь использовать пакет Деабиана phpmyadmin с nginx. В учебниках они создают символическую ссылку на исходные файлы phpmyadmin из virtualhost, например: $ln -s /usr/share/phpmyadmin/…
Не удалось открыть localhost/phpmyadmin с nginx
Перед запуском я установил XAMPP. Теперь я пытаюсь использовать nginx вместо Apache. Для этого я сделал следующие шаги: Установлен nginx (1. c:>cd nginx 1.8.0 2. start nginx). установлен успешно….
Laravel Nginx переопределение phpMyAdmin
У меня возникла странная проблема, когда система маршрутизации Laravels переопределяет мой phpMyAdmin. Когда я впервые настроил сервер, моя настройка nginx для phpMyAdmin работала отлично, а затем…
phpMyAdmin внутри контейнера docker через обратный прокси-сервер nginx
Я установил образ phpMyAdmin docker и запустил его с помощью # docker run —name phpmyadmin -d —link mariadb:db -p 8081:80 -e PMA_ABSOLUTE_URI=http://servm3/pma —restart unless-stopped…
ubuntu 16.04 nginx изменение phpmyadmin url не работает
Ubuntu 16.04.5 LTS Xenial 4.18.8-x86_64-linode117 nginx version: nginx/1.10.3 (Ubuntu) php v7.0.32-0ubuntu0.16.04.1` /etc/nginx/sites-available/default location /phpmyadmin { root /usr/share/; index…
Установка WordPress, Nginx, PHP, MariaDB, PhpMyAdmin, Docker-Compose на Ubuntu —
Установка WordPress, Nginx, PHP, MariaDB, PhpMyAdmin, Docker-Compose на Ubuntu
Docker — программное обеспечение для автоматизации развёртывания и управления приложениями в среде виртуализации на уровне операционной системы. Позволяет «упаковать» приложение со всем его окружением и зависимостями в контейнер, который может быть перенесён на любую Linux-систему с поддержкой cgroups в ядре, а также предоставляет среду по управлению контейнерами.
Docker-Compose — это средство командной строки для определения и управления Multi-контейнером и docker-контейнерами как единой системой. Compose написан на Python и может быть установлен командой Python pip. Благодаря Compose, мы можем запустить несколько контейнеров docker с помощью одной команды. Это позволяет создать контейнер в качестве сервиса, который отлично подходит для разработки, тестирования и промежуточной среды.
Вы узнаете, как создать контейнер из docker образов и управлять всеми контейнеров с Docker-Compose. Мы развернем CMS WordPress в nginx, PHP, MariaDB, PhpMyAdmin. Каждая служба имеет свой собственный контейнер, и мы будем использовать образы из докер-реестра.
Установка Докера (Docker)
Установим последние обновления на ОС:
sudo apt-get update
sudo apt-get upgrade
Настройка репозитория в Ubuntu для докера, доступна по умолчанию, так что сразу приступаем к установке:
sudo apt-get install -y docker.io
Добавьте докер в автоматический запуск при загрузке ОС:
systemctl start docker
systemctl enable docker
Проверка работы докера:
docker run hello-world
Установка Docker-Compose
Docker-Compose – это программа, написанная на языке Python, он доступен репозитории Python и может быть установлен с помощью Python PIP. Поэтому нам нужно установить Python и Python PIP в нашу систему.
Установка Python и Python PIP:
sudo apt-get install -y python python-pip
Установка docker-compose с помощью команды pip:
pip install docker-compose
После завершения процесса установки, проверьте работу docker-compose:
docker-compose -v
Установка WordPress в nginx, PHP, MariaDB, PhpMyAdmin
В целях безопасности, мы не будем работать через docker-root, а создадим нового пользователя:
useradd -m -s /bin/bash dockerman
passwd dockerman
Далее добавьте пользователя в ‘докер’ группы, так, чтобы он мог использовать команды настройки, и перезагрузите сервисы docker:
usermod -a -G docker dockerman
systemctl restart docker
Войдите в ОС под созданным пользователем dockerman и создайте каталоги которые будут использоваться в нашем проекте и новый файл под названием Docker-Compose. (.+\.php)(/.+)$;
fastcgi_pass www:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
Сохраните файл и выйдите из редактора
Настройка Docker-Compose
Мы используем Nginx последней версии. Настроим сопоставление портов для порта 80 на контейнере в порт 80 на хосте. Также настроим для докера: конфигурацию виртуального хоста Nginx, файлы журнала Nginx и корневой веб-каталога «/var/www/html. Также укажем что контейнер Nginx связан с WordPress контейнером.
Редактируем файл docker-compose.yml (командой vi docker-compose.yml):
nginx:
image: nginx:latest
ports:
— ’80:80′
volumes:
— ./nginx:/etc/nginx/conf.d
— ./logs/nginx:/var/log/nginx
— ./www:/var/www/html
links:
— wordpress
restart: always
Если вы копируете текст с сайта и вставляете в конфигурационный файл, убедитесь что табуляция не съехала и не появилось новых символов и пробелов, потому что из-за этого нарушается структура файла, что очень часто приводит к ошибкам.
Далее определим сервер MySQL, мы используем образ MariaDB последней версии. Сделаем сопоставление портов для контейнера на порт 3306 и root пароль MySQL с переменной средой «MYSQL_ROOT_PASSWORD». Также настроим контейнер для каталога данных MySQL. Для этого, вставьте в конфигурационный docker-compose.yml текст:
mysql:
image: mariadb
ports:
— ‘3306:3306’
volumes:
— ./db-data:/var/lib/mysql
environment:
— MYSQL_ROOT_PASSWORD=aqwe123
restart: always
Теперь мы будем настраивать службу WordPress с помощью докер образа WordPress 4.7 с PHP-FPM 7.0. Вешаем PHP-FPM на порт 9000, подключаем том Docker для директории «/var/www/html» в каталоге хоста «Wordpress», настроим базу данных, определив переменную среду WordPress, и свяжем WordPress с MySQL, для этого, вставьте в конфигурационный docker-compose. yml текст:
wordpress:
image: wordpress:4.7.1-php7.0-fpm
ports:
— ‘9000:9000’
volumes:
— ./wordpress:/var/www/html
environment:
— WORDPRESS_DB_NAME=wpdb
— WORDPRESS_TABLE_PREFIX=wp_
— WORDPRESS_DB_HOST=mysql
— WORDPRESS_DB_PASSWORD=password
links:
— mysql
restart: always
Прикручиваем phpmyadmin для управления СУБД в пользовательском юзерфрендли интерфейсе, вешаем PMA на порт 8080:
pma:
image: phpmyadmin/phpmyadmin
restart: always
links:
— mysql:mysql
ports:
— 8080:80
environment:
PMA_HOST=mysql
MYSQL_USERNAME=root
MYSQL_ROOT_PASSWORD:password
После добавления составных частей в docker-compose.yml — файла, сохраните его и выйдите из редактора. Конфигурация docker-compose готова. У Вас должен получиться файл с таким содержимым:
version: ‘3’
services:
nginx:
image: nginx:latest
ports:
— ’80:80′
volumes:
— ./nginx:/etc/nginx/conf.d
— ./logs/nginx:/var/log/nginx
— ./www:/var/www/html
links:
— wordpress
restart: alwaysmysql:
image: mariadb
ports:
— ‘3306:3306’
volumes:
— ./db-data:/var/lib/mysql
environment:
— MYSQL_ROOT_PASSWORD=aqwe123
restart: alwayswordpress:
image: wordpress:4.7.1-php7.0-fpm
ports:
— ‘9000:9000’
volumes:
— ./wordpress:/var/www/html
environment:
— WORDPRESS_DB_NAME=wpdb
— WORDPRESS_TABLE_PREFIX=wp_
— WORDPRESS_DB_HOST=mysql
— WORDPRESS_DB_PASSWORD=password
links:
— mysql
restart: alwayspma:
image: phpmyadmin/phpmyadmin
restart: always
links:
— mysql:mysql
ports:
— 8080:80
environment:
— PMA_HOST=mysql
— MYSQL_USERNAME=root
— MYSQL_ROOT_PASSWORD:password
Запуск docker-compose
Начните создание новых контейнеров с docker-compose. Перейдите на WordPress, составьте каталог и запустите новые контейнеры, на основе созданного нами файла.
cd ~/wordpress-compose/
docker-compose up -d
Вы можете увидеть результаты выполнения команды. Были созданы три контейнеры. Давайте проверим состояние контейнера с параметром ps:
docker-compose ps
Если вы хотите увидеть выход журнала из контейнера, вы можете использовать команды ниже:
docker-compose logs nginx
docker-compose logs mysql
docker-compose logs wordpress
Контейнер журналов:
Примечание: Если вы видите в контейнере журнала WordPress ошибку в соединении с MySQL, игнорируйте её.
Установка CMS WordPress
Проверим доступные/открытые порты в системе. Убедитесь, что есть 3 открытых порта: порт 80, 3306 и порт 9000, для этого введите команду:
netstat -plntu
Теперь откройте веб-браузер и введите URL-адрес сервера или IP-адрес.
http://serverIP/
Вы должны увидеть страницу установки WordPress. Выберите свой язык и нажмите ‘продолжить’.
Если у Вас не открылась страница установки, посмотрите логи nginx, а также файл hosts на ПК с которого вы пытаете открыть сайт.
Заполните детали, такие как: название сайта, админа, пользователя, пароль, адрес электронной почты и нажмите кнопку ‘установить WordPress’. Вы будете перенаправлены на панель администратора WordPress.
WordPress установлен с помощью docker-compose.
Доступ в контейнеры docker
Чтобы убедиться, что все контейнеры доступны и проверить их состояние введите команду:
docker-compose ps
У нас уже 3 контейнера, теперь мы можем попытаться войти в каждый контейнер. Войдите в первый контейнер nginx с помощью команды docker-compose.
docker-compose exec nginx bash
nginx: имя файла в Docker-Compose yml
bash: выполнение команды в оболочке bash.
Теперь проверяем наши настройки виртуального хоста на WordPress.
cat /etc/nginx/conf.d/wordpress.conf
Файлы доступны в контейнере.
Далее попробуйте войти в контейнер MySQL, а затем в оболочку MySQL с помощью нашего пароля на файле.
docker-compose exec mysql bash
mysql -u root -p
TYPE MYSQL ROOT PASSWORD
Посмотреть список баз данных:
show databases;
Вы увидите нашу базу данных WordPress.
В ‘ WordPress ‘ контейнере, вы увидите все файлы CMS WordPress.
docker-compose exec wordpress bash
ls -lah
Вконтакте
Одноклассники
Мой мир
Установка phpmyadmin на ubuntu 14.04 — flops.ru
Предполагается, что LEMP уже установлен и настроен.
Установка LEMP на ubuntu 14.04
Phpmyadmin будет настроен на домен pma.example.com, который должен указывать на IP сервера.
1. Установка необходимого ПО
#Установим git и необходимые модули php apt-get update && apt-get install git php5-mcrypt php5-json php5-gd
2. Создание нового виртуального хоста nginx
#Создаем root директорию для phpmyadmin mkdir -p /var/www/pma #Копируем конфигурацию по умолчанию в новый файл cp /etc/nginx/sites-available/default /etc/nginx/sites-available/pma.conf
Затем приводим конфигурационный файл /etc/nginx/sites-available/pma.conf к следующему виду:
server { listen 80; root /var/www/pma; index index.php; server_name pma.example.com; location / { try_files $uri $uri/ /index.php?$args; } location ~ \.php$ { try_files $uri =404; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
#Включаем созданную конфигурацию cd /etc/nginx/sites-enabled/ && ln -s . ./sites-available/pma.conf pma.conf service nginx reload
3. Получение последней стабильной версии phpmyadmin
cd /var/www/pma/ && git clone --depth=1 --branch=STABLE https://github.com/phpmyadmin/phpmyadmin .
4. Настройка phpmyadmin
#Создаем файл конфигурации cd /var/www/pma/ cp config.sample.inc.php config.inc.php
#В файле config.inc.php необходимо заполнить элемент массива $cfg['blowfish_secret'] строкой из 32 символов $cfg['blowfish_secret'] = '3B9w3qCY0hINGWD84muoCduPIA7v6LDp'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
5. Обновление phpmyadmin
Для обновления до последней стабильной версии достаточно выполнить следующую команду:
cd /var/www/pma/ && git pull origin STABLE
6. Закрываем phpmyadmin с помощью basic auth
#Устанавливем утилиту для генерации файла паролей apt-get install apache2-utils
#Создаем файл паролей и пользователя pma htpasswd -c /etc/nginx/.htpasswd pma
Добавляем в конфигурационный файл /etc/nginx/sites-available/pma.conf следующие строки:
auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd;
server { listen 80; auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd; root /var/www/pma; index index.php; ... ...
#Проверяем конфигурацию и перечитываем конфигурационный файл nginx -t && service nginx reload
Config php где находится ubuntu. Установка PhpMyAdmin Ubuntu на Nginx или Apache. Добавление нового пользователя БД
phpMyAdmin
— это LAMP приложение, созданное специально для администрирования MySQL
серверов. Написанный на PHP и доступный через web обозреватель, phpMyAdmin предоставляет графический интерфейс для задач администрирования баз данных.
Установка
Перед установкой phpMyAdmin вам потребуется доступ к базе MySQL на том же самом компьютере, где вы устанавливаете phpMyAdmin, либо на удаленном компьютере, доступным по сети. Подробности смотрите в разделе MySQL . Для установки в терминале введите:
Sudo apt-get install phpmyadmin
По запросу выберите какой web сервер будет настроен для phpMyAdmin. В этом разделе предполагается использование в качестве web сервера Apache2
.
Sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf-available/phpmyadmin.conf
sudo a2enconf phpmyadmin
sudo /etc/init.d/apache2 reload
В обозревателе перейдите по адресу http://localhost
/phpmyadmin
. На странице входа введите root
в качестве имени пользователя, или другого пользователя, если вы его настраивали, а также пароль этого пользователя MySQL.
Если на предыдущем шаге, когда заходите по адресу http://localhost
/phpmyadmin
, сервер выдает ошибку 404 — Not found, проверьте расположение файла phpmyadmin.conf
. В случае ubuntu 12.04: если файл отсутствует по адресу /etc/apache2/conf.d/phpmyadmin.conf
и при этом существует по адресу /etc/phpmyadmin/apache.conf
, то переместите файл и перезапустите сервер:
sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
sudo /etc/init.d/apache2 restart
После этого попробуйте снова войти через браузер.
Настройка
Файлы настройки phpMyAdmin находятся в /etc/phpmyadmin. Основной файл настроек — это /etc/phpmyadmin/config.inc.php. Этот файл содержит опции настройки, которые применяются к phpMyAdmin глобально.
Чтобы использовать phpMyAdmin для управления MySQL на другом сервере, настройте следующую запись в /etc/phpmyadmin/config.inc.php:
$cfg[«Servers»][$i][«host»] = «db_server»;
Замените db_server
на актуальный IP адрес удаленного сервера базы данных. Также убедитесь, что компьютер с phpMyAdmin имеет права доступа к удаленной базе.
После настройки выйдите из phpMyAdmin и зайдите снова и вы получите доступ к новому серверу.
Файлы config.header.inc.php и config.footer.inc.php используются для добавления HTML верхнего и нижнего заголовков для phpMyAdmin.
Phpmyadmin — это один из самых популярных инструментов для управления базами данных mysql через веб-интерфейс. Он написан на php и JavaScript и с помощью него вы можете управлять локальным или удаленным сервером баз данных.
Используя PhpMyAdmin, мы можем создавать, удалять, переименовывать, редактировать базы данных, таблицы, поля, а также управлять пользователями, экспортировать, импортировать записи и выполнять любые команды SQL. На данный момент поддерживаются сервера баз данных MariaDB, MySQL и Drizzle. В этой статье мы рассмотрим как выполняется установка PhpMyAdmin Ubuntu 16.04 на веб-сервер Apache или Nginx.
Установка PhpMyAdmin в Ubuntu 16.04
Утилита phpmyadmin доступна в официальных репозиториях Ubuntu. Поэтому вы можете очень просто установить ее оттуда. Для этого сначала обновим список репозиториев:
Затем установим саму программу:
sudo apt install phpmyadmin
В официальных репозиториях содержится более старая версия, поэтому если вы хотите установить phpmyadmin ubuntu самой новой версии, нужно использовать PPA:
sudo add-apt-repository ppa:nijel/phpmyadmin
$ sudo apt-get update
$ sudo apt install phpmyadmin
Во время установки будет необходимо выбрать веб-сервер, с которым мы будем устанавливать phpmyadmin, выберите Apache
с помощью пробела и нажмите Ок:
Настройки для Nginx придется указывать вручную и их мы рассмотрим чуть позже. Дальше нужно установить пароль на базу данных PhpMyAdmin, нажмите Да
:
Затем введите два раза нужный пароль. Он вам вряд ли понадобится в дальнейшим, так что можете выбрать что-то сложное:
Возможно, для того чтобы все заработало придется включить несколько модулей php и конфигурационный файл apache:
sudo phpenmod mcrypt
$ sudo phpenmod mbstring
Затем включите конфигурационный файл Apache:
sudo a2enconf phpmyadmin
Установка phpmyadmin nginx ubuntu выполняется добавлением следующей секции в файл /etc/nginx/nginx. ~ /phpmyadmin/ {
alias /usr/share/phpMyAdmin/;
index index.php;
location ~ /phpmyadmin(/.*\.php) {
include fastcgi.conf;
fastcgi_param SERVER_NAME localhost;
fastcgi_param SCRIPT_FILENAME /usr/share/phpMyAdmin$1;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
}
}
}
Сохраните и перезагрузите ваш веб-сервер:
sudo systemctl restart apache2
sudo systemctl restart nginx
Теперь, все точно должно работать. Откройте браузер и наберите в адресной строке http://localhost/phpmyadmin:
Введите ваш логин и пароль и затем, вы сможете делать все, что вам нужно с базами данных.
Защита PhpMyAdmin
Установка phpmyadmn Ubuntu 16.04 завершена. Но эта программа дает полный контроль над базой данных, поэтому нам нужно обеспечить максимальную ее безопасность. Сделаем доступ к Phpmyadmin по паролю. Для настройки Apache создайте файл /usr/share/phpmyadmin/.htaccess со следующим содержанием:
sudo vi /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName «Restricted Files»
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Вот что значат эти строки:
- AuthType Basic
— эта строка устанавливает тип аутентификации, мы указываем что будем использовать пароль; - AuthName
— задаем сообщение, которое будет видеть; - AuthUserFile
— файл с данными, которые будут использоваться для аутентификации; - Require
— необходимое условие, для аутентификации.
sudo htpasswd -c /etc/phpmyadmin/.htpasswd пользователь
Вы можете добавить несколько пользователей, но для этого уже не используйте опцию -c:
sudo htpasswd /etc/phpmyadmin/.htpasswd пользователь
Теперь, при попытке открыть адрес phpmyadmin система запросит пароль. Только пользователи, которые введут пароль смогут получить доступ к интерфейсу входа phpmyadmin.
Выводы
В этой статье мы рассмотрели как выполняется установка phpmyadmin Ubuntu 16. 04. Как видите, все очень просто, и достаточно потратить немного времени на то, чтобы все разобраться. Если у вас остались вопросы, спрашивайте в комментариях!
При работе с базами данных MySQL(о ), phpMyAdmin — является самым популярным и доступным средством у правления базами данных, особенно для новичков.
phpMyAdmin — веб-приложение с открытым кодом, написанное на языке PHP и представляющее собой веб-интерфейс для администрирования СУБД MySQL. PHPMyAdmin позволяет через браузер осуществлять администрирование сервера MySQL, запускать команды SQL и просматривать содержимое таблиц и баз данных.
Приступим к установке:
1. Вводим команду установки phpMyAdmin:
sudo apt-get install phpmyadmin
Программа установки предложит список дополнительных пакетов, необходимых для установки phpMyAdmin — соглашаемся и нажимаем Enter.
2. Выбираем apache2 (перемещение в диалоговом окне — клавиша «Tab», выбор — «Пробел»):
3. После установки пакетов, программа установки предлагает произвести первичную настройку phpMyAdmin:
Вводим пароль административной учетной записи:
Вводим пароль для соединения с сервером баз данных:
Подтверждаем пароль:
Установка окончена. Запускаем браузер и вводим http://[адрес нашего домена]/phpmyadmin:
Вводим логин root и пароль, который мы указывали в настройках:
Приятной работы).
В статье рассказывается о том, как установить веб-сервер Apache, PHP, СУБД MySQL и phpMyAdmin в Ubuntu Linux.
Установка Apache
Устанавливаем Apache 2 из репозиториев. Для этого выполните команду:
Sudo apt-get install apache2
После установки сервер Apache обычно сразу же запускается (на экран выводится сообщение «Starting web server apache2»).
Для управления сервером Apache мы можем воспользоваться утилитой apache2ctl . Например, можно просмотреть текущий статус сервера Apache, выполнив команду:
Apache2ctl status
Команды для остановки, запуска и перезапуска сервера Apache следующие:
Sudo apache2ctl stop
sudo apache2ctl start
sudo apache2ctl restart
Проверка работоспособности сервера Apache
Вы можете проверить работоспособность Apache, набрав в браузере адрес http://localhost . Если все в порядке, то откроется пустая страница с текстом: «It works!» .
Установка PHP
Для установки PHP (версии 5) выполните в терминале команду:
Sudo apt-get install php5 libapache2-mod-php5
После этого нужно перезапустить веб-сервер Apache. У меня Ubuntu сделала это автоматически. Если этого не произошло выполните команду:
Sudo apache2ctl restart
Установка MySQL
Для установки MySQL выполните следующую команду:
Sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
После того, как установится MySQL, должно появиться следующее окошко, в которое нужно ввести пароль. По умолчанию MySQL создает административного пользователя с именем root . В это окошко нужно вписать пароль для этого пользователя и нажать Enter , затем повторно ввести пароль.
Установка phpMyAdmin
phpMyAdmin это специальное веб-приложение для администрирования MySQL. Оно позволяет прямо из браузера управлять базами данных MySQL, выполнять SQL запросы, просматривать данные и многое другое. Для установки phpMyAdmin выполните команду:
Sudo apt-get install phpmyadmin
Начнется установка phpMyAdmin. В конце установки появится окошко, в котором нужно выбрать сервер apache2 (клавишей Пробел; должна появится звездочка напротив строки apache2
) и нажать Enter .
Далее вам предложат создать базу данных для phpMyAdmin. Выберите Да и нажмите Enter .
Затем введите пароль для регистрации phpMyAdmin на сервере баз данных и в следующем окошке подтверждение пароля.
Проверка работоспособности phpMyAdmin
В браузере наберите адрес http://localhost/phpmyadmin . Откроется форма ввода пароля и логина пользователя MySQL для входа в phpMyAdmin. В качестве имени пользователя введите root , а пароль тот, который вы указали для пользователя root при установке MySQL.
Заключение
Мы установили веб-сервер Apache, поддержку языка PHP, СУБД MySQL и приложение phpMyAdmin. Следующим этапом является создание виртуальных хостов (сайтов). Сейчас (после установки) уже создан один виртуальный хост, доступный по адресу http://localhost . Файлы для виртуального хоста localhost размещаются в диретории /var/www . В одной из следующих заметок я расскажу, как создавать виртуальные хосты веб-сервера Apache.
Действительно эффективных решений для работы с базами данных немного. В основном активно используется несколько программ и решений. Приложение phpMyAdmin известно тем, что позволяет работать без прямого ввода на языке запросов SQL, обеспечивая простоту и лояльность к начинающему пользователю. Установка phpMyAdmin Ubuntu — тривиальная задача для профессионала. Начинающий же пользователь может столкнуться с некоторыми неожиданностями и спорными моментами.
Как установить и настроить работу phpMyAdmin в среде Ubuntu.
phpMyAdmin — это традиционное web-приложение с открытым исходным кодом, которое выпускается под лицензией GNU GPL. То есть каждый желающий может использовать программу для любых целей, а также изменять её код и модифицировать ПО. Приложение позволяет выполнять различные задачи по администрированию СУБД MySQL , команды языка запросов, а также просматривать базы данных. И всё это доступно прямо из браузера!
Программа действительно завоевала немалую популярность. Оно широко используется в различных свободных и коммерческих проектах, а знатоки языка PHP могут свободно встраивать в неё свою функциональность. Сейчас мы коротко рассмотрим, что сделать перед тем, как установить phpMyAdmin на Ubuntu.
Что сделать в первую очередь?
Перед тем как установить phpMyAdmin…
В первую очередь, удостоверьтесь, что у вас есть требуемые права. В получении прав root нет необходимости, а вот привилегии на команду sudo должны присутствовать.
Во-вторых, на вашем сервере должен быть настроен LAMP . Это стек из технологий Linux (Ubuntu в том числе), веб-сервера Apache, СУБД MySQL и языка программирования PHP. Без наличия этих технологий продолжать работу нет смысла.
В-третьих, обзаведитесь доменом с сертификатом SSL/TLS. Известно, что установленный на Убунту Сервер phpMyAdmin часто подвергается атакам. Если необходимо обезопасить сервер от угроз — лучше не подключайтесь к нему по незащищённому (HTTP) соединению.
Дальнейшие действия
Для начала установки приложения phpMyAdmin на Ubuntu Server понадобится обновить информацию о пакетах:
«sudo apt-get update»
«sudo apt-get install phpMyAdmin php-mbstring php-gettext»
При начальной настройке phpMyAdmin, Ubuntu потребуется узнать дополнительную информацию. Выберите сервер «apache2». На вопрос об использовании «dbconfig-common» ответьте «Да». Потом введите данные администратора, где это будет необходимо. После этого введите и повторите пароль для самой программы.
А сейчас включите расширения PHP. Это нужно будет сделать вручную:
«sudo phpenmod mcrypt
sudo phpenmod mbstring»
Теперь выполните перезагрузку программы Апач. Это позволит применить изменения:
«sudo systemctl restart apache2»
Доступ к интерфейсу программы phpMyAdmin можно будет получить с помощью…:
«https://x/phpMyAdmin»
где «x» — это доменное имя или IP-адрес сервера. Теперь можно без проблем войти в настроенную программу. Для этого используется стандартное имя — «root», а также пароль, который вы ввели при настройке MySQL. Следующие шаги по настройке приложения phpMyAdmin в ОС Ubuntu понадобятся, если вы хотите сделать работу безопаснее.
Обеспечение безопасности
С помощью дополнительных приёмов можно обеспечить «бонусную» защиту при управлении СУБД через браузер.
Файл.htaccess нужно применять, чтобы обеспечить управление сервером Apache со стороны того, кто им пользуется. Этот файл содержит определённые директивы, которые обязательны для исполнения на всём веб-сервере. Помещать его следует в корневой директории. Он также может располагаться в любом другом месте. Тогда правила, записанные в такой.htaccess, будут иметь более высокий приоритет, хоть и действовать для конкретного расположения.
Доступные для.htaccess директивы следует искать на официальном сайте веб-сервера Apache. Поддержку файлов такого типа нужно заранее включить.
Как включить разрешение на использование?
Перейдите в конфигурацию Apache:
«sudo nano /etc/apache2/conf-available/phpMyAdmin.conf»
Сюда нужно добавить данные следующего вида:
«
Options FollowSymLinks
DirectoryIndex index.php
AllowOverride All
. . .»
После этого закройте файл, сохранив изменения. Перезапустите Apache командой такого вида:
«sudo systemctl restart apache2».
Создание файла для директив
Введите команду:
«sudo nano /usr/share/phpMyAdmin/.htaccess»
Это позволит создать файл «.htaccess» и получить разрешение на его правку. Файл должен содержать информацию. Внесите в него следующие данные:
«AuthType Basic
AuthName «Restricted Files»
AuthUserFile /etc/phpMyAdmin/.htpasswd
Require valid-user»
Как создать файл пароля?
Ранее мы предложили вам задать путь для файла с паролем. Теперь этот файл нужно создать и отредактировать. Настроенный пароль позволит выполнять аутентификацию в phpMyAdmin из любого места, и не только в Убунту.
Установите пакет поддержки программы «.htpasswd».
«sudo apt-get install apache2-utils»
Создайте файл «.htpasswd» и добавьте в него нового пользователя. Сделать это лучше так:
«sudo htpasswd -c /etc/phpMyAdmin/.htpasswd username»
где «username» — это имя пользователя.
Откат изменений. Как удалить phpMyAdmin?
Если возникла потребность выполнить удаление phpMyAdmin, Ubuntu позволяет сделать следующее:
Удаляем пакеты (только в обратном порядке):
«sudo apt-get purge phpMyAdmin
sudo apt-get purge php5-mysql
sudo apt-get purge php5
sudo apt-get purge mysql-server
sudo apt-get purge apache2»
Производим удаление зависимостей:
«sudo apt-get purge apache2. 2-common
sudo apt-get purge apache2-mpm-prefork
sudo apt-get purge libapache2-mod-php5»
Если используется Apache 2, нужно удалить директории:
«/etc/apache2/
/etc/php5/apache2/»
Заключение
Мы разобрались, как выполнить установку и удаление phpMyAdmin, а также выяснили другие полезные детали. Если у вас остались вопросы — смело оставляйте их в комментариях. Посетители и администраторы нашего сайта помогут вам найти решения многих проблем!
Как установить phpMyAdmin с Nginx в Ubuntu 18.04
phpMyAdmin — это инструмент на основе PHP с открытым исходным кодом для управления серверами MySQL и MariaDB через веб-интерфейс.
phpMyAdmin позволяет взаимодействовать с базами данных MySQL, управлять учетными записями и привилегиями пользователей, выполнять SQL-запросы, импортировать и экспортировать данные в различных форматах данных и многое другое.
В этом руководстве описывается, как установить phpMyAdmin с Nginx в Ubuntu 18.04.
Предварительные требования #
Перед продолжением этого руководства убедитесь, что вы выполнили следующие предварительные условия:
Хотя это и не обязательно, настоятельно рекомендуется получить доступ к вашему экземпляру phpMyAdmin через HTTPS.Если на ваших сайтах не включен SSL, ознакомьтесь с нашей статьей о том, как защитить свой Nginx с помощью Let’s Encrypt в Ubuntu 18.04.
.
Установка phpMyAdmin в Ubuntu #
Установка phpMyAdmin — довольно простая задача. Начните с обновления списка пакетов:
sudo apt update
Затем выполните следующую команду, чтобы установить пакет phpMyAdmin из репозиториев Ubuntu по умолчанию:
sudo apt install phpmyadmin
Убедитесь, что у вас есть Nginx и PHP FPM установлен в вашей системе перед установкой phpMyAdmin.
Программа установки попросит вас выбрать веб-сервер, который должен быть автоматически настроен для запуска phpMyAdmin. Нет возможности выбрать Nginx, нажмите TAB
, чтобы выбрать OK
, а затем Введите
. В следующем разделе мы настроим Nginx.
Затем программа установки спросит вас, хотите ли вы использовать инструмент dbconfig-common
для настройки базы данных. Выберите Да
и нажмите Введите
.
Введите пароль для регистрации phpMyAdmin в базе данных, выберите OK
и нажмите Введите
.
Вам будет предложено подтвердить пароль, ввести тот же пароль, выбрать OK
и нажать Введите
.
На этом этапе phpMyAdmin установлен на вашем сервере Ubuntu.
Создание администратора MySQL #
В системах Ubuntu с MySQL 5.7 (и более поздних версий) пользователь root по умолчанию настроен на использование метода аутентификации auth_socket
.
Плагин auth_socket
аутентифицирует пользователей, которые подключаются с локального хоста через файл сокета Unix.Это означает, что вы не можете пройти аутентификацию как root, указав пароль.
Вместо изменения метода аутентификации для корневого пользователя MySQL мы создадим нового административного пользователя MySQL. Этот пользователь будет иметь те же привилегии, что и пользователь root, и будет настроен на использование метода аутентификации mysql_native_password
.
Мы будем использовать этого пользователя для входа в панель управления phpMyAdmin и выполнения административных задач на нашем сервере MySQL.
Начните с входа на сервер MySQL в качестве пользователя root:
sudo mysql
Из оболочки MySQL выполните следующие команды, которые создадут нового административного пользователя и предоставят соответствующие разрешения:
CREATE USER ' padmin '@' localhost 'ИДЕНТИФИЦИРОВАНА' change-with-your-secure-password ';
ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ *. * TO 'padmin' @ 'localhost' С ОПЦИЕЙ GRANT;
В этом примере мы назвали администратора padmin
. Вы можете использовать любое имя, только не забудьте установить надежный пароль.
Настройка Nginx и phpMyAdmin #
Существует несколько способов настройки Nginx для обслуживания файлов phpMyAdmin. Если серверный блок вашего домена уже настроен для обслуживания запросов PHP, вы можете просто создать символическую ссылку из установочных файлов phpMyAdmin в корневой каталог документов вашего домена./phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
корень / usr / share /;
}
}
Убедитесь, что вы используете правильный путь сокета или адрес / порт для директивы fastcgi_pass
.
Сохраните файл и закройте редактор.
Теперь вы можете добавить следующую строку в каждый блок сервера домена
где вы хотите получить доступ к phpMyAdmin, используя: domain.com/phpmyadmin
include snippets / phpmyadmin.conf;
Вот пример:
/ etc / nginx / conf.d / domain.com.conf
сервер {
#. . . другой код
включить сниппеты / phpmyadmin.conf;
#. . . другой код
}
Доступ к phpMyAdmin #
Чтобы получить доступ к интерфейсу phpMyAdmin, откройте свой любимый браузер и введите доменное имя или общедоступный IP-адрес вашего сервера, а затем / phpmyadmin
:
http (s): // your_domain_or_ip_address / phpmyadmin
Введите учетные данные администратора и нажмите Перейти
.
После входа в систему вы увидите панель управления phpMyAdmin, которая будет выглядеть примерно так:
Заключение #
Поздравляем, вы успешно установили phpMyAdmin на свой сервер Ubuntu 18.04. Теперь вы можете начать создавать базы данных MySQL, пользователей и таблицы.
и выполнять различные запросы и операции MySQL.
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Как установить и защитить phpMyAdmin с помощью Nginx в Ubuntu 16.04
Введение
В то время как многим пользователям нужны функциональные возможности системы управления базами данных, такой как MySQL, ее интерфейс командной строки может быть менее интуитивным и удобным для некоторых, что создает барьер для входа.
phpMyAdmin был создан, чтобы пользователи могли взаимодействовать с MySQL через веб-интерфейс. В этом руководстве мы обсудим, как установить и защитить phpMyAdmin, чтобы вы могли безопасно использовать его для управления своими базами данных из системы Ubuntu 16.04. Мы построим эту установку на основе веб-сервера Nginx, который имеет хороший профиль производительности и может справляться с большими нагрузками лучше, чем некоторые другие веб-серверы.
Предварительные требования
Прежде чем приступить к работе с этим руководством, убедитесь, что вы выполнили следующие предварительные шаги:
- Во-первых, предположим, что вы используете пользователя без полномочий root с привилегиями sudo, как описано в шагах 1–4 начальной настройки сервера Ubuntu 16.04.
- Мы также предполагаем, что вы выполнили установку LEMP (Linux, Nginx, MySQL и PHP) на своем сервере Ubuntu 16.04. Если вы еще этого не сделали, вы можете следовать руководству по установке стека LEMP в Ubuntu 16.04. Обязательно запишите пароль администратора базы данных MySQL.
Наконец, при использовании программного обеспечения, такого как phpMyAdmin, необходимо помнить о важных аспектах безопасности: он напрямую взаимодействует с вашей установкой MySQL, обрабатывает аутентификацию с использованием учетных данных MySQL, а также выполняет и возвращает результаты для произвольных запросов SQL.
По этим причинам, а также из-за того, что это широко распространенное приложение PHP, которое часто становится целью атак, никогда не следует запускать phpMyAdmin в удаленных системах через обычное HTTP-соединение. Если у вас нет существующего домена, настроенного с использованием сертификата SSL / TLS, вы можете следовать этому руководству по защите Nginx с помощью Let’s Encrypt в Ubuntu 16.04.
После того, как вы выполнили эти предварительные шаги, вы готовы приступить к работе с этим руководством.
Шаг 1. Установите phpMyAdmin
.
Когда наша платформа LEMP уже установлена, мы можем начать с установки phpMyAdmin, который доступен из репозиториев Ubuntu по умолчанию.
Во-первых, мы обновим локальный индекс пакетов сервера, чтобы убедиться, что на нем есть свежий набор ссылок на доступные пакеты. Затем мы воспользуемся инструментами упаковки apt
, чтобы извлечь программное обеспечение из репозиториев и установить его в нашей системе:
- sudo apt-get update
- sudo apt-get install phpmyadmin
Во время установки вам будет предложено ввести некоторую информацию. Он спросит вас, какой веб-сервер вы хотите, чтобы программа автоматически настраивала.Поскольку Nginx, веб-сервер, который мы используем, не является одним из доступных вариантов, вы можете просто нажать TAB
, а затем ENTER
, чтобы обойти это приглашение.
Следующее приглашение спросит, хотите ли вы, чтобы dbconfig-common
сконфигурировал базу данных для использования phpMyAdmin. Выберите «Да», чтобы продолжить. Вам нужно будет ввести пароль администратора базы данных, который вы настроили во время установки MySQL, чтобы разрешить эти изменения.
Теперь вам будет предложено выбрать и подтвердить пароль для приложения phpMyAdmin и его базы данных (которая будет создана на этом шаге).Выберите и подтвердите надежный пароль и запишите его.
Теперь установка будет завершена. Чтобы веб-сервер Nginx мог правильно находить и обслуживать файлы phpMyAdmin, нам необходимо создать символическую ссылку из установочных файлов в корневой каталог нашего документа Nginx:
- sudo ln -s / usr / share / phpmyadmin / var / www / html
Наконец, нам нужно включить модуль mcrypt
PHP, на который полагается phpMyAdmin. Он был установлен с помощью phpMyAdmin, поэтому мы включим его и перезапустим наш PHP-процессор:
- sudo phpenmod mcrypt
- sudo systemctl перезапустить php7.0 кадров в минуту
Теперь наша установка phpMyAdmin готова к работе. Чтобы получить доступ к интерфейсу, перейдите к доменному имени вашего сервера или общедоступному IP-адресу, а затем введите / phpmyadmin
в своем веб-браузере:
http: // server_domain_or_IP / phpmyadmin
Для входа используйте набор учетных данных для действующего пользователя MySQL. Например, для начала хорошо подойдет пользователь root и пароль администратора MySQL.После этого вы сможете получить доступ к административному интерфейсу:
Щелкните вокруг, чтобы ознакомиться с интерфейсом.
В следующих двух разделах мы предпримем шаги по защите нашей новой веб-консоли phpMyAdmin.
Шаг 2. Измените URL-адрес phpMyAdmin по умолчанию
На этом этапе установка phpMyAdmin должна быть полностью работоспособной. Однако, установив веб-интерфейс, мы открыли доступ к нашему серверу базы данных MySQL внешнему миру. Из-за популярности phpMyAdmin и большого объема данных, к которым он может предоставлять доступ, подобные установки часто становятся объектами атак.
В этом разделе мы «укрепим» или заблокируем нашу установку, изменив URL-адрес интерфейса с / phpmyadmin
на нестандартный, чтобы избежать некоторых попыток автоматического перебора ботов.
На более раннем этапе мы создали символическую ссылку из каталога phpMyAdmin на корень нашего документа, чтобы наш веб-сервер Nginx мог находить и обслуживать наши файлы phpMyAdmin. Чтобы изменить URL-адрес нашего интерфейса phpMyAdmin, мы переименуем эту символическую ссылку.
Во-первых, давайте перейдем в корневой каталог документов Nginx, чтобы лучше понять, какое изменение мы внесем:
Вы получите следующий результат:
Выход
всего 4
-rw-r - r-- 1 root root 612 10 апр, 16:40 index. nginx-debian.html
lrwxrwxrwx 1 root root 21 апр 10 17:06 phpmyadmin -> / usr / share / phpmyadmin
Выходные данные показывают, что в этом каталоге есть символическая ссылка с именем phpmyadmin
. Мы можем изменить имя этой ссылки на любое другое. Это, в свою очередь, изменит URL-адрес доступа phpMyAdmin, что может помочь скрыть конечную точку от ботов, жестко запрограммированных для поиска по общим именам конечных точек (например, «phpmyadmin»).
Выберите имя, скрывающее назначение конечной точки.В этом руководстве мы назовем нашу конечную точку / nothingtosee
, но вам следует выбрать другое имя. Для этого просто переименуем ссылку:
.
- sudo mv phpmyadmin ничего не видеть
- лс-л
После выполнения вышеуказанных команд вы получите следующий результат:
Выход
всего 4
-rw-r - r-- 1 root root 612 10 апр, 16:40 index.nginx-debian.html
lrwxrwxrwx 1 root root 21 апр 10 17:06 ничего не видно -> / usr / share / phpmyadmin
Теперь, если вы перейдете на старый URL, вы получите ошибку 404:
http: // server_domain_or_IP / phpmyadmin
Теперь ваш интерфейс phpMyAdmin будет доступен по новому URL-адресу, который мы только что настроили:
http: // server_domain_or_IP / ничего не видеть
Теперь мы можем еще больше усилить нашу установку phpMyAdmin, настроив шлюз аутентификации.
Шаг 3. Настройка шлюза аутентификации Nginx
Следующая функция, которую мы настроим, - это запрос аутентификации, который пользователь должен будет пройти, прежде чем когда-либо увидит экран входа в phpMyAdmin. Большинство веб-серверов, включая Nginx, изначально предоставляют эту возможность. Нам просто нужно изменить наш файл конфигурации Nginx с деталями.
Прежде чем мы это сделаем, мы создадим файл паролей, в котором будут храниться учетные данные для аутентификации. Nginx требует, чтобы пароли были зашифрованы с помощью функции crypt ()
.Пакет OpenSSL, который уже должен быть установлен на вашем сервере, включает эту функцию.
Чтобы создать зашифрованный пароль, введите:
Вам будет предложено ввести и подтвердить пароль, который вы хотите использовать. Затем утилита отобразит зашифрованную версию пароля, которая будет выглядеть примерно так:
Выход
О5аз.РСПзд.ХЕ
Скопируйте это значение, так как вам нужно будет вставить его в файл аутентификации, который мы будем создавать.
Теперь создайте файл аутентификации. Назовем этот файл pma_pass
и поместим его в каталог конфигурации Nginx:
.
- судо нано / и т. Д. / Nginx / pma_pass
В этом файле вы должны указать имя пользователя, которое вы хотите использовать, за которым следует двоеточие (:
), а затем зашифрованная версия пароля, полученная вами от утилиты openssl passwd
.
Мы собираемся назвать нашего пользователя sammy
, но вы должны выбрать другое имя пользователя.Файл должен выглядеть так:
/ etc / nginx / pma_pass
sammy: O5az.RSPzd.HE
Сохраните и закройте файл, когда закончите.
Теперь мы готовы изменить наш файл конфигурации Nginx. Для начала откройте его в текстовом редакторе:
- sudo nano / etc / nginx / сайты-доступные / по умолчанию
В этом файле нам нужно добавить новую секцию location
. Это будет нацелено на местоположение
, которое мы выбрали для нашего интерфейса phpMyAdmin (в этом руководстве мы выбрали / ничего не см.
).
Создайте этот раздел внутри блока server
, но вне любых других блоков. В нашем примере мы разместим наш новый блок location
под блоком /
:
/ etc / nginx / sites-available / default
server {
. . .
место расположения / {
# Сначала пытаемся обработать запрос как файл, затем
# в качестве каталога, затем вернитесь к отображению 404.
try_files $ uri $ uri / = 404;
}
location / nothingtosee {
}
.. .
}
В этом блоке нам нужно установить значение переменной с именем auth_basic
для сообщения аутентификации, которое наша подсказка будет отображать для пользователей. Мы не хотим указывать пользователям, не прошедшим проверку подлинности, что мы защищаем, поэтому не сообщайте конкретных подробностей. В нашем примере мы просто будем использовать «Вход для администратора».
Затем нам нужно добавить переменную с именем auth_basic_user_file
, чтобы указать нашему веб-серверу на файл аутентификации, который мы только что создали. Nginx запросит у пользователя данные для аутентификации и проверит, соответствуют ли введенные значения тому, что он находит в указанном файле.
После того, как мы закончим, файл должен выглядеть так:
/ etc / nginx / sites-available / default
server {
. . .
место расположения / {
try_files $ uri $ uri / = 404;
}
location / nothingtosee {
auth_basic "Вход для администратора";
auth_basic_user_file / etc / nginx / pma_pass;
}
. . .
}
Сохраните и закройте файл, когда закончите.
Чтобы активировать наш новый шлюз аутентификации, мы должны перезапустить веб-сервер:
- sudo service nginx перезапуск
Теперь, если вы посетите URL-адрес phpMyAdmin в своем веб-браузере (если обновление страницы не работает, вам, возможно, придется очистить кеш или использовать другой сеанс браузера, если вы уже использовали phpMyAdmin), вам будет предложено ввести имя пользователя и пароль, которые вы добавили в файл pma_pass
:
http: // server_domain_or_IP / ничего не видеть
После ввода учетных данных вы попадете на стандартную страницу входа phpMyAdmin.
Помимо обеспечения дополнительного уровня безопасности, этот шлюз поможет защитить журналы MySQL от попыток проверки подлинности, содержащих спам.
Заключение
После изучения этого руководства вы можете теперь управлять своими базами данных MySQL через достаточно безопасный веб-интерфейс. Этот пользовательский интерфейс предоставляет большую часть функций, доступных через командную строку MySQL. Вы можете просматривать базы данных и схемы, выполнять запросы и создавать новые наборы данных и структуры.
Как установить и защитить phpMyAdmin с помощью Nginx в Ubuntu 18.04 сервер
Введение
В то время как многим пользователям нужны функциональные возможности системы баз данных, такой как MySQL, взаимодействие с системой исключительно из клиента командной строки MySQL требует знания языка SQL, поэтому для некоторых этот интерфейс может не быть предпочтительным.
phpMyAdmin был создан для того, чтобы пользователи могли взаимодействовать с MySQL через интуитивно понятный веб-интерфейс, работающий вместе со средой разработки PHP. В этом руководстве мы обсудим, как установить phpMyAdmin поверх сервера Nginx и как настроить сервер для повышения безопасности.
Примечание: При использовании программного обеспечения, такого как phpMyAdmin, существуют важные соображения безопасности, поскольку он работает на сервере базы данных, имеет дело с учетными данными базы данных и позволяет пользователю легко выполнять произвольные запросы SQL к вашей базе данных. Поскольку phpMyAdmin - это широко распространенное приложение PHP, оно часто становится объектом атак. Мы рассмотрим некоторые меры безопасности, которые вы можете предпринять в этом руководстве, чтобы вы могли принимать обоснованные решения.
Предварительные требования
Прежде чем вы начнете работу с этим руководством, вам понадобится следующее:
Поскольку phpMyAdmin выполняет аутентификацию с использованием учетных данных MySQL, настоятельно рекомендуется установить сертификат SSL / TLS, чтобы обеспечить шифрованный трафик между сервером и клиентом. Если у вас нет существующего домена, настроенного с действующим сертификатом, вы можете следовать этому руководству по защите Nginx с помощью Let’s Encrypt в Ubuntu 18.04.
Предупреждение: Если на сервере не установлен сертификат SSL / TLS, но вы все равно хотите продолжить, рассмотрите возможность принудительного доступа через туннели SSH, как описано в шаге 5 этого руководства.
После того, как вы выполнили эти предварительные требования, вы можете переходить к остальной части руководства.
Шаг 1. Установка phpMyAdmin
Первое, что нам нужно сделать, это установить phpMyAdmin на сервер LEMP.Мы собираемся использовать репозитории Ubuntu по умолчанию для достижения этой цели.
Начнем с обновления индекса пакета сервера:
Теперь вы можете установить phpMyAdmin с помощью:
- sudo apt установить phpmyadmin
В процессе установки вам будет предложено выбрать веб-сервер ( Apache или Lighttpd ) для настройки. Поскольку мы используем Nginx в качестве веб-сервера, нам не следует делать здесь выбор.Нажмите вкладку
, а затем OK
, чтобы перейти к следующему шагу.
Затем вам будет предложено использовать dbconfig-common
для настройки базы данных приложения. Выберите Да
. Это настроит внутреннюю базу данных и административного пользователя для phpMyAdmin. Вам будет предложено определить новый пароль для пользователя MySQL phpmyadmin . Вы также можете оставить это поле пустым и позволить phpMyAdmin случайным образом создать пароль.
На этом установка будет завершена.Чтобы веб-сервер Nginx мог правильно находить и обслуживать файлы phpMyAdmin, нам нужно создать символическую ссылку из установочных файлов на корневой каталог документов Nginx:
- sudo ln -s / usr / share / phpmyadmin / var / www / html / phpmyadmin
Теперь ваша установка phpMyAdmin готова к работе. Чтобы получить доступ к интерфейсу, перейдите к доменному имени вашего сервера или общедоступному IP-адресу, а затем введите / phpmyadmin
в своем веб-браузере:
https: // server_domain_or_IP / phpmyadmin
Как упоминалось ранее, phpMyAdmin обрабатывает аутентификацию с использованием учетных данных MySQL, что означает, что вы должны использовать то же имя пользователя и пароль, которые обычно используете для подключения к базе данных через консоль или через API.Если вам нужна помощь в создании пользователей MySQL, ознакомьтесь с этим руководством по управлению базой данных SQL.
Примечание: Вход в phpMyAdmin как пользователь MySQL root не рекомендуется, поскольку это представляет значительную угрозу безопасности. Мы увидим, как отключить для входа в систему root , на следующем шаге этого руководства.
Теперь ваша установка phpMyAdmin должна быть полностью работоспособной. Однако, установив веб-интерфейс, мы открыли доступ к нашему серверу базы данных MySQL внешнему миру.Из-за популярности phpMyAdmin и большого объема данных, к которым он может предоставлять доступ, подобные установки часто становятся объектами атак. В следующих разделах этого руководства мы увидим несколько различных способов сделать установку phpMyAdmin более безопасной.
Шаг 2. Изменение местоположения по умолчанию для phpMyAdmin
Один из основных способов защитить вашу установку phpMyAdmin - усложнить поиск. Боты будут сканировать общие пути, такие как phpmyadmin , pma , admin , mysql и т. Д.Если изменить URL-адрес интерфейса с / phpmyadmin
на нестандартный, автоматическим скриптам будет намного сложнее найти вашу установку phpMyAdmin и предпринять атаки методом перебора.
При установке phpMyAdmin мы создали символическую ссылку, указывающую на / usr / share / phpmyadmin
, где находятся фактические файлы приложения. Чтобы изменить URL-адрес интерфейса phpMyAdmin, мы переименуем эту символическую ссылку.
Во-первых, давайте перейдем к корневому каталогу документов Nginx и перечислим файлы, которые он содержит, чтобы лучше понять, какое изменение мы внесем:
Вы получите следующий результат:
Выход
всего 8
-rw-r - r-- 1 root root 612 8 апр 13:30 index.nginx-debian.html
lrwxrwxrwx 1 root root 21 апр 8 15:36 phpmyadmin -> / usr / share / phpmyadmin
Выходные данные показывают, что в этом каталоге есть символическая ссылка с именем phpmyadmin
. Мы можем изменить имя этой ссылки на любое другое. Это, в свою очередь, изменит URL-адрес доступа phpMyAdmin, что может помочь скрыть конечную точку от ботов, жестко запрограммированных для поиска общих имен конечных точек.
Выберите имя, скрывающее назначение конечной точки. В этом руководстве мы назовем нашу конечную точку / ничего для просмотра
, но вы должны выбрать альтернативное имя .Для этого мы переименуем ссылку:
- sudo mv phpmyadmin ничего не видеть
- лс-л
После выполнения вышеуказанных команд вы получите следующий результат:
Выход
всего 8
-rw-r - r-- 1 root root 612 8 апреля 13:30 index.nginx-debian.html
lrwxrwxrwx 1 root root 21 апр 8 15:36 ничего не видно -> / usr / share / phpmyadmin
Теперь, если вы перейдете на старый URL, вы получите ошибку 404:
https: // server_domain_or_IP / phpmyadmin
Ваш интерфейс phpMyAdmin теперь будет доступен по новому URL-адресу, который мы только что настроили:
https: // server_domain_or_IP / ничего не видеть
Запутывая реальное местоположение phpMyAdmin на сервере, вы защищаете его интерфейс от автоматического сканирования и попыток перебора вручную.
Шаг 3. Отключение входа в систему с правами root
В MySQL, а также в обычных системах Linux учетная запись root является специальной административной учетной записью с неограниченным доступом к системе. Это не только привилегированная учетная запись, но и известное имя для входа, что делает ее очевидной целью для атак методом грубой силы. Чтобы минимизировать риски, мы настроим phpMyAdmin так, чтобы он отклонял любые попытки входа в систему от пользователя root . Таким образом, даже если вы предоставите действительные учетные данные для пользователя root , вы все равно получите сообщение об ошибке «Доступ запрещен» и не сможете войти в систему.
Поскольку мы решили использовать dbconfig-common
для настройки и хранения параметров phpMyAdmin, конфигурация по умолчанию в настоящее время хранится в базе данных. Нам нужно будет создать новый файл config.inc.php
, чтобы определить наши пользовательские настройки.
Несмотря на то, что файлы PHP для phpMyAdmin расположены внутри / usr / share / phpmyadmin
, приложение использует файлы конфигурации, расположенные в / etc / phpmyadmin
. Мы создадим новый файл пользовательских настроек внутри / etc / phpmyadmin / conf.d
и назовите его pma_secure.php
:
- sudo nano /etc/phpmyadmin/conf.d/pma_secure.php
Следующий файл конфигурации содержит необходимые настройки для отключения входа в систему без пароля (для AllowNoPassword
задано значение false
) и входа в систему root (для AllowRoot
задано значение false
):
/etc/phpmyadmin/conf.d/pma_secure.php
Php
# Настройки PhpMyAdmin
# Это должна быть случайная строка из не менее 32 символов
$ cfg ['blowfish_secret'] = '3! # 32 @ 3sa (+ = _ 4?), 5XP_: U %% 8 \ 34sdfSdg43yH # {o';
$ i = 0;
$ i ++;
$ cfg ['Серверы'] [$ i] ['auth_type'] = 'cookie';
$ cfg ['Серверы'] [$ i] ['AllowNoPassword'] = false;
$ cfg ['Серверы'] [$ i] ['AllowRoot'] = false;
?>
Сохраните файл, когда закончите редактирование, нажав CTRL
+ X
, затем y
для подтверждения изменений и ENTER
. Изменения вступят в силу автоматически. Если вы сейчас перезагрузите страницу входа и попытаетесь войти в систему как root, вы получите ошибку Access Denied error:
Вход в систему с правами root теперь запрещен для вашей установки phpMyAdmin. Эта мера безопасности не позволит скриптам перебора попытаться угадать пароль базы данных root на вашем сервере. Более того, он будет обеспечивать использование менее привилегированных учетных записей MySQL для доступа к веб-интерфейсу phpMyAdmin, что само по себе является важной практикой безопасности.
Шаг 4. Создание шлюза аутентификации
Скрытие установки phpMyAdmin в необычном месте может обойти некоторых автоматических ботов, сканирующих сеть, но бесполезно против целевых атак. Чтобы лучше защитить веб-приложение с ограниченным доступом, как правило, более эффективно остановить злоумышленников, прежде чем они смогут добраться до приложения. Таким образом, они не смогут использовать стандартные эксплойты и атаки методом перебора для подбора учетных данных.
В конкретном случае phpMyAdmin еще важнее заблокировать интерфейс входа в систему.Оставляя его открытым для всего мира, вы предлагаете злоумышленникам платформу грубой силы, позволяющую угадать ваши учетные данные в базе данных.
Добавление дополнительного уровня аутентификации к вашей установке phpMyAdmin позволяет повысить безопасность. Пользователи должны будут пройти через запрос HTTP-аутентификации, прежде чем когда-либо увидят экран входа в phpMyAdmin. Большинство веб-серверов, включая Nginx, изначально предоставляют эту возможность.
Чтобы настроить это, нам сначала нужно создать файл паролей для хранения учетных данных аутентификации.Nginx требует, чтобы пароли были зашифрованы с помощью функции crypt ()
. Пакет OpenSSL, который уже должен быть установлен на вашем сервере, включает эту функцию.
Чтобы создать зашифрованный пароль, введите:
Вам будет предложено ввести и подтвердить пароль, который вы хотите использовать. Затем утилита отобразит зашифрованную версию пароля, которая будет выглядеть примерно так:
Выход
О5аз.РСПзд.ОН
Скопируйте это значение, так как вам нужно будет вставить его в файл аутентификации, который мы будем создавать.
Теперь создайте файл аутентификации. Назовем этот файл pma_pass
и поместим его в каталог конфигурации Nginx:
.
- судо нано / и т. Д. / Nginx / pma_pass
В этом файле вы должны указать имя пользователя, которое вы хотите использовать, за которым следует двоеточие (:
), а затем зашифрованная версия пароля, полученная вами от утилиты openssl passwd
.
Мы собираемся назвать нашего пользователя sammy
, но вы должны выбрать другое имя пользователя. Файл должен выглядеть так:
/ etc / nginx / pma_pass
sammy: O5az.RSPzd.HE
Сохраните и закройте файл, когда закончите.
Теперь мы готовы изменить файл конфигурации Nginx. В этом руководстве мы будем использовать файл конфигурации, расположенный по адресу /etc/nginx/sites-available/example.com
. Вы должны использовать соответствующий файл конфигурации Nginx для веб-расположения, где в настоящее время размещен phpMyAdmin.Для начала откройте этот файл в текстовом редакторе:
- sudo nano /etc/nginx/sites-available/example.com
Найдите блок сервера и раздел местоположения
/
внутри него. Нам нужно создать раздел new location
в этом блоке, чтобы он соответствовал текущему пути phpMyAdmin на сервере. В этом руководстве расположение phpMyAdmin относительно корневого веб-сайта - / ничего, см.
:
.
/ etc / nginx / sites-available / default
server {
.~ / nothingtosee / {
auth_basic "Вход для администратора";
auth_basic_user_file / etc / nginx / pma_pass;
расположение ~ \ . php $ {
включить сниппеты / fastcgi-php.conf;
fastcgi_pass unix: /var/run/php/php7.2-fpm.sock;
}
}
. . .
}
Не забудьте заменить ничего, чтобы увидеть фактический путь, по которому можно найти phpMyAdmin. Вам также следует дважды проверить расположение вашего файла сокета PHP-FPM, которое будет зависеть от вашей установленной в настоящее время версии PHP.В этом примере мы используем php7.2-fpm.sock
, который действителен для PHP 7.2, версии, которая установлена в Ubuntu 18.04 через репозитории apt
по умолчанию.
Сохраните и закройте файл, когда закончите. Чтобы проверить, действителен ли файл конфигурации, вы можете запустить:
Ожидается следующий результат:
Выход
nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке
nginx: файл конфигурации / etc / nginx / nginx.conf тест прошел успешно
Чтобы активировать новый шлюз аутентификации, необходимо перезагрузить веб-сервер:
- sudo systemctl перезагрузить nginx
Теперь, если вы посетите URL-адрес phpMyAdmin в своем веб-браузере, вам будет предложено ввести имя пользователя и пароль, которые вы добавили в файл pma_pass
:
https: // server_domain_or_IP / ничего не видеть
После ввода учетных данных вы попадете на стандартную страницу входа phpMyAdmin.
Примечание: Если обновление страницы не работает, возможно, вам придется очистить кеш или использовать другой сеанс браузера, если вы уже использовали phpMyAdmin.
Помимо обеспечения дополнительного уровня безопасности, этот шлюз поможет защитить журналы MySQL от попыток проверки подлинности, содержащих спам.
Шаг 5 - Настройка доступа через зашифрованные туннели (необязательно)
Для повышения безопасности можно заблокировать установку phpMyAdmin только для авторизованных хостов. Вы можете добавить в белый список авторизованных хостов в файле конфигурации Nginx, чтобы любой запрос, поступающий с IP-адреса, которого нет в списке, был отклонен.
Хотя в некоторых случаях одной этой функции может быть достаточно, это не всегда лучшее долгосрочное решение, в основном из-за того, что большинство людей не выходят в Интернет со статических IP-адресов. Как только вы получите новый IP-адрес от своего интернет-провайдера, вы не сможете получить доступ к интерфейсу phpMyAdmin, пока не обновите файл конфигурации Nginx своим новым IP-адресом.
Для более надежного долгосрочного решения вы можете использовать управление доступом на основе IP, чтобы создать настройку, в которой пользователи будут иметь доступ к вашему интерфейсу phpMyAdmin только в том случае, если они осуществляют доступ с авторизованного IP-адреса или или localhost через SSH туннелирование . Мы увидим, как это сделать, в следующих разделах.
Сочетание управления доступом на основе IP с туннелированием по SSH значительно повышает безопасность, поскольку оно полностью блокирует доступ из общедоступного Интернета (за исключением авторизованных IP-адресов) в дополнение к обеспечению безопасного канала между пользователем и сервером за счет использования зашифрованных туннелей.
Настройка контроля доступа на основе IP на Nginx
В Nginx управление доступом на основе IP может быть определено в соответствующем блоке location
данного сайта с помощью директив allow
и deny
. Например, если мы хотим разрешить только запросы, поступающие от данного хоста, мы должны включить следующие две строки в этом порядке в соответствующий блок location
для сайта, который мы хотим защитить:
разрешить hostname_or_IP;
отрицать все;
Вы можете разрешить столько хостов, сколько захотите, вам нужно только включить одну строку allow
для каждого авторизованного хоста / IP-адреса внутри соответствующего блока местоположения
для сайта, который вы защищаете. Директивы будут оцениваться в том же порядке, в котором они перечислены, до тех пор, пока не будет найдено совпадение или запрос не будет окончательно отклонен из-за директивы deny all
.
Теперь мы настроим Nginx так, чтобы разрешать запросы только с локального хоста или с вашего текущего IP-адреса. Во-первых, вам нужно знать текущий общедоступный IP-адрес, который ваш локальный компьютер использует для подключения к Интернету. Есть разные способы получить эту информацию; для простоты мы воспользуемся услугой ipinfo.io. Вы можете либо открыть URL-адрес https://ipinfo.io/ip в своем браузере, либо выполнить следующую команду со своего локального компьютера :
- завиток https://ipinfo.io/ip
Вы должны получить простой IP-адрес в качестве вывода, например:
Выход
203.0.113.111
Это ваш текущий публичный IP-адрес . Мы настроим блокировку местоположения phpMyAdmin, чтобы разрешать запросы только с этого IP-адреса в дополнение к localhost.Нам нужно будет еще раз отредактировать блок конфигурации для phpMyAdmin внутри /etc/nginx/sites-available/example.com
.
Откройте файл конфигурации Nginx с помощью выбранного редактора командной строки:
- sudo nano /etc/nginx/sites-available/example.com
Поскольку у нас уже есть правило доступа в нашей текущей конфигурации, нам нужно объединить его с управлением доступом на основе IP с помощью директивы , чтобы удовлетворить все
.~ / nothingtosee / {
удовлетворить всех; # требует обоих условий
разрешить 203.0.113.111; # разрешите свой IP
разрешить 127.0.0.1; #allow localhost через туннели SSH
отрицать все; # запретить все другие источники
auth_basic "Вход для администратора";
auth_basic_user_file / etc / nginx / pma_pass;
местоположение ~ \ . php {
включить сниппеты / fastcgi-php.conf;
fastcgi_pass unix: /var/run/php/php7.2-fpm.sock;
}
}
. . .
}
Не забудьте заменить ничего, чтобы увидеть фактический путь, по которому можно найти phpMyAdmin, а выделенный IP-адрес — вашим текущим общедоступным IP-адресом.
Сохраните и закройте файл, когда закончите. Чтобы проверить, действителен ли файл конфигурации, вы можете запустить:
Ожидается следующий результат:
Выход
nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке
nginx: файл конфигурации /etc/nginx/nginx.conf, тест прошел успешно
Теперь перезагрузите веб-сервер, чтобы изменения вступили в силу:
- sudo systemctl перезагрузить nginx
Поскольку ваш IP-адрес явно указан как авторизованный хост, вам не следует мешать доступу.Любой другой, кто попытается получить доступ к вашей установке phpMyAdmin, теперь получит ошибку 403 (запрещено):
https: // server_domain_or_IP / ничего не видеть
В следующем разделе мы увидим, как использовать SSH-туннелирование для доступа к веб-серверу через локальные запросы. Таким образом, вы по-прежнему сможете получить доступ к интерфейсу phpMyAdmin, даже если ваш IP-адрес изменится.
Доступ к phpMyAdmin через зашифрованный туннель
SSH-туннелирование работает как способ перенаправления сетевого трафика через зашифрованные каналы.Запустив команду ssh
, аналогичную той, которую вы использовали бы для входа на сервер, вы можете создать безопасный «туннель» между вашим локальным компьютером и этим сервером. Весь трафик, поступающий на данный локальный порт, теперь может быть перенаправлен через зашифрованный туннель и использовать удаленный сервер в качестве прокси, прежде чем выходить в Интернет. Это похоже на то, что происходит при использовании VPN ( Virtual Private Network ), однако SSH-туннелирование намного проще настроить.
Мы будем использовать SSH-туннелирование для проксирования наших запросов на удаленный веб-сервер, на котором запущен phpMyAdmin.Создав туннель между вашим локальным компьютером и сервером, на котором установлен phpMyAdmin, вы можете перенаправить локальные запросы на удаленный веб-сервер, и, что более важно, трафик будет зашифрован, и запросы будут поступать в Nginx, как если бы они исходили с локального хоста . Таким образом, независимо от того, с какого IP-адреса вы подключаетесь, вы сможете безопасно получить доступ к интерфейсу phpMyAdmin.
Поскольку трафик между вашим локальным компьютером и удаленным веб-сервером будет зашифрован, это безопасная альтернатива для ситуаций, когда у вас не может быть установлен сертификат SSL / TLS на веб-сервере, на котором запущен phpMyAdmin.
С локального компьютера запускайте эту команду всякий раз, когда вам нужен доступ к phpMyAdmin:
- пользователь ssh @ server_domain_or_IP -L 8000: localhost: 80 -L 8443: localhost: 443 -N
Давайте рассмотрим каждую часть команды:
- пользователь : пользователь SSH для подключения к серверу, на котором работает phpMyAdmin
- hostname_or_IP : SSH-хост, на котором работает phpMyAdmin
- -L 8000: localhost: 80 перенаправляет HTTP-трафик на порт 8000
- -L 8443: localhost: 443 перенаправляет HTTPS-трафик на порт 8443
- -N : не выполнять удаленные команды
Примечание: Эта команда блокирует терминал до тех пор, пока не будет прервана с помощью CTRL + C
, и в этом случае она завершит соединение SSH и остановит перенаправление пакетов.Если вы предпочитаете запускать эту команду в фоновом режиме, вы можете использовать опцию SSH -f
.
Теперь перейдите в свой браузер и замените server_domain_or_IP на localhost: PORT
, где PORT
— это либо 8000
для HTTP, либо 8443
для HTTPS:
http: // localhost: 8000 / ничего
https: // localhost: 443 / ничего
Примечание: Если вы входите в phpMyAdmin через https , вы можете получить предупреждающее сообщение с вопросом о безопасности сертификата SSL. Это происходит из-за того, что используемое вами доменное имя (localhost) не совпадает с адресом, зарегистрированным в сертификате (домен, в котором фактически обслуживается phpMyAdmin). Это безопасно.
Все запросы на localhost: 8000
(HTTP) и localhost: 8443
(HTTPS) теперь перенаправляются через безопасный туннель в ваше удаленное приложение phpMyAdmin. Вы не только повысили безопасность, отключив публичный доступ к вашему phpMyAdmin, но и защитили весь трафик между вашим локальным компьютером и удаленным сервером, используя зашифрованный туннель для отправки и получения данных.
Если вы хотите принудительно использовать SSH-туннелирование для всех, кто хочет получить доступ к вашему интерфейсу phpMyAdmin (включая вас), вы можете сделать это, удалив любые другие авторизованные IP-адреса из файла конфигурации Nginx, оставив 127.0.0.1
как единственный хост, которому разрешен доступ к этому месту. Учитывая, что никто не сможет делать прямые запросы к phpMyAdmin, можно безопасно удалить HTTP-аутентификацию, чтобы упростить настройку. Вот как ваш файл конфигурации будет выглядеть в таком сценарии:
/ etc / nginx / sites-available / example.~ / nothingtosee / {
разрешить 127.0.0.1; # разрешить только локальный хост
отрицать все; # запретить все другие источники
местоположение ~ \ .php {
включить сниппеты / fastcgi-php.conf;
fastcgi_pass unix: /var/run/php/php7.2-fpm.sock;
}
}
. . .
}
Как только вы перезагрузите конфигурацию Nginx с помощью sudo systemctl reload nginx
, ваша установка phpMyAdmin будет заблокирована, и пользователям потребуется , чтобы использовать туннели SSH для доступа к интерфейсу phpMyAdmin через перенаправленные запросы.
Заключение
В этом руководстве мы увидели, как установить phpMyAdmin в Ubuntu 18.04 с Nginx в качестве веб-сервера. Мы также рассмотрели расширенные методы защиты установки phpMyAdmin в Ubuntu, такие как отключение входа в систему root, создание дополнительного уровня аутентификации и использование SSH-туннелирования для доступа к установке phpMyAdmin только через локальные запросы.
После изучения этого руководства вы сможете управлять своими базами данных MySQL через достаточно безопасный веб-интерфейс.Этот пользовательский интерфейс предоставляет большую часть функций, доступных через командную строку MySQL. Вы можете просматривать базы данных и схемы, выполнять запросы и создавать новые наборы данных и структуры.
Как установить и защитить phpMyAdmin с помощью Nginx на сервере Ubuntu 20.04
Введение
При разработке веб-сайта или веб-приложения многим пользователям необходимы функциональные возможности системы баз данных, такой как MySQL. Однако для взаимодействия с системой исключительно из клиента командной строки MySQL требуется знакомство с языком структурированных запросов, который чаще называется SQL, что может стать серьезным препятствием для некоторых пользователей.
phpMyAdmin был создан, чтобы позволить пользователям взаимодействовать с MySQL через интуитивно понятный веб-интерфейс, работающий вместе со средой разработки PHP. Это руководство проведет вас через установку phpMyAdmin поверх сервера Nginx.
Примечание. phpMyAdmin работает на сервере базы данных, обрабатывает учетные данные базы данных и позволяет пользователям выполнять операторы SQL в базе данных. В сочетании с тем фактом, что это широко распространенное PHP-приложение, это означает, что phpMyAdmin часто становится объектом атак.Если вы устанавливаете и настраиваете phpMyAdmin, не предпринимая надлежащих шагов для его защиты от злоумышленников, вы рискуете потерять или украсть ваши данные.
В дополнение к установке приложения в этом руководстве будут рассмотрены несколько мер, которые вы можете предпринять для повышения безопасности установки phpMyAdmin. Он также подробно объяснит каждую меру, чтобы вы могли принимать обоснованные решения и защищать свою систему.
Предварительные требования
Для выполнения этого руководства вам потребуется:
Кроме того, поскольку phpMyAdmin обрабатывает аутентификацию с использованием учетных данных MySQL, мы, , настоятельно рекомендуем установить сертификат SSL / TLS для включения зашифрованного трафика между сервером и клиентом.Если у вас нет существующего домена, настроенного с действующим сертификатом, следуйте этому руководству по защите Nginx с помощью Let’s Encrypt в Ubuntu 20.04, чтобы настроить его.
Предупреждение: Если на сервере не установлен сертификат SSL / TLS, но вы все равно хотите продолжить, рассмотрите возможность принудительного доступа через туннели SSH, как описано в шаге 5 этого руководства.
Если у вас есть все необходимые условия, вы можете приступить к выполнению шага 1 данного руководства.
Шаг 1. Установка phpMyAdmin
Вы можете установить phpMyAdmin, используя APT для загрузки пакета phpmyadmin
из репозиториев Ubuntu по умолчанию.
Начните с обновления индекса пакета сервера:
Теперь вы можете установить phpMyAdmin, выполнив следующую команду:
- sudo apt установить phpmyadmin
В процессе установки вам будет предложено выбрать веб-сервер (Apache или Lighttpd) для настройки. phpMyAdmin может автоматически вносить ряд изменений в конфигурацию, чтобы гарантировать правильную работу с любым из этих веб-серверов при установке.Однако, поскольку вы используете Nginx в качестве веб-сервера, вам не следует выбирать ни один из этих вариантов. Вместо этого нажмите TAB
, чтобы выделить ENTER
, чтобы продолжить процесс установки.
Затем вам будет предложено использовать dbconfig-common
для настройки базы данных приложения. Выберите <Да> . Это настроит внутреннюю базу данных и административного пользователя для phpMyAdmin. Вам будет предложено определить новый пароль для пользователя MySQL phpmyadmin , но поскольку это не тот пароль, который вам нужно запомнить, вы можете оставить его пустым и позволить phpMyAdmin создать пароль случайным образом.
Примечание : Предполагая, что вы установили MySQL, выполнив шаг 2 обязательного руководства по стеку LAMP, вы, возможно, решили включить подключаемый модуль Validate Password. На момент написания этой статьи включение этого компонента вызовет ошибку, когда процесс установки phpMyAdmin попытается установить пароль для пользователя phpmyadmin :
Чтобы решить эту проблему, выберите опцию abort , чтобы остановить процесс установки. Затем откройте командную строку MySQL:
Или, если вы включили аутентификацию по паролю для пользователя root MySQL, запустите эту команду и затем введите свой пароль при появлении запроса:
В командной строке MySQL выполните следующую команду, чтобы отключить компонент «Проверить пароль».Обратите внимание, что на самом деле это не приведет к его удалению, а просто остановит загрузку компонента на вашем сервере MySQL:
- УДАЛИТЬ КОМПОНЕНТ "file: // component_validate_password";
После этого вы можете закрыть клиент MySQL:
Затем попробуйте снова установить пакет phpmyadmin
, и он будет работать должным образом:
- sudo apt установить phpmyadmin
После установки phpMyAdmin вы можете снова открыть приглашение MySQL с помощью sudo mysql
или mysql -u root -p
, а затем выполнить следующую команду, чтобы повторно включить компонент проверки пароля:
- УСТАНОВИТЬ КОМПОНЕНТ "file: // component_validate_password";
После завершения команды apt install
phpMyAdmin будет полностью установлен.Однако, чтобы веб-сервер Nginx мог правильно находить и обслуживать файлы phpMyAdmin, вам необходимо создать символическую ссылку из установочных файлов на корневой каталог документов Nginx. Если вы следовали обязательному руководству по стеку LEMP, корневой каталог документа вашей установки Nginx — / var / www / your_domain /
.
- sudo ln -s / usr / share / phpmyadmin / var / www / your_domain / phpmyadmin
Теперь ваша установка phpMyAdmin готова к работе.Чтобы получить доступ к интерфейсу, перейдите к доменному имени вашего сервера или общедоступному IP-адресу, а затем введите / phpmyadmin
в своем веб-браузере:
https: // server_domain_or_IP / phpmyadmin
Как упоминалось ранее, phpMyAdmin обрабатывает аутентификацию с использованием учетных данных MySQL. Это означает, что для входа в phpMyAdmin вы используете то же имя пользователя и пароль, которые обычно используете для подключения к базе данных с помощью командной строки или API. Если вам нужна помощь в создании пользователей MySQL, ознакомьтесь с этим руководством по управлению базой данных SQL.
Примечание: Вход в phpMyAdmin как пользователь MySQL root не рекомендуется, поскольку это представляет значительную угрозу безопасности. В этом руководстве будет описано, как отключить вход в систему в качестве пользователя root MySQL на шаге 3 этого руководства.
Теперь ваша установка phpMyAdmin полностью работоспособна. Однако, установив веб-интерфейс, вы открыли доступ к своему серверу базы данных MySQL внешнему миру. Из-за популярности phpMyAdmin и его способности предоставлять доступ к большим объемам конфиденциальных данных, подобные установки часто становятся объектами атак.В следующих разделах этого руководства мы рассмотрим несколько различных методов, с помощью которых вы можете сделать установку phpMyAdmin более безопасной.
Шаг 2. Изменение местоположения по умолчанию для phpMyAdmin
Один из способов защитить вашу установку phpMyAdmin — усложнить поиск. Боты будут сканировать общие пути, такие как / phpmyadmin
, / pma
, / admin
, / mysql
и другие похожие имена. Если изменить URL-адрес интерфейса с / phpmyadmin
на нестандартный, автоматическим скриптам будет намного сложнее найти вашу установку phpMyAdmin и предпринять атаки методом перебора.
На предыдущем шаге вы создали символическую ссылку в корневом каталоге веб-документа Nginx, указывающую на / usr / share / phpmyadmin
, где находятся фактические файлы приложения phpMyAdmin. Вы можете переименовать эту символическую ссылку, чтобы изменить URL-адрес интерфейса phpMyAdmin.
Для этого перейдите в корневой каталог документов Nginx:
Затем выполните следующую команду ls
, чтобы вывести список файлов в корневом каталоге документа, чтобы лучше понять, какое изменение вы сделаете.Эта команда включает параметр -l
, который указывает команде использовать формат «длинный список». Это заставит ls
вернуть больше информации, чем в противном случае:
Ваш вывод будет содержать такую строку:
Выход
. . .
lrwxrwxrwx 1 root root 22 января 15 21:09 phpmyadmin -> / usr / share / phpmyadmin /
. . .
Эта строка указывает на то, что у вас есть символическая ссылка с именем phpmyadmin
в этом каталоге.Вы можете изменить имя этой ссылки на любое другое, и это, в свою очередь, изменит URL-адрес, по которому вы можете получить доступ к phpMyAdmin. Это поможет скрыть конечную точку от ботов, выполняющих автоматический поиск общих имен конечных точек.
Выберите имя, которое скрывает назначение конечной точки. В этом руководстве конечная точка будет называться / hiddenlink
и будет использоваться во всех примерах, но вам следует выбрать альтернативное имя .
Переименуйте символическую ссылку с помощью команды mv
:
- sudo mv phpmyadmin скрытая ссылка
После выполнения этой команды снова запустите команду ls -l
, чтобы убедиться, что символическая ссылка была переименована правильно:
На этот раз в выходных данных будет указано, что список для символической ссылки был обновлен с ее новым именем:
Выход
всего 8
.. .
lrwxrwxrwx 1 root root 22 января 15 21:09 скрытая ссылка -> / usr / share / phpmyadmin /
. . .
Теперь, когда вы перейдете по URL-адресу, который ранее использовали для доступа к phpMyAdmin, вы получите ошибку 404:
https: // server_domain_or_IP / phpmyadmin
Вместо этого вы можете получить доступ к своему интерфейсу phpMyAdmin по новому URL-адресу, который вы только что настроили:
https: // server_domain_or_IP / hiddenlink
Скрывая реальное местоположение phpMyAdmin на сервере, вы защищаете его интерфейс от автоматического сканирования и попыток перебора вручную.
Шаг 3. Отключение входа в систему с правами root
В MySQL, а также в обычных системах Linux, корневая учетная запись является специальной административной учетной записью с неограниченным доступом к системе. Это не только привилегированная учетная запись, но и известное имя для входа, что делает ее очевидной целью для атак методом грубой силы. Чтобы свести к минимуму эти риски, на этом шаге будет описано, как настроить phpMyAdmin для запрета любых попыток входа в систему, исходящих от пользователя root MySQL. Таким образом, даже если вы предоставите действительные учетные данные для пользователя root , вы все равно получите сообщение Access denied! Ошибка , и вы не сможете войти в систему.
Поскольку вы выбрали dbconfig-common
для настройки и сохранения настроек phpMyAdmin, конфигурация приложения по умолчанию в настоящее время хранится в вашей базе данных MySQL. Вам нужно будет создать новый файл config.inc.php
в каталоге конфигурации phpMyAdmin, чтобы определить свои собственные настройки. Несмотря на то, что сценарии PHP phpMyAdmin расположены в каталоге / usr / share / phpmyadmin
, файлы конфигурации приложения находятся в каталоге / etc / phpmyadmin
.
Создайте новый файл пользовательских настроек в каталоге /etc/phpmyadmin/conf.d
и назовите его pma_secure.php
:
- sudo nano /etc/phpmyadmin/conf.d/pma_secure.php
Затем добавьте в новый файл следующее содержимое:
/etc/phpmyadmin/conf.d/pma_secure.php
Php
# Настройки PhpMyAdmin
# Это должна быть случайная строка из не менее 32 символов
$ cfg ['blowfish_secret'] = 'CHANGE_THIS_TO_A_STRING_OF_32_RANDOM_CHARACTERS';
$ i = 0;
$ i ++;
$ cfg ['Серверы'] [$ i] ['auth_type'] = 'cookie';
$ cfg ['Серверы'] [$ i] ['AllowNoPassword'] = false;
$ cfg ['Серверы'] [$ i] ['AllowRoot'] = false;
?>
Включив директивы AllowNoPassword
и AllowRoot
и установив для них значение false
, этот файл конфигурации отключает беспарольные входы и входы корневого пользователя MySQL соответственно.
Обратите внимание, что параметр auth_type
настраивает phpMyAdmin для использования метода проверки подлинности cookie . phpMyAdmin по умолчанию использует метод аутентификации cookie
, который позволяет вам войти в phpMyAdmin как любой действительный пользователь MySQL с помощью файлов cookie. При использовании этого метода пароль пользователя MySQL сохраняется и зашифровывается с помощью алгоритма Advanced Encryption Standard (AES) во временном файле cookie.
Исторически сложилось так, что phpMyAdmin вместо этого использовал для этой цели алгоритм Blowfish.Однако он по-прежнему ищет директиву с именем blowfish_secret
, которая указывает на парольную фразу, которая будет использоваться внутри алгоритма AES. Это не кодовая фраза, которую вам нужно запоминать, поэтому здесь подойдет любая строка, содержащая 32 случайных символа.
Обновите строку, которая читает 'CHANGE_THIS_TO_A_STRING_OF_32_RANDOM_CHARACTERS'
, до случайной строки, содержащей не менее 32 символов.
Примечание: Если вводимая здесь кодовая фраза короче 32 символов, это приведет к тому, что зашифрованные файлы cookie будут менее безопасными.Однако ввод строки длиной более 32 символов не причинит никакого вреда.
Чтобы сгенерировать действительно случайную строку символов, вы можете установить и использовать программу pwgen
с APT:
По умолчанию pwgen
создает легко произносимые, но менее безопасные пароли. Однако, включив флаг -s
, как в следующей команде, вы можете создать полностью случайный, трудный для запоминания пароль. Обратите внимание на два последних аргумента этой команды: 32
, которые определяют, какой длины должна быть строка пароля, генерируемая pwgen
; и 1
, который сообщает pwgen
, сколько строк он должен сгенерировать:
Скопируйте результирующий вывод этой команды и добавьте его в pma_secure.php
, заменив 'CHANGE_THIS_TO_A_STRING_OF_32_RANDOM_CHARACTERS'
.
Сохраните и закройте файл, когда закончите его редактировать. Если вы использовали nano
, сделайте это, нажав CTRL + X
, Y
, чтобы подтвердить изменения, а затем ENTER
, чтобы вернуться в командную строку bash.
Изменения вступят в силу автоматически. Если вы перезагрузите страницу входа сейчас и попытаетесь войти как root , вы получите Access denied! ошибка:
Вход в систему пользователем root MySQL теперь запрещен для вашей установки phpMyAdmin.Эта мера безопасности не позволит скриптам методом грубой силы угадать пароль пользователя базы данных root на вашем сервере. Более того, он будет обеспечивать использование менее привилегированных учетных записей MySQL для доступа к веб-интерфейсу phpMyAdmin, что само по себе является важной практикой безопасности.
Шаг 4. Создание шлюза аутентификации
Скрытие установки phpMyAdmin в необычном месте может обойти некоторых автоматических ботов, сканирующих сеть, но бесполезно против целевых атак.Чтобы лучше защитить веб-приложение с ограниченным доступом, как правило, более эффективно остановить злоумышленников, прежде чем они смогут добраться до приложения. Таким образом, они не смогут использовать стандартные эксплойты и атаки методом перебора для подбора учетных данных.
В конкретном случае phpMyAdmin еще важнее заблокировать интерфейс входа в систему. Оставляя его открытым для всего мира, вы предлагаете злоумышленникам платформу грубой силы, позволяющую угадать ваши учетные данные в базе данных.
Этот шаг описывает, как добавить дополнительный уровень аутентификации в вашу установку phpMyAdmin, чтобы повысить безопасность ваших баз данных MySQL.Большинство веб-серверов, включая Nginx, изначально предоставляют эту возможность. Выполнив этот шаг, любой, кто попытается получить доступ к экрану входа в вашу установку phpMyAdmin, сначала должен будет пройти через запрос HTTP-аутентификации, введя действительное имя пользователя и пароль.
Чтобы настроить это, вам сначала нужно создать файл паролей для хранения учетных данных аутентификации. Nginx требует, чтобы пароли были зашифрованы с помощью функции crypt ()
. Пакет OpenSSL, который должен быть установлен на вашем сервере Ubuntu по умолчанию, включает эту функцию.
Чтобы создать зашифрованный пароль, введите:
Вам будет предложено ввести и подтвердить пароль, который вы хотите использовать. Затем утилита отобразит зашифрованную версию пароля, которая будет выглядеть примерно так:
Выход
9YHV.p60.Cg6I
Скопируйте это значение, так как вам нужно будет включить его в файл аутентификации, который вы собираетесь создать.
Теперь создайте файл аутентификации. В этом руководстве мы назовем этот файл pma_pass
и поместим его в каталог конфигурации Nginx:
.
- судо нано / и т. Д. / Nginx / pma_pass
В этом файле укажите имя пользователя, которое вы хотите использовать, затем двоеточие (:
), а затем зашифрованную версию пароля, которую вы получили от утилиты openssl passwd
.
В этом примере имя пользователя sammy
, но вы можете выбрать любое имя пользователя по своему усмотрению. Это не обязательно должно быть имя существующего профиля пользователя на вашем сервере Ubuntu или имя пользователя MySQL.
После добавления выбранного вами имени пользователя и зашифрованного пароля, который вы скопировали ранее, файл будет выглядеть так:
/ и т.д. / nginx / pma_pass
sammy: 9YHV.p60.Cg6I
Сохраните и закройте файл, когда закончите.
Затем вам нужно изменить файл конфигурации Nginx.Опять же, это руководство следует соглашениям, установленным в предварительном руководстве по LEMP, поэтому в следующих примерах используется файл конфигурации / etc / nginx / sites-available / your_domain
. Убедитесь, что вы используете соответствующий файл конфигурации Nginx для веб-расположения, где в настоящее время размещена ваша установка phpMyAdmin.
Чтобы начать работу, откройте файл конфигурации Nginx в предпочитаемом текстовом редакторе:
- sudo nano / etc / nginx / sites-available / your_domain
Найдите блок server
и раздел location /
внутри него.Вам нужно создать новый раздел location
под этим блоком location /
, чтобы соответствовать текущему пути phpMyAdmin на сервере.
Напомним, что на шаге 2 этого руководства вы изменили имя местоположения phpMyAdmin, переименовав символическую ссылку ( скрытая ссылка
в нашем примере). Здесь вам нужно ввести имя, которое вы использовали для этой символической ссылки. ~ / hiddenlink / {
auth_basic «Вход для администратора»;
auth_basic_user_file / etc / nginx / pma_pass;
расположение ~ \.php $ {
включить сниппеты / fastcgi-php.conf;
fastcgi_pass unix: /var/run/php/php7.4-fpm.sock;
}
}
. . .
}
Не забудьте заменить скрытую ссылку фактическим путем, по которому можно найти phpMyAdmin. Вам также следует дважды проверить расположение файла сокета PHP-FPM, который будет зависеть от того, какая версия PHP установлена в настоящее время. В этом примере мы используем php7.4-fpm.sock
, который действителен для PHP 7.4, версия, которая установлена в Ubuntu 20.04 через репозитории APT по умолчанию.
Сохраните и закройте файл, когда закончите. Чтобы проверить, действителен ли файл конфигурации, выполните следующую команду:
Следующие выходные данные показывают, что синтаксис файла конфигурации действителен:
Выход
nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке
nginx: файл конфигурации /etc/nginx/nginx.conf, тест прошел успешно
Чтобы активировать новый шлюз аутентификации, перезагрузите Nginx:
- sudo systemctl перезагрузить nginx
Теперь, когда вы посещаете URL-адрес phpMyAdmin в своем веб-браузере, вам будет предложено ввести имя пользователя и пароль, которые вы добавили в файл pma_pass
:
https: // server_domain_or_IP / hiddenlink
После ввода учетных данных вы попадете на стандартную страницу входа phpMyAdmin.
Примечание: Запрос аутентификации может не появиться, если вы недавно заходили в phpMyAdmin. Чтобы приглашение появилось принудительно, вам может потребоваться обновить страницу, очистить кеш или открыть другой сеанс браузера.
Помимо обеспечения дополнительного уровня безопасности, этот шлюз поможет защитить журналы MySQL от попыток проверки подлинности, содержащих спам.
Шаг 5 — Настройка доступа через зашифрованные туннели
Для повышения безопасности можно заблокировать установку phpMyAdmin только для авторизованных хостов.Вы можете ограничить доступ к phpMyAdmin, указав отдельные авторизованные хосты в файле конфигурации Nginx. Таким образом, любой запрос, поступающий с IP-адреса, которого нет в списке, будет отклонен.
Хотя в некоторых случаях одной этой функции может быть достаточно, это не всегда лучшее долгосрочное решение, в основном из-за того, что большинство людей не выходят в Интернет со статических IP-адресов. Как только вы получите новый IP-адрес от своего интернет-провайдера, вы не сможете получить доступ к интерфейсу phpMyAdmin, пока не обновите файл конфигурации Nginx своим новым IP-адресом.
Для более надежного долгосрочного решения вы можете использовать управление доступом на основе IP, чтобы создать настройку, в которой пользователи будут иметь доступ к вашему интерфейсу phpMyAdmin только в том случае, если они осуществляют доступ с авторизованного IP-адреса или или localhost через SSH-туннелирование . В следующих разделах мы рассмотрим, как настроить оба этих элемента управления доступом.
Сочетание управления доступом на основе IP с туннелированием по SSH значительно повышает безопасность, поскольку оно полностью блокирует доступ из общедоступного Интернета (за исключением авторизованных IP-адресов) в дополнение к обеспечению безопасного канала между пользователем и сервером с помощью зашифрованных туннелей.
Настройка контроля доступа на основе IP на Nginx
В Nginx управление доступом на основе IP может быть определено в соответствующем блоке location
данного сайта с помощью директив allow
и deny
. Например, если вы хотите разрешить только запросы, поступающие от данного хоста, вы должны включить следующие две строки в этом порядке в соответствующий блок location
для сайта, который вы хотите защитить:
разрешить hostname_or_IP;
отрицать все;
Вы можете разрешить столько хостов, сколько захотите, и вам нужно только включить одну строку allow
для каждого авторизованного хоста / IP-адреса в соответствующем блоке местоположения
для сайта, который вы защищаете.Директивы будут оцениваться в том же порядке, в котором они перечислены, до тех пор, пока не будет найдено совпадение или запрос не будет окончательно отклонен из-за директивы deny all
.
На этом шаге вы настроите Nginx, чтобы разрешать запросы только от localhost или вашего текущего IP-адреса. Во-первых, вам нужно знать текущий общедоступный IP-адрес, который ваш локальный компьютер использует для подключения к Интернету. Есть разные способы получить эту информацию; для простоты в этом руководстве будет использоваться услуга, предоставляемая ipinfo.io. Вы можете либо открыть URL-адрес https://ipinfo.io/ip
в своем браузере, либо выполнить следующую команду на локальном компьютере :
- завиток https://ipinfo.io/ip
Эта команда вернет IP-адрес, например:
Выход
203.0.113.0
Значение, возвращаемое этой командой, является текущим общедоступным IP-адресом вашего локального компьютера. Вам нужно настроить блок location
в phpMyAdmin, чтобы разрешать запросы только с этого IP-адреса или локально с самого сервера.
Для этого еще раз откройте файл конфигурации Nginx вашего сайта, используя предпочитаемый вами текстовый редактор:
- sudo nano / etc / nginx / sites-available / your_domain
Поскольку у вас уже есть правило доступа в вашей текущей конфигурации, вам необходимо объединить его с управлением доступом на основе IP с помощью директивы , чтобы удовлетворить все
. Таким образом, вы можете сохранить текущий запрос HTTP-аутентификации для повышения безопасности.
Добавьте следующие выделенные строки в блок location
вашей конфигурации phpMyAdmin:
/ etc / nginx / sites-available / your_domain
server {
.~ / hiddenlink / {
удовлетворить всех; # требует обоих условий
разрешить 203.0.113.0; # разрешите свой IP
разрешить 127.0.0.1; #allow localhost через туннели SSH
отрицать все; # запретить все другие источники
auth_basic "Вход для администратора";
auth_basic_user_file / etc / nginx / pma_pass;
расположение ~ \ .php $ {
включить сниппеты / fastcgi-php.conf;
fastcgi_pass unix: /var/run/php/php7.4-fpm.~ / hiddenlink / {
удовлетворить всех; # требует обоих условий
разрешить 203.0.113.0; # разрешите свой IP
разрешить 127.0.0.1; #allow localhost через туннели SSH
отрицать все; # запретить все другие источники
auth_basic "Вход для администратора";
auth_basic_user_file / etc / nginx / pma_pass;
расположение ~ \ .php $ {
включить сниппеты / fastcgi-php.conf;
fastcgi_pass unix: /var/run/php/php7.4-fpm.носок;
}
}
. . .
}
Сохраните и закройте файл, когда закончите. Чтобы проверить, действителен ли файл конфигурации, вы можете запустить:
Ожидается следующий результат:
Выход
nginx: синтаксис файла конфигурации /etc/nginx/nginx.conf в порядке
nginx: файл конфигурации /etc/nginx/nginx.conf, тест прошел успешно
Теперь перезагрузите веб-сервер, чтобы изменения вступили в силу:
- sudo systemctl перезагрузить nginx
Поскольку ваш IP-адрес явно указан как авторизованный хост, вам не следует мешать доступу.Однако любой другой, пытающийся получить доступ к вашей установке phpMyAdmin, теперь получит ошибку 403 Forbidden
:
https: // server_domain_or_IP / hiddenlink
В следующем подразделе этого руководства будет подробно описано, как использовать SSH-туннелирование для доступа к веб-серверу через локальные запросы. Таким образом, вы по-прежнему сможете получить доступ к интерфейсу phpMyAdmin, даже если ваш IP-адрес изменится.
Доступ к phpMyAdmin через зашифрованный туннель
SSH-туннелирование работает как способ перенаправления сетевого трафика через зашифрованные каналы.Запустив команду ssh
, аналогичную той, которую вы использовали бы для входа на сервер, вы можете создать безопасный «туннель» между вашим локальным компьютером и этим сервером. После установления туннеля весь трафик, поступающий на данный локальный порт, может быть перенаправлен через зашифрованный туннель с использованием удаленного сервера в качестве прокси-сервера перед выходом в Интернет. Это похоже на то, что происходит, когда вы используете виртуальную частную сеть (VPN), но туннели SSH обычно требуют меньше настроек для настройки.
Вы можете использовать SSH-туннелирование для проксирования ваших запросов на удаленный веб-сервер, на котором запущен phpMyAdmin. Создав туннель между вашим локальным компьютером и сервером, на котором установлен phpMyAdmin, вы можете перенаправлять локальные запросы на удаленный веб-сервер. Что еще более важно, трафик будет зашифрован, и запросы будут поступать в Nginx, как если бы они исходили с localhost . Таким образом, независимо от того, с какого IP-адреса вы подключаетесь, вы сможете безопасно получить доступ к интерфейсу phpMyAdmin.
Поскольку трафик между вашим локальным компьютером и удаленным веб-сервером будет зашифрован, это безопасная альтернатива для ситуаций, когда у вас не может быть установлен сертификат SSL / TLS на веб-сервере, на котором запущен phpMyAdmin.
С локального компьютера запускайте эту команду всякий раз, когда вам нужен доступ к phpMyAdmin:
- пользователь ssh @ server_domain_or_IP -L 8000: localhost: 80 -L 8443: localhost: 443 -N
Давайте рассмотрим каждую часть команды:
- пользователь : профиль пользователя Ubuntu для подключения на сервере, где работает phpMyAdmin
- server_domain_or_IP : SSH-хост, на котором работает phpMyAdmin
- -L 8000: localhost: 80 перенаправляет HTTP-трафик на порт
8000
- -L 8443: localhost: 443 перенаправляет HTTPS-трафик на порт
8443
- -N : предотвращает выполнение удаленных команд
Примечание: Эта команда будет блокировать терминал до тех пор, пока вы не прервете его, нажав CTRL + C
, и в этом случае она завершит соединение SSH и остановит перенаправление пакетов.Если вы предпочитаете запускать эту команду в фоновом режиме, вы можете включить опцию SSH -f
.
Теперь перейдите в свой браузер и замените server_domain_or_IP на localhost: PORT
, где PORT
— это либо 8000
для HTTP, либо 8443
для HTTPS:
http: // локальный: 8000 / скрытая ссылка
https: // localhost: 8443 / скрытая ссылка
Примечание: Если вы получаете доступ к phpMyAdmin через HTTPS, вы можете получить предупреждающее сообщение с вопросом о безопасности сертификата SSL.Это происходит из-за того, что используемое вами доменное имя (localhost) не соответствует адресу, зарегистрированному в сертификате (то есть домену, на котором фактически обслуживается phpMyAdmin). Будьте уверены, что это безопасно.
Также имейте в виду, что вам может потребоваться обновить сеанс браузера или дважды проверить URL-адрес, если вы настроили какие-либо перенаправления в файле конфигурации Nginx.
Все запросы на localhost: 8000
(HTTP) и localhost: 8443
(HTTPS) теперь перенаправляются через безопасный туннель в ваше удаленное приложение phpMyAdmin.Вы не только повысили безопасность, отключив публичный доступ к вашему phpMyAdmin, но и защитили весь трафик между вашим локальным компьютером и удаленным сервером, используя зашифрованный туннель для отправки и получения данных.
Если вы хотите принудительно использовать SSH-туннелирование для всех, кто хочет получить доступ к вашему интерфейсу phpMyAdmin (включая вас), вы можете сделать это, удалив любые другие авторизованные IP-адреса из файла конфигурации Nginx, оставив 127.0.0.1
как единственный хост, которому разрешен доступ к этому месту.~ / hiddenlink / {
разрешить 127.0.0.1; #allow localhost через туннели SSH
отрицать все; # запретить все другие источники
расположение ~ \ .php $ {
включить сниппеты / fastcgi-php.conf;
fastcgi_pass unix: /var/run/php/php7.4-fpm.sock;
}
}
. . .
}
Как только вы перезагрузите конфигурацию Nginx с помощью sudo systemctl reload nginx
, ваша установка phpMyAdmin будет заблокирована, и пользователям потребуется , чтобы использовать туннели SSH для доступа к интерфейсу phpMyAdmin через перенаправленные запросы.
Заключение
Следуя этому руководству, вы установили phpMyAdmin в Ubuntu 20.04 с Nginx в качестве веб-сервера. Вы также узнали о нескольких расширенных методах защиты установки phpMyAdmin в Ubuntu, таких как отключение входа в систему root , создание дополнительного уровня аутентификации и использование SSH-туннелирования для доступа к установке phpMyAdmin только через локальные запросы.
После изучения этого руководства вы сможете управлять своими базами данных MySQL через достаточно безопасный веб-интерфейс.Этот пользовательский интерфейс предоставляет большую часть функций, доступных через командную строку MySQL. Вы можете просматривать базы данных и схемы, выполнять запросы и создавать новые наборы данных и структуры.
Если вы хотите узнать больше о работе с MySQL, мы рекомендуем вам ознакомиться с этим введением в запросы в MySQL. Для более глубокого понимания SQL, помимо запросов, вам также может быть интересна наша серия руководств «Как использовать SQL».
Как установить phpMyAdmin с Nginx (LEMP) в Ubuntu 20.04 LTS
В этом руководстве будет показано, как установить phpMyAdmin с Nginx, MariaDB и PHP7.4 (LEMP) в Ubuntu 20.04. phpMyAdmin — это бесплатный веб-инструмент с открытым исходным кодом для управления базами данных, написанный на PHP. Он предоставляет пользователям графический веб-интерфейс для управления базой данных MySQL или MariaDB.
phpMyAdmin позволяет администраторам:
- просматривать базы данных и таблицы;
- создавать, копировать, переименовывать, изменять и удалять базы данных;
- создавать, копировать, переименовывать, изменять и удалять таблицы;
- выполнять обслуживание стола;
- поля добавления, редактирования и удаления;
- выполнить любой SQL-оператор, даже несколько запросов;
- создавать, изменять и удалять индексы;
- загружать текстовые файлы в таблицы;
- создавать и читать дампы таблиц или баз данных;
- экспорт данных в форматы SQL, CSV, XML, Word, Excel, PDF и LaTeX;
- администрировать несколько серверов;
- управлять пользователями и привилегиями MySQL;
- проверяет настройки сервера и информацию о времени выполнения с подсказками по настройке;
- проверяет ссылочную целостность в таблицах MyISAM;
- создавать сложные запросы, используя Query-by-example (QBE), автоматически
- соединительные необходимые таблицы;
- создание PDF-графики макета базы данных;
- искать глобально в базе данных или ее подмножестве;
- преобразовать сохраненные данные в любой формат, используя набор предопределенных функций, таких как отображение BLOB-данных в виде изображения или ссылки для загрузки;
- управлять таблицами InnoDB и внешними ключами;
Предварительные требования
Чтобы следовать этому руководству, вам понадобится Ubuntu 20.04 ОС, работающая на вашем локальном компьютере или на удаленном сервере.
Если вы ищете VPS (виртуальный частный сервер), вы можете щелкнуть эту специальную ссылку, чтобы получить бесплатный кредит в размере 100 долларов США на DigitalOcean. (Только для новых пользователей). Если вы уже являетесь пользователем DigitalOcean, вы можете щелкнуть эту специальную ссылку, чтобы получить бесплатный кредит в размере 50 долларов США на Vultr (только для новых пользователей).
Предполагается, что вы уже установили стек LEMP в Ubuntu 20.04. Если нет, ознакомьтесь со следующим руководством.
Разобравшись с этим, давайте приступим к установке phpMyAdmin.
Шаг 1. Загрузите и установите phpMyAdmin в Ubuntu 20.04
phpMyAdmin включен в репозиторий программного обеспечения Ubuntu 20.04, поэтому мы можем легко установить его с помощью следующей команды.
sudo apt update sudo apt установить phpmyadmin
Приведенная выше команда установит все необходимые зависимости, включая расширения PHP7. Во время установки он спросит, хотите ли вы использовать dbconfig-common
для настройки базы данных. Нажмите клавишу TAB, чтобы выбрать Да.
Это также создаст нового пользователя базы данных с именем phpmyadmin
. Дайте этому пользователю пароль.
Далее вам будет предложено выбрать веб-сервер для настройки. Nginx нет в списке, поэтому нажмите клавишу TAB и нажмите OK, чтобы пропустить этот шаг.
После этого создается новая база данных с именем phpmyadmin
, и пользователь базы данных phpmyadmin
имеет необходимые привилегии для управления этой базой данных. Если вам, как и мне, интересно, вы можете войти в MariaDB и проверить, какие права были предоставлены пользователю phpmyadmin
.
Вы можете использовать следующую команду для входа на сервер MariaDB.
sudo mysql -u корень
Тогда проверьте привилегии.
Гранты на выставку
для [электронная почта защищена];
Выход:
Как видите, пользователь phpmyadmin
имеет все привилегии в базе данных phpmyadmin
. Теперь вы можете выйти, выполнив:
выход;
Шаг 2: Создайте серверный блок Nginx для phpMyAdmin
Чтобы иметь доступ к веб-интерфейсу phpMyAdmin, нам нужно создать блок сервера Nginx, выполнив следующую команду.
судо нано /etc/nginx/conf.d/phpmyadmin.conf
Мы настроим его так, чтобы иметь доступ к phpMyAdmin через поддомен. Вставьте следующий текст в файл. Замените pma.example.com
своим фактическим субдоменом и не забудьте создать для него запись A DNS.
сервер { слушать 80; слушать [::]: 80; имя_сервера pma.example.com; корень / usr / share / phpmyadmin /; index index.php index.html index.htm index.nginx-debian.html; access_log / var / log / nginx / phpmyadmin_access./ (doc | sql | setup) / { отрицать все; } расположение ~ \ .php $ { fastcgi_pass unix: /run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $ document_root $ fastcgi_script_name; включить fastcgi_params; включить сниппеты / fastcgi-php.conf; } location ~ /\.ht { отрицать все; } }
Ваши файлы phpMyAdmin находятся в каталоге / usr / share / phpmyadmin /
. Сохраните и закройте файл. Затем проверьте конфигурации Nginx.
судо nginx -t
Если проверка прошла успешно, перезагрузите Nginx, чтобы изменения вступили в силу.
sudo systemctl перезагрузить nginx
Теперь у вас должен быть доступ к веб-интерфейсу phpMyAdmin через
.
pma.example.com
Шаг 3. Установка сертификата TLS
Чтобы защитить веб-интерфейс phpMyadmin, мы можем установить бесплатный сертификат Let’s Encrypt TLS. Установите клиент Let’s Encrypt из репозитория программного обеспечения Ubuntu 20.04, как показано ниже:
sudo apt установить certbot python3-certbot-nginx
Python3-certbot-nginx
— это плагин Nginx для Certbot.Теперь выполните следующую команду, чтобы получить и установить сертификат TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp -d pma.example.com --email [защита электронной почты]
Где:
- –nginx : используйте средство проверки подлинности и установщик Nginx
- –agree-tos : Примите условия использования Let’s Encrypt
- –redirect : принудительное использование HTTPS с помощью перенаправления 301.
- –hsts : Добавьте заголовок Strict-Transport-Security к каждому ответу HTTP.
- –staple-ocsp : Включает сшивание OCSP.
- –must-staple : добавляет к сертификату расширение OCSP Must Staple.
- -d следует список доменных имен, разделенных запятыми. Вы можете добавить до 100 доменных имен.
- –email : Электронная почта, используемая для регистрации и восстановления связи.
За флагом
Вас спросят, хотите ли вы получать электронные письма от EFF (Electronic Frontier Foundation). После выбора Y или N ваш сертификат TLS будет автоматически получен и настроен для вас, о чем свидетельствует сообщение ниже.
Шаг 4. Проверьте свой сертификат TLS
Перейдите на ssllabs.com, чтобы проверить сертификат и конфигурацию TLS. Вы должны получить A + , потому что HSTS включен.
Шаг 5. Устранение ошибки входа phpMyAdmin
Если вы войдете в систему с учетной записью root MariaDB, вы можете увидеть следующую ошибку.
# 1698 - Доступ запрещен для пользователя root @ localhost
и
mysqli_real_connect (): (HY000 / 1698): доступ запрещен для пользователя root @ localhost
Если вы войдете в систему с пользователем phpmyadmin
, вы не увидите вышеуказанную ошибку.Однако пользователь phpmyadmin
может использоваться только для администрирования базы данных phpmyadmin
. Причина ошибки в том, что по умолчанию пользователь root MariDB аутентифицируется через плагин unix_socket, а не через плагин mysql_native_password
. Чтобы обойти эту проблему, мы можем создать другого пользователя с правами администратора и предоставить все права новому пользователю с правами администратора.
Войдите на сервер MariaDB из командной строки.
sudo mariadb -u корень
Создайте пользователя с правами администратора с аутентификацией по паролю.
создать пользователя [защищенная электронная почта], идентифицированного «выбранным вами паролем»;
Предоставить все привилегии для всех баз данных.
предоставить все привилегии на *. * [Защищенная электронная почта] с опцией предоставления;
Очистить привилегии и выйти;
привилегий на сброс; выход;
Теперь вы можете войти в phpMyAdmin с учетной записью администратора и управлять всеми базами данных.
Автоматическое продление сертификата TLS
Для автоматического продления сертификата Let’s Encrypt просто отредактируйте файл crontab пользователя root.
судо crontab -e
Затем добавьте следующую строку внизу.
@daily certbot обновить --quiet && systemctl reload nginx
Требуется перезагрузка Nginx для получения нового сертификата клиентам.
Заключение
Я надеюсь, что это руководство помогло вам установить phpMyAdmin с Nginx на Ubuntu 20.04 LTS. Как всегда, если вы нашли этот пост полезным, подпишитесь на нашу бесплатную рассылку, чтобы получать больше советов и рекомендаций. Береги себя 🙂
Оцените этот учебник
[Всего: 2 Среднее: 4.5]
Установка phpMyAdmin для Nginx в Ubuntu 18.04 / 19.10
Предварительные требования
Вы должны использовать пользователя без полномочий root с привилегиями sudo, как описано в разделе «Начальная настройка сервера Ubuntu 18.04 / 19.10».
У вас также должен быть установлен стек LEMP (Nginx, MySQL и PHP), прежде чем продолжить работу с этим руководством. Если они еще не установлены, см. Раздел Установка стека LEMP (Nginx, MySQL, PHP) в Ubuntu 18.04 / 19.10.
1. Установите phpMyAdmin
Начнем с обновления списков пакетов и установки phpMyAdmin в Ubuntu 18.04 / 19.10. Ниже у нас есть две команды, разделенные &&
. Первая команда обновит списки пакетов, чтобы убедиться, что вы получаете последнюю версию и зависимости для phpMyAdmin. Вторая команда загрузит и установит phpMyAdmin. Нажмите y
и ENTER
, когда вас попросят продолжить.
sudo apt update && sudo apt install phpmyadmin
Порядок следующих экранов в конфигурации пакета phpMyAdmin может различаться в зависимости от ваших настроек.
Если вам будет предложено выбрать веб-сервер, как показано ниже, поскольку для Nginx нет опции, нажмите TAB
, а затем ENTER
, чтобы продолжить, не выбирая веб-сервер.
Выберите Да и нажмите ENTER
, чтобы установить и настроить базу данных.
Пароль приложения MySQL используется внутри phpMyAdmin только для связи с MySQL. Вы можете оставить это поле пустым, и пароль будет сгенерирован автоматически.Просто нажмите ENTER
, чтобы продолжить.
2. Создать символическую ссылку
Чтобы Nginx правильно обслуживал файлы phpMyAdmin, мы должны создать символическую ссылку из каталога phpMyAdmin / usr / share / phpmyadmin
на корневой каталог документов Nginx.
Расположение корня документа Nginx по умолчанию в Ubuntu 18.04 / 19.10 должно быть / var / www / html /
, хотя оно может отличаться в зависимости от ваших настроек. Если вы следовали предыдущему руководству по настройке нескольких доменов для Nginx, корень вашего документа может находиться где-то вроде / var / www / example.com / public_html
.
После подтверждения корня документа давайте создадим символическую ссылку из каталога phpMyAdmin на корень документа. Здесь мы предположим, что корень вашего документа — / var / www / html /
, и мы просто добавим phpmyadmin
в его конец. Это позволит нам получить доступ к phpMyAdmin по адресу example.com/phpmyadmin
.
sudo ln -s / usr / share / phpmyadmin / var / www / html / phpmyadmin
3. Тест phpMyAdmin
Теперь у вас должна быть возможность получить доступ к веб-интерфейсу phpMyAdmin, посетив доменное имя вашего сервера или общедоступный IP-адрес, за которым следует / phpmyadmin
.например http://example.com/phpmyadmin
или http://192.168.1.10/phpmyadmin
Если у вас еще нет доменного имени и вы не знаете свой IP-адрес, вы можете узнать его по:
ip a | grep -Eo 'inet (addr:)? ([0-9] * \.) {3} [0-9] *' | grep -Eo '([0-9] * \.) {3} [0-9] *' | grep -v '127.0.0.1'
При первой установке MySQL вы должны установить пользователя root
и пароль. Однако удаленный вход может быть отключен для root
.Если вы получаете сообщение об ошибке «Доступ запрещен для пользователя‘ root ’@’ localhost ‘», вам следует перейти к шагу 4, чтобы создать суперпользователя только для phpMyAdmin.
4. Создайте пользователя MySQL
Если вы не смогли войти в систему как root
, как описано выше, теперь вы можете создать учетную запись суперпользователя только для phpMyAdmin.
В терминале войдите в MySQL как root
. Возможно, вы создали пароль root при первой установке MySQL или пароль может быть пустым, и в этом случае вы можете просто нажать ENTER
при запросе пароля.Если вы забыли пароль root, см .: Как сбросить пароль root MySQL в Ubuntu.
sudo mysql -p -u корень
Теперь добавьте нового пользователя MySQL с именем пользователя по вашему выбору. В этом примере мы называем его pmauser
(php, мой пользователь с правами администратора). Обязательно замените password_here
своим собственным (сгенерируйте пароль).
Символ %
сообщает MySQL разрешить этому пользователю входить в систему из любого места удаленно. Если вам нужна повышенная безопасность, вы можете заменить его IP-адресом.
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'pmauser' @ '%' ИДЕНТИФИЦИРОВАНО 'password_here';
Теперь мы предоставим привилегии суперпользователя нашему новому пользователю pmauser
.
ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *. * 'Pmauser' @ '%';
Теперь у вас должна быть возможность получить доступ к phpMyAdmin, используя эту новую учетную запись пользователя.
Если вы хотите настроить дополнительную безопасность для phpMyAdmin, перейдите к следующему шагу.
5. Неизвестный URL-адрес phpMyAdmin
Боты и злоумышленники постоянно сканируют веб-серверы в поисках страницы входа phpMyAdmin, поэтому рекомендуется изменить URL-адрес на другой.
В этом примере мы собираемся изменить его с example.com/phpmyadmin
на example.com/pma_hidden
, хотя вы можете изменить его на все, что захотите.
На шаге 2 мы создали символическую ссылку в корне документа / var / www / html / phpmyadmin
Все, что нам нужно сделать, это переименовать эту символическую ссылку, в этом примере, в: pma_hidden
. Убедитесь, что вы ввели здесь правильный корень документа. По умолчанию это / var / www / html
, хотя это может быть что-то вроде / var / www / example.com / public_html /
на вашем сервере.
Судо mv / var / www / html / phpmyadmin / var / www / html / pma_hidden
Теперь у вас должен быть доступ к phpMyAdmin по адресу example.com/pma_hidden
6. Защитите phpMyAdmin (необязательно)
Чтобы обеспечить дополнительный уровень безопасности, мы можем настроить аутентификацию в Nginx.
Во-первых, создайте надежный пароль и храните его в безопасности.
Теперь мы установим apache2-utils
, который может сгенерировать файл .htpasswd
, который работает как с Nginx, так и с Apache.
sudo apt установить apache2-utils
После установки мы можем сгенерировать файл .htpasswd
. Просто измените имя пользователя
на любое желаемое. Сгенерируйте пароль и сохраните его.
sudo htpasswd -c /etc/nginx/.htpasswd имя пользователя
Теперь должен быть файл .htpasswd
, содержащий ваше имя пользователя и зашифрованный пароль. Вы можете проверить по телефону:
кот / etc / nginx /.htpasswd
Вы должны увидеть что-то вроде имени пользователя: $ apr1sdfsdf4435sdtskLfWmmg1sfdsdgg4
Теперь нам нужно добавить две директивы в наш файл конфигурации Nginx. Расположение файла конфигурации может отличаться в зависимости от вашей настройки, хотя по умолчанию обычно находится в / etc / nginx / sites-available / default
. Если вы настроили несколько доменов в предыдущем руководстве, ваш файл конфигурации может находиться где-то вроде /etc/nginx/sites-available/example.com
В этом примере мы предполагаем, что файл конфигурации находится в / etc / nginx / sites-available / default
.Откройте файл для редактирования.
судо нано / и т. Д. / Nginx / сайты-доступные / по умолчанию
Прокрутите вниз и найдите блок location
и вставьте под ним новый блок с именем скрытой папки phpMyAdmin, в этом примере pma_hidden
. (Используйте правую кнопку мыши для вставки при использовании PuTTY для Windows)
/ и т.д. / nginx / сайты-доступные / по умолчанию
location / pma_hidden {
auth_basic «Ограниченный доступ»;
auth_basic_user_file / etc / nginx /.htpasswd;
}
Сохраните файл и выйдите (нажмите CTRL
+ X
, нажмите Y
, а затем нажмите ENTER
).
Убедитесь, что конфигурационный файл Nginx действителен, иначе сервер может вылететь при перезапуске.
Судо Nginx -t
Если допустимо, перезагрузите конфигурацию Nginx.
sudo service nginx перезагрузить
Теперь при посещении example.com/pma_hidden
вы должны увидеть окно аутентификации.
Готово!
Что дальше?
К настоящему времени вы успешно реализовали свой стек LEMP (Linux / MySQL / PHP) для Ubuntu 18.04 / 19.10 и можете администрировать MySQL через phpMyAdmin.
Теперь вы можете настроить SSL для своего домена или настроить FTP.
Сообщите мне, помогло ли это. Подписывайтесь на меня в Twitter, Facebook и YouTube или 🍊 купите мне смузи.
шт. Я увеличил свой доход от AdSense на 200% с помощью ИИ 🤖. Прочтите мой обзор Ezoic, чтобы узнать, как это сделать.
Как установить и защитить phpMyAdmin для Nginx в Ubuntu 20.04 / 20.10
Предварительные требования
Вы должны использовать пользователя без полномочий root с привилегиями sudo, как описано в разделе «Начальная настройка сервера Ubuntu 20.04 / 20.10».
У вас также должен быть установлен стек LEMP для Ubuntu 20.04 / 20.10, который обслуживает веб-страницы, прежде чем продолжить работу с этим руководством.
1. Установите phpMyAdmin
Начнем с обновления списков пакетов и установки phpMyAdmin для Nginx в Ubuntu 20.04 / 20.10.
sudo apt update && sudo apt install phpmyadmin
Нажмите y
и ENTER
, когда будет предложено продолжить.
1.1. Ничего не выбрать
Если вам будет предложено выбрать веб-сервер, как показано ниже, поскольку для Nginx нет опции, нажмите TAB
, а затем ENTER
, чтобы продолжить, не выбирая веб-сервер.
1.2. Настроить базу данных
Выберите Да и нажмите ENTER
, чтобы установить и настроить базу данных.
1.3. Пароль приложения
Пароль приложения MySQL используется внутри phpMyAdmin для связи с MySQL, и не рекомендуется использовать его для входа в phpMyAdmin. Вы можете оставить это поле пустым, и пароль будет сгенерирован автоматически.
Нажмите ENTER
, чтобы продолжить.
2. Создать символическую ссылку
Чтобы Nginx правильно обслуживал файлы phpMyAdmin, мы должны создать символическую ссылку из каталога phpMyAdmin / usr / share / phpmyadmin
на корневой каталог документов Nginx.
Расположение корня документа Nginx по умолчанию в Ubuntu 20.04 / 20.10 должно быть / var / www / html /
, хотя оно может отличаться в зависимости от ваших настроек. Если вы следовали предыдущему руководству по настройке нескольких доменов для Nginx, корень вашего документа может находиться где-то вроде /var/www/example.com/public_html
.
После подтверждения корня документа давайте создадим символическую ссылку из каталога phpMyAdmin на корень документа. Здесь мы предположим, что корень вашего документа — / var / www / html /
, и мы просто добавим phpmyadmin
в его конец.Это позволит нам получить доступ к phpMyAdmin по адресу example.com/phpmyadmin
.
sudo ln -s / usr / share / phpmyadmin / var / www / html / phpmyadmin
3. Тест phpMyAdmin
Теперь у вас должна быть возможность получить доступ к веб-интерфейсу phpMyAdmin, посетив доменное имя вашего сервера или общедоступный IP-адрес, за которым следует / phpmyadmin
. например http://example.com/phpmyadmin
или http://192.168.1.10/phpmyadmin
Если у вас еще нет доменного имени или вы не знаете свой IP-адрес, вы можете узнать его по:
ip-адрес показать eth0 | grep inet | awk '{print $ 2; } '| sed 's / \ /.* $ // '
Учетная запись root MySQL и phpMyAdmin
В MySQL 5.7 и выше вы не сможете войти в phpMyAdmin, используя учетную запись root MySQL, и получите сообщение об ошибке «Доступ запрещен для пользователя root’ @ ’localhost ‘» . Вместо этого вам следует создать новую учетную запись суперпользователя только для phpMyAdmin. Если вы хотите, чтобы MySQL разрешил вход в систему с правами root через phpMyAdmin, см. Статью: Невозможно войти в phpMyAdmin с root
.
4. Создайте суперпользователя MySQL
В терминале войдите в MySQL, используя пароль root MySQL .
Возможно, вы создали пароль root при первой установке MySQL или пароль может быть пустым. Если вы забыли свой корневой пароль MySQL, см .: Сброс корневого пароля MySQL
После входа в систему добавьте нового суперпользователя MySQL с именем пользователя по вашему выбору. В этом примере мы называем его pmauser
. Щелкните здесь, чтобы сгенерировать надежный пароль и заменить им password_here
ниже.
СОЗДАТЬ ПОЛЬЗОВАТЕЛЯ 'pmauser' @ 'localhost', ОПРЕДЕЛЕННЫЙ 'password_here';
Теперь предоставьте привилегии суперпользователя нашему новому пользователю pmauser
.
ПРЕДОСТАВЛЯЙТЕ ВСЕ ПРИВИЛЕГИИ НА *. * 'Pmauser' @ 'localhost';
Закройте MySQL.
Теперь у вас должна быть возможность получить доступ к phpMyAdmin, используя эту новую учетную запись пользователя.
Настоятельно рекомендуется настроить дополнительную безопасность для phpMyAdmin, выполнив следующие действия.
5. Неизвестный URL-адрес phpMyAdmin (рекомендуется)
Боты и злоумышленники постоянно сканируют веб-серверы в поисках страницы входа phpMyAdmin, поэтому рекомендуется изменить URL-адрес на другой.
В этом примере мы собираемся изменить его с example.com/phpmyadmin
на example.com/pma_hidden
, хотя вы можете изменить его на все, что захотите.
На шаге 2 мы создали символическую ссылку в корне документа / var / www / html / phpmyadmin
Все, что нам нужно сделать, это переименовать эту символическую ссылку, в этом примере, в: pma_hidden
. Убедитесь, что вы ввели здесь правильный корень документа. По умолчанию это / var / www / html
, хотя это может быть что-то вроде / var / www / example.com / public_html /
на вашем сервере.
Судо mv / var / www / html / phpmyadmin / var / www / html / pma_hidden
Теперь у вас должен быть доступ к phpMyAdmin по адресу example.com/pma_hidden
6. Безопасный phpMyAdmin (рекомендуется)
Чтобы обеспечить дополнительный уровень безопасности, мы можем настроить аутентификацию в Nginx.
Теперь мы установим apache2-utils
, который может сгенерировать файл .htpasswd
, который работает как с Nginx, так и с Apache.
sudo apt установить apache2-utils
После установки мы можем сгенерировать файл .htpasswd
. Просто измените имя пользователя
на любое желаемое. Сгенерируйте пароль и сохраните его.
sudo htpasswd -c /etc/nginx/.htpasswd имя пользователя
Теперь должен быть файл .htpasswd
, содержащий ваше имя пользователя и зашифрованный пароль. Вы можете проверить по телефону:
Вы должны увидеть что-то вроде имени пользователя: $ apr1sdfsdf4435sdtskLfWmmg1sfdsdgg4
Теперь нам нужно добавить две директивы в наш файл конфигурации Nginx.Расположение файла конфигурации может отличаться в зависимости от вашей настройки, хотя по умолчанию обычно находится в / etc / nginx / sites-available / default
. Если вы настроили несколько доменов в предыдущем руководстве, ваш файл конфигурации может находиться где-то вроде /etc/nginx/sites-available/example.com
В этом примере мы предполагаем, что файл конфигурации находится в / etc / nginx / sites-available / default
. Откройте файл для редактирования.
судо нано / и т. Д. / Nginx / сайты-доступные / по умолчанию
Прокрутите вниз и найдите блоки location
и вставьте под ними новый блок с именем скрытой папки phpMyAdmin, в этом примере pma_hidden
.
/ и т.д. / nginx / сайты-доступные / по умолчанию
location / pma_hidden {
auth_basic «Ограниченный доступ»;
auth_basic_user_file /etc/nginx/.htpasswd;
}
Сохраните файл и выйдите (нажмите CTRL
+ X
, нажмите Y
, а затем нажмите ENTER
).
Убедитесь, что конфигурационный файл Nginx действителен, иначе сервер может вылететь при перезапуске.
Если допустимо, перезагрузите конфигурацию Nginx.
sudo service nginx перезагрузить
Теперь при посещении пример.com / pma_hidden
, вам должно быть представлено окно аутентификации.
Готово!
Что дальше?
К настоящему времени вы успешно реализовали свой стек LEMP для Ubuntu 20.04 / 20.10 и можете администрировать MySQL через phpMyAdmin.
Теперь вы можете настроить SSL для своего домена или настроить FTP-сервер.
Обновление phpMyAdmin вручную (необязательно)
Репозитории часто не предоставляют вам последние версии phpMyAdmin.Если вы хотите вручную обновить до последней версии, см .:
Сообщите мне, помогло ли это. Подписывайтесь на меня в Twitter, Facebook и YouTube или 🍊 купите мне смузи.
шт. Я увеличил свой доход от AdSense на 200% с помощью ИИ 🤖. Прочтите мой обзор Ezoic, чтобы узнать, как это сделать.
.