Apache - user000422/0 GitHub Wiki
# httpd.conf
# セキュリティ的にこれは確定でよい
<Directory />
AllowOverride none # すべて拒否
</Directory>
RHEL6 | RHEL8 | RHEL9 | |
---|---|---|---|
導入 | yum install httpd |
dnf install httpd |
dnf install httpd |
起動 | systemctl start httpd |
バーチャルホスト一覧を確認
/usr/sbin/httpd -t -D DUMP_VHOSTS
# バージョン確認
httpd -v
# 色んな情報(VirtualHostの確認に使用した)
httpd -S
# 再起動
service httpd restart
# RHEL
# 状態確認
systemctl status httpd
service httpd status
# 設定反映
systemctl reload httpd
# 起動
systemctl start httpd
service httpd start
# 停止
systemctl stop httpd
# 自動起動
systemctl enable httpd.service
# エラーログに記録されるレベルを設定
LogLevel notice
<Directory />
Require all denied # 全て拒否
Require all granted # 全て許可
Deny from all # 全て拒否
Allow from all # 全て許可
AllowOverride All # .htaccessを全て有効
AllowOverride None # .htaccessを全て無効
</Directory>
■エイリアス
アクセスされるパスのルーティングを設定。
Alias /json "/var/www/html/json"
HTTP(HTTPS)接続を制御する(SSHなどは制御しない)
修正後サーバの再起動などは必要ない
# 接続許可(指定IP)
Require ip 000.000.000.000
# 特定のファイルへのアクセスを特定のIPからのみ許可(特定ファイルのディレクトリに.htaccessを格納)
<Files "sample.html">
Require ip 0.0.0.0
</Files>
URLリダイレクト
confファイルで「mod_rewrite.so」を読み込ませる必要がある
RewriteEngine on
RewriteRule from.html to.html
# 特定のIP以外は404にリダイレクト
RewriteEngine on
# このIPのみ404にはリダイレクトしない
RewriteCond %{REMOTE_ADDR} !^111.1111.111.1111$
RewriteRule ^.*$ - [NC,R=404,L]
URL拡張子なしでアクセス
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html [L]
ログローテーション設定 /etc/logrotate.d
複数のドキュメントルートを使用したくなったため。
# バーチャルホスト設定を確認(どのバーチャルホストがサーバに設定されているか)
httpd -S
Apache設定ファイルに記載でよい
/etc/httpd/conf/httpd.conf
<VirtualHost *:80>
ServerName laravel.sample.jp
DocumentRoot /var/www/html/sample-project/public
</VirtualHost>
<VirtualHost *:80>
ServerName sample.jp
DocumentRoot /var/www/html
</VirtualHost>
ドキュメントルートに .htaccess
と .htpasswd
を作成する
.htaccess
に下記を追記する。
AuthUserFile /var/www/html/.htpasswd # .htpasswdを作成したパス
AuthName “Please enter your ID and password”
AuthType Basic
require valid-user
.htpasswd
に下記を追記する。
パスワードは http://www.htaccesseditor.com/#a_basic で生成したものを記述。
# ユーザー:パスワード
test:pass
.htaccess
に下記を追記する。(要検証 検証したのはxxx.conf)
AuthType Digest
AuthUserFile /etc/httpd/.htdigest # .htdigestを作成する予定のパス
AuthName “sample”
AuthDigestProvider file
require sample-user
記載後、下記コマンド(htdigest -c [パス] [AuthName] [requireユーザ])
htdigest -c /etc/httpd/.digest "sample" sample-user