Никогда особо не сталкивался с такой задачкой, но вот стало интересно, есть конечно множество более простых вариантов и один из них это забить, но стало интересно.
Абсолютно простой virtualhost
server {
server_name test-host.ua;
access_log /var/log/nginx/test-host.ua-access.log;
error_log /var/log/nginx/test-host.ua-error.log debug;
root /var/www/vhosts/test-host.ua;
location /pma {
alias /usr/share/phpMyAdmin;
index index.php index.html index.htm;
location ~ ^/pma/(.*\.php)$ {
alias /usr/share/phpMyAdmin;
try_files $uri =404;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
location ~* ^/pma(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
alias /usr/share/phpMyAdmin/$1;
}
}
}
При таком раскладе доступ к pma не работает, и вот почему:
2016/05/06 13:39:27 [error] 7450#0: *1 FastCGI sent in stderr: "Unable to open primary script: /usr/share/phpMyAdmin/pma/index.php (No such file or directory)" while reading response header from upstream, client
2016/05/06 13:44:26 [debug] 7572#0: *1 http script copy: "/usr/share/phpMyAdmin"
2016/05/06 13:44:26 [debug] 7572#0: *1 http script var: "/pma/index.php"
2016/05/06 13:44:26 [debug] 7572#0: *1 trying to use file: "/pma/index.php" "/usr/share/phpMyAdmin/pma/index.php"
2016/05/06 13:44:26 [debug] 7572#0: *1 trying to use file: "=404" "/usr/share/phpMyAdmin=404"
2016/05/06 13:44:26 [debug] 7572#0: *1 http finalize request: 404, "/pma/index.php?" a:1, c:1
2016/05/06 13:44:26 [debug] 7572#0: *1 http special response: 404, "/pma/index.php?"
Не совсем понимаю, как его заставить воспринимать путь к index.php без pma который он подставляет. Ну не реврайтить ведь каждый раз uri запрос или может я что-то делаю не так?
Естественно если делать все через location /phpMyAdmin все работает красиво, но хотелось бы чтобы имя было /pma или что-то подобное.