Я пытаюсь настроить 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;
}
}
спасибо.
Насколько я знаю, nginx не позволяет разделять местоположение между серверами. Вы должны добавить местоположение phpmyadmin в каждый раздел сервера (для каждого домена) или настроить nginx для прослушивания дополнительного порта (например, listen 88
) и настроить его местоположение для phpmyadmin, чтобы он был во всех доменах, но на другом порт.
Насколько я знаю, вам необходимо установить эти директивы 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;
}