![Nginx PHP-FPM 基本認証](https://rvso.com/image/568267/Nginx%20PHP-FPM%20%E5%9F%BA%E6%9C%AC%E8%AA%8D%E8%A8%BC.png)
nginx
をにphp-fpm
インストールしましたDebian Squeeze
。
ディレクトリ ツリーは次のとおりです。
- /var/www/mysite
- インデックス
- 秘密のフォルダ1
- 管理者.php
- 静的.html
- 秘密のフォルダ2
- 管理者.php
- 静的.html
- ピクチャー
- 画像01.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
制限されたフォルダー内のファイルを提供するための最初の場所と、静的ファイルを提供するための 2 番目の場所です。
簡素化できますか?
答え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;
}
}
SCRIPT_FILENAME パラメータは$document_root
ハードコードではなく変数で定義する必要があることに注意してください/var/www/mysite/
。
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;