APACHE-HTTPD40 cmd
Apache HTTP Server チート集
Apache HTTP Server の VirtualHost、Directory/Location、mod_rewrite、mod_ssl、.htaccess、Basic/Digest 認証、ログ設定を実務向けに整理したチート集。
- 更新日
- 2026-05-14
- 参照範囲
- 公式ドキュメント / man page / 主要ベンダーCLI
- 対象実装
- 主要 Linux / BSD / ネットワーク機器 CLI の一般的な実装
- 免責
- OS とバージョン差分は実環境で確認してください。
40 / 40
| Command | Description | Example | Copy |
|---|---|---|---|
apachectl configtest | 設定ファイルの構文を検証する。 | sudo apachectl configtest | |
apachectl graceful | 既存接続を保ちながら設定を再読込する。 | sudo apachectl graceful | |
apachectl restart | httpd を再起動する。 | sudo apachectl restart | |
apachectl status | mod_status のサーバ状態を表示する。 | apachectl status | |
httpd -V | コンパイル設定と ServerRoot を確認する。 | httpd -V | grep -E "SERVER_CONFIG_FILE|HTTPD_ROOT" | |
httpd -M | 読み込み済みモジュールを一覧する。 | httpd -M | sort | |
<VirtualHost *:80> | HTTP 仮想ホストの最小構成。 | <VirtualHost *:80>
ServerName www.example.com
DocumentRoot /var/www/example
</VirtualHost> | |
NameVirtualHost 相当 | Apache 2.4 では ServerName ベースの VirtualHost をそのまま使う。 | <VirtualHost *:80>
ServerName app.example.com
ProxyPass / http://127.0.0.1:3000/
</VirtualHost> | |
<Directory> | ファイルシステムパス単位で権限を制御する。 | <Directory "/var/www/example">
Require all granted
AllowOverride None
</Directory> | |
<Location> | URL パス単位でアクセス制御する。 | <Location "/admin">
Require ip 10.0.0.0/8
</Location> | |
<Files> | ファイル名単位でアクセス制御する。 | <Files ".env">
Require all denied
</Files> | |
<If> | 式に応じて条件付き設定を適用する。 | <If "%{HTTP_HOST} == 'old.example.com'">
Redirect permanent / https://www.example.com/
</If> | |
a2enmod | Debian 系でモジュールを有効化する。 | sudo a2enmod ssl rewrite headers proxy proxy_http | |
a2dismod | Debian 系でモジュールを無効化する。 | sudo a2dismod status | |
apachectl -M grep | 有効モジュールを確認する。 | apachectl -M | grep rewrite_module | |
LoadModule | RHEL 系などでモジュールを直接読み込む。 | LoadModule rewrite_module modules/mod_rewrite.so | |
mod_proxy reverse | バックエンドへリバースプロキシする。 | ProxyPass / http://127.0.0.1:3000/
ProxyPassReverse / http://127.0.0.1:3000/ | |
mod_headers HSTS | レスポンスヘッダを追加する。 | Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" | |
RewriteEngine On | mod_rewrite を有効化する。 | RewriteEngine On | |
HTTPS 強制 | HTTP から HTTPS へ 301 リダイレクトする。 | RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] | |
canonical host | www ありへ正規化する。 | RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteRule ^ https://www.example.com%{REQUEST_URI} [R=301,L] | |
front controller | 存在しないパスを index.php へ渡す。 | RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L] | |
RewriteRule proxy | rewrite でプロキシ先へ転送する。 | RewriteRule ^/api/(.*)$ http://127.0.0.1:8080/$1 [P,L] | |
SSLEngine on | TLS 仮想ホストで SSL を有効化する。 | <VirtualHost *:443>
ServerName www.example.com
SSLEngine on
</VirtualHost> | |
SSLCertificateFile | 証明書と秘密鍵を指定する。 | SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem | |
SSLProtocol | TLS 1.2/1.3 のみに制限する。 | SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1 | |
SSLCipherSuite | TLS 1.2 向け cipher suite を制御する。 | SSLCipherSuite HIGH:!aNULL:!MD5 | |
SSLHonorCipherOrder | サーバ側 cipher 優先を指定する。 | SSLHonorCipherOrder on | |
AllowOverride None | 本番で .htaccess 読み込みを無効化する。 | <Directory "/var/www/example">
AllowOverride None
</Directory> | |
AllowOverride FileInfo AuthConfig | 必要な .htaccess 機能だけ許可する。 | <Directory "/var/www/legacy">
AllowOverride FileInfo AuthConfig
</Directory> | |
htpasswd create | Basic 認証用パスワードファイルを作る。 | sudo htpasswd -c /etc/apache2/.htpasswd alice | |
Basic auth | ディレクトリに Basic 認証を掛ける。 | AuthType Basic
AuthName "restricted"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user | |
Digest auth | Digest 認証を設定する。 | AuthType Digest
AuthName "admin"
AuthDigestProvider file
AuthUserFile /etc/apache2/digest.passwd
Require valid-user | |
Require ip | 送信元 IP で許可する。 | <Location "/server-status">
Require ip 127.0.0.1 10.0.0.0/8
</Location> | |
LogFormat combined | カスタムログ形式を定義する。 | LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined | |
CustomLog | アクセスログを指定形式で出力する。 | CustomLog /var/log/apache2/access.log combined | |
ErrorLog LogLevel | エラーログとレベルを設定する。 | ErrorLog /var/log/apache2/error.log
LogLevel warn | |
piped log rotatelogs | パイプログで日次ローテーションする。 | CustomLog "|/usr/sbin/rotatelogs /var/log/apache2/access.%Y%m%d.log 86400" combined | |
mod_status | サーバ状態ページをローカル限定で公開する。 | <Location "/server-status">
SetHandler server-status
Require local
</Location> | |
SetEnvIf healthcheck | ヘルスチェックをアクセスログから除外する。 | SetEnvIf Request_URI "^/health$" dontlog
CustomLog /var/log/apache2/access.log combined env=!dontlog |