![Nginx PHP-FPM 基本驗證](https://rvso.com/image/568267/Nginx%20PHP-FPM%20%E5%9F%BA%E6%9C%AC%E9%A9%97%E8%AD%89.png)
我已經nginx
安裝php-fpm
在Debian Squeeze
.
目錄樹是:
- /var/www/我的網站
- 索引.php
- 秘密_資料夾_1
- 管理文件
- 靜態.html
- 秘密_資料夾_2
- 管理文件
- 靜態.html
- 圖片
- img01.jpg
我需要關閉secret_folder_1
並secret_folder_2
與basic_auth
.現在配置看起來像:
location ~ /secret_folder_1/.+\.php$
{
root /var/www/mysite/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /var/www/mysite$fastcgi_script_name;
include fastcgi_params;
auth_basic "Restricted Access";
auth_basic_user_file /path/to/.passwd;
}
location ~ /secret_folder_1/.*
{
root /var/www/mysite/;
auth_basic "Restricted Access";
auth_basic_user_file /path/to/.passwd;
}
相同的配置secret_folder_2
。
正常嗎?我的意思是,第一個位置用於php
在受限資料夾中提供文件,第二個位置用於提供靜態文件。
可以簡化嗎?
答案1
嵌套位置可能會更好:
location /secret_folder_1 {
root /var/www/mysite/;
auth_basic "Restricted Access";
auth_basic_user_file /path/to/.passwd;
location ~* \.php$ {
fastcgi_pass 127.0.0.1:9000;
include fastcgi.conf;
}
}
請注意,您應該使用$document_root
變數而不是硬編碼來定義 SCRIPT_FILENAME 參數/var/www/mysite/
:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;