再起動
sudo apachectl configtest && sudo apachectl graceful
-
apachectl configtest
- Apache の設定ファイル(通常は httpd.conf や関連するファイル群)が正しく構文解析できるかどうかをテスト
- 実際にはサーバーを再起動または停止しない
- 設定ファイルに構文上のエラーがないかをチェックする
- 再起動の前に行うと安全
- エラーがある場合は、そのエラーが報告され、コマンドは非ゼロのステータスで終了
-
apachectl graceful
- Apache に対して「優雅な」再起動を要求する
- これは、既存の接続を中断せずに、新しい設定でサーバーを再起動する方法
- 実際には、現在処理中のリクエストはその完了まで待たれ、新しいリクエストは更新された設定で処理される
- サーバーのダウンタイムを最小限に抑えつつ設定の変更を適用するのに適している。
- sudo 権限が必要
Basic認証
普通の掛け方
.htaccess
AuthType Basic
AuthName "Input ID and Password."
AuthUserFile フルパス/.htpasswd
require valid-user
.htpasswd
-
htpasswd
で作成する - basic認証作成サイトで作成する
特定のディレクトリだけかける
<Directory "D:/pg/Apache/Apache24/htdocs/private"> # かけたいディレクトリ
AuthType Basic
AuthName "Input ID and Password."
AuthBasicProvider file
AuthUserFile D:/pg/Apache/Apache24/password/passwords
</Directory>
↑これではできない。<Directory
ディレクティブがhtaccessでは使えない。Apacheの設定ファイルで記述するなら行ける。
これが正解。
Satisfy Any
AuthType Basic
AuthName "Input your ID and Password."
AuthUserFile /var/www/.htpasswd
require valid-user
SetEnvIf Request_URI "/member/" secure_dir
Order Allow,Deny
Allow from all
Deny from env=secure_dir
特定のファイルを除外する
<FilesMatch "(cominsoon\.php)$"> # ここをファイル名にする
Satisfy Any
Order allow,deny
Allow from all
Deny from none
</FilesMatch>
ブラウザから対象ファイルにアクセスできないようにする
<Files ~ "^.(htpasswd|htaccess)$">
deny from all
</Files>