这是我的 phpmyadmin 配置文件:
server {
listen 8080;
server_name phpmyadmin;
access_log /var/log/nginx/phpmyadmin.access.log;
error_log /var/log/nginx/phpmyadmin.error_log warn;
root /var/www/phpmyadmin;
index index.php index.htm;
location ~ \.php {
include /etc/nginx/fastcgi_params;
keepalive_timeout 0;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
}
现在当我访问时,http://domain.com:8080
它会打开 phpmysdmin 网站。我希望它只在访问时打开 phpmyadmin http://domain.com:8080/phpmyadmin
。我需要在这里进行哪些更改?
我有大约 4 或 5 个应用程序要从 nginx 运行,并且我希望将每个应用程序保存在自己的sites-enabled
配置文件中,而不是一个涵盖所有应用程序的大配置文件中。
答案1
更详细一点:
server {
listen 8080;
server_name phpmyadmin;
access_log /var/log/nginx/phpmyadmin.access.log;
error_log /var/log/nginx/phpmyadmin.error_log warn;
location ~ /phpmyadmin/.*\.php {
root /var/www;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}
location /phpmyadmin/ {
root /var/www;
index index.php;
}
location = /phpmyadmin {
rewrite ^ /phpmyadmin/index.php;
}
location / {
return 403;
}
}
还要注意根设置:它与请求路径有关,而不是其后的任何内容。因此,请求http://phpmyadmin/phpmyadmin/index.php将使 nginx 尝试在 $root/phpmyadmin/index.php 中查找文件,其中 $root 是位置块中设置的根路径。
答案2
使用地点:
location /phpmyadmin {
root /var/www/phpmyadmin;
include /etc/nginx/fastcgi_params;
keepalive_timeout 0;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass 127.0.0.1:9000;
}