phpMyAdmin е стандартен инструмент за работа с MySQL/MariaDB бази данни. Ще инсталираме приложението и ще го конфигурираме да работи с Nginx сървър.
Системата, върху която ще работим, е със следните параметри:
[angie@CentOS-server srv]$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
|
[angie@CentOS-server srv]$ uname -r
3.10.0-957.27.2.el7.x86_64
|
Използваме yum за инсталираме пакета, като заедно с него се инсталират още 12, като по този начин се спазват всички зависимости.
[angie@CentOS-server ~]$ sudo yum install phpMyAdmin.noarch -y
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
…... Installing:
phpMyAdmin noarch 4.4.15.10-3.el7 epel 4.7 M
Installing for dependencies:
compat-libtidy x86_64 0.99.0-37.20091203.el7 epel 133 k
php-bcmath x86_64 5.4.16-46.el7 base 58 k
php-fedora-autoloader noarch 1.0.0-1.el7 epel 9.6 k
php-gd x86_64 5.4.16-46.el7 base 128 k
php-mbstring x86_64 5.4.16-46.el7 base 505 k
php-php-gettext noarch 1.0.12-1.el7 epel 23 k
php-process x86_64 5.4.16-46.el7 base 56 k
php-tcpdf noarch 6.2.26-1.el7 epel 2.1 M
php-tcpdf-dejavu-sans-fonts noarch 6.2.26-1.el7 epel 257 k
php-tidy x86_64 5.4.16-9.el7 epel 23 k
php-xml x86_64 5.4.16-46.el7 base 126 k
t1lib x86_64 5.1.2-14.el7 base 166 k
…...
Install 1 Package (+12 Dependent packages)
Total download size: 8.2 M
Installed size: 39 M
…...
Complete!
|
След версия 7.3 на CentOS не се използват отделни директории за разрешени и достъпни виртуални сървъри, а се използва общата директория /etc/nginx/conf.d/. В нея създаваме конфигурационен файл на phpMyAdmin (phpMyAdmin.conf ) със следното съдържание:
server {
listen 80;
server_name phpmyadmin;
location / {
index index.php;
root /usr/share;
}
## Images and static content is treated different
location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
access_log off;
expires 30d;
}
location ~ /\.ht {
deny all;
}
location ~ /(libraries|setup/frames|setup/libs) {
deny all;
return 404;
}
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
|
След рестартиране на Nginx можем да направим опит да се свържем с phpMyAdmin. За съжаление получаваме съобщение за грешка:
"PHP message: PHP Fatal error: Call to undefined function __() in /usr/share/phpMyAdmin/libraries/core.lib.php on line 245"
|
Проблемът е, че по подразбиране сесиите са разрешени за потребителите от група apache, а потребителят на нашия сървър е nginx със същата група. Променяме собствеността:
sudo chown -Rfv root:nginx /var/lib/php/session
|
Сега, след избор на адрес http://server_domain_or_IP/phpMyAdmin трябва да получим:
Проблемът е, че сега phpMyAdmin е достъпен от цялата мрежа и всеки „хакер“ може да се пробва да налучква потребителското ни име и паролата ни. Затова в блока „location /“ ще добавим още няколко реда, които ще дадат достъп до phpMyAdmin само от локалната мрежа (разбира се, адресите трябва да се променят според локалните настройки). Могат да се настроят и конкретни отделни адреси, които имат правата за работа и достъп:
# allow anyone in 192.168.1.0/24
allow 192.168.1.0/24;
# drop rest of the world
deny all;
|
След рестарт на сървъра, при опит за достъп до phpMyAdmin, „хакерът“ ще получава:
Успех!
Източници:
Коментари
Публикуване на коментар