настроить nginx так, чтобы весь домен мог / phpmyadmin

Я пытаюсь настроить nginx, чтобы каждый виртуальный хост мог получить доступ к phpmyadmin вот так example.com/phpmyadmin
Я пробовал использовать эту конфигурацию, но безуспешно
это мой файл по умолчанию

server {
    #return 404;
        location /phpmyadmin {
               root /usr/share/nginx/phpmyadmin/;
               index index.php index.html index.htm;
               location ~ ^/phpmyadmin/(.+\.php)$ {
                       try_files $uri =404;
                       root /usr/share/nginx/phpmyadmin/;
                       fastcgi_pass unix:/run/php/php7.1-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/nginx/phpmyadmin/;
               }
        }
        location /phpMyAdmin {
               rewrite ^/* /phpmyadmin last;
        }
}

спасибо.

-1
задан 9 May 2017 в 16:40
2 ответа

Насколько я знаю, nginx не позволяет разделять местоположение между серверами. Вы должны добавить местоположение phpmyadmin в каждый раздел сервера (для каждого домена) или настроить nginx для прослушивания дополнительного порта (например, listen 88 ) и настроить его местоположение для phpmyadmin, чтобы он был во всех доменах, но на другом порт.

0
ответ дан 5 December 2019 в 19:42

Насколько я знаю, вам необходимо установить эти директивы location / phpmyadmin {...} для каждого сервера, каждого виртуального хоста, которые вы не можете установить их один раз и будут активны для всех блоков server {} .

Самым простым, вероятно, является создание файла phpmyadmin.include , который вы загружаете с каждого сервера:

# conf/phpmyadmin.conf
location /phpmyadmin {
           root /usr/share/nginx/phpmyadmin/;
           index index.php index.html index.htm;
           location ~ ^/phpmyadmin/(.+\.php)$ {
                   try_files $uri =404;
                   root /usr/share/nginx/phpmyadmin/;
                   fastcgi_pass unix:/run/php/php7.1-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/nginx/phpmyadmin/;
           }
}
location /phpMyAdmin {
           rewrite ^/* /phpmyadmin last;
}

, а затем

server { 
  listen       80;
  server_name  example.com www.example.com;
  include      conf/phpmyadmin.conf;
}
server { 
  listen       80;
  server_name  example.org www.example.org;
  include      conf/phpmyadmin.conf;
}
1
ответ дан 5 December 2019 в 19:42

Теги

Похожие вопросы