![Несколько поддоменов для входа в phpMyAdmin с Nginx](https://rvso.com/image/789297/%D0%9D%D0%B5%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D0%BE%20%D0%BF%D0%BE%D0%B4%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%20%D0%B4%D0%BB%D1%8F%20%D0%B2%D1%85%D0%BE%D0%B4%D0%B0%20%D0%B2%20phpMyAdmin%20%D1%81%20Nginx.png)
Я пытаюсь разрешить двум отдельным поддоменам с двух разных сайтов входить в один и тот же phpMyAdmin.
Я не уверен, как настроить файл, phpmyadmin.conf
чтобы Nginx знал, как перенаправить оба поддомена на страницу входа в phpMyAdmin.
Вот как выглядит мой server{}
блок Nginx./etc/nginx/conf.d/phpmyadmin.conf
server {
listen 80;
listen [::]:80;
server_name pma.example.com;
root /usr/share/phpmyadmin/;
index index.php index.html index.htm index.nginx-debian.html;
access_log /var/log/nginx/phpmyadmin_access.log;
error_log /var/log/nginx/phpmyadmin_error.log;
location / {
try_files $uri $uri/ /index.php;
}
location ~ ^/(doc|sql|setup)/ {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
location ~ /\.ht {
deny all;
}
}
Итак, мне интересно, как мне сделать и pma.example.com
поддомен, и pma.example.net
перенаправление на главную страницу входа в phpMyAdmin.
решение1
Это неHTTP-перенаправление, но Nginx может обслуживать одно и то же веб-приложение с нескольких имен хостов или путей.server_name
имеет
Синтаксис:
server_name name ...;
в твоем случае:
server_name pma.example.com pma.example.net;
...но с какой стати вы предлагаете доступ к phpMyAdmin по незашифрованному соединению?! Поэтому я бы предложил использовать общий путь. Таким образом, вам не придется беспокоиться о том, что каждый домен будет иметь дополнительный сертификат или SAN для поддомена. Его также легко настроить как глобальный псевдоним.
Вы могли бы следовать, например,учебник от Cloudbookletкоторые предлагают добавить фрагмент в /etc/nginx/snippets/phpmyadmin.conf
:
location /phpmyadmin {
root /usr/share/;
index index.php index.html index.htm;
location ~ ^/phpmyadmin/(.+\.php)$ {
try_files $uri =404;
root /usr/share/;
fastcgi_pass unix:/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
root /usr/share/;
}
}
Измените его в соответствии со своей средой: версией PHP FPM и т. д. После этого вы можете просто добавлять данные include /etc/nginx/snippets/phpmyadmin.conf;
в каждый server {}
блок.