Не всегда удобно пользоваться консолью 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
Теперь можно проверить все ли работает. На этом всё.
[endtxt]