我不希望 phpMyAdmin 位于我的网站所在的文件夹中,但它们应该分别具有访问权限http://test.example.site
。http://test.example.site/phpMyAdmin
但这种配置似乎不起作用:
- 403 上
http://test.example.site/phpMyAdmin
No input file specified
在http://test.example.site/phpMyAdmin/index.php
配置如下所示。
server {
server_name test.example.site;
error_log /var/log/nginx/test.error.log error;
access_log /var/log/nginx/test.access.log;
root /home/me/test/www-site;
gzip on;
gzip_types application/x-javascript application/javascript text/javascript text/css;
client_max_body_size 50m;
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 1M;
}
location / {
index index.php index.html index.htm;
}
location /phpMyAdmin/ {
# one of those is included, both don't work
alias /home/me/test/phpMyAdmin;
root /home/me/test/;
}
location ~ \.php {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
答案1
你不能通过几个兄弟姐妹终止请求location
指令(除非您进行 URL 重写)。
您的请求
http://test.example.site/phpMyAdmin
返回,403
因为location /phpMyAdmin/
不能有索引文件(index
来自的指令location /
不适用),并且不允许目录列表。您的请求
http://test.example.site/phpMyAdmin/index.php
同样只能同时适合一个位置。因此,它将由 处理location ~ \.php
,其根为/home/me/test/www-site
,因为 中的指令location /phpMyAdmin/
不适用。
同样,指令alias
并且root
互相排斥。