Несколько поддоменов для входа в phpMyAdmin с Nginx

Несколько поддоменов для входа в phpMyAdmin с Nginx

Я пытаюсь разрешить двум отдельным поддоменам с двух разных сайтов входить в один и тот же 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 {}блок.

Связанный контент