○ httpd.conf

・httpd-2.4.25で使っています
・設定ファイルを分割し、Includeディレクティブで読み込んでいます
・設定のマージの順番があるので注意
・httpマニュアルの「セクションの設定」を参照して下さい
・完全コピーしないこと (エラーが出ることあり)
・"#" で始まる行はコメントとして解釈されます
紫色文字 変更部分

○/etc/httpd/conf/httpd.conf

001 

002

002
003

004
005
006
007
008
009
010
011
012
013
014
015
016
017
018
019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035
036
037
038
039
040
041
042
043
044
045
046
047
048
049
050
051
052
053
054
055
056
057
058
059
060
061
062
063
064
065
066
067
068
069
070
071
072
073
074
075
076
077
078
079
080
081
082

083
084
085
086

087

088

089
090
091
092
093

094
095
096
097
098
099
100
101
102
103
104
105
106
107

108
109
110

111
112
113

114

115

116
117
118

119
120
121
122
123
124
125
126
127

128
129
130

131
132
133

134
135
136
137
138
139
140
141
142
143

144
145
146
147
148
149
150
151

152
153
154
155
156
157
158
159
160
161
162
163
164
165

166

167
168
169
170
171

172

173
174

175
176
177
178
179
180
181
182
183
184
185
186
187
188

189
190
191
192

193
194
195
196
ServerRoot "/usr/local/apache2"

# Mutex default:/var/run

#Listen 12.34.56.78:80
Listen 80

#LoadModule authn_dbm_module modules/mod_authn_dbm.so
#LoadModule authn_anon_module modules/mod_authn_anon.so
#LoadModule authn_dbd_module modules/mod_authn_dbd.so
#LoadModule authn_socache_module modules/mod_authn_socache.so
#LoadModule authz_dbm_module modules/mod_authz_dbm.so
#LoadModule authz_owner_module modules/mod_authz_owner.so
#LoadModule authz_dbd_module modules/mod_authz_dbd.so
#LoadModule access_compat_module modules/mod_access_compat.so
#LoadModule auth_form_module modules/mod_auth_form.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule cache_module modules/mod_cache.so
LoadModule cache_disk_module modules/mod_cache_disk.so
LoadModule cache_socache_module modules/mod_cache_socache.so
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
#LoadModule socache_dbm_module modules/mod_socache_dbm.so
#LoadModule socache_memcache_module modules/mod_socache_memcache.so
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule macro_module modules/mod_macro.so
#LoadModule dbd_module modules/mod_dbd.so
#LoadModule dumpio_module modules/mod_dumpio.so
LoadModule buffer_module modules/mod_buffer.so
LoadModule ratelimit_module modules/mod_ratelimit.so
LoadModule ext_filter_module modules/mod_ext_filter.so
#LoadModule request_module modules/mod_request.so
#LoadModule substitute_module modules/mod_substitute.so
#LoadModule sed_module modules/mod_sed.so
LoadModule deflate_module modules/mod_deflate.so
#LoadModule xml2enc_module modules/mod_xml2enc.so
#LoadModule proxy_html_module modules/mod_proxy_html.so
#LoadModule log_debug_module modules/mod_log_debug.so
#LoadModule logio_module modules/mod_logio.so
#LoadModule lua_module modules/mod_lua.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.so
#LoadModule remoteip_module modules/mod_remoteip.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
#LoadModule proxy_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_fdpass_module modules/mod_proxy_fdpass.so
#LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#LoadModule proxy_express_module modules/mod_proxy_express.so
#LoadModule proxy_hcheck_module modules/mod_proxy_hcheck.so
LoadModule session_module modules/mod_session.so
LoadModule session_cookie_module modules/mod_session_cookie.so
#LoadModule session_dbd_module modules/mod_session_dbd.so
#LoadModule slotmem_shm_module modules/mod_slotmem_shm.so
LoadModule ssl_module modules/mod_ssl.so
#LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#LoadModule lbmethod_bytraffic_module modules/mod_lbmethod_bytraffic.so
#LoadModule lbmethod_bybusyness_module modules/mod_lbmethod_bybusyness.so
#LoadModule lbmethod_heartbeat_module modules/mod_lbmethod_heartbeat.so
LoadModule mpm_event_module modules/mod_mpm_event.so
#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
#LoadModule dav_module modules/mod_dav.so
LoadModule asis_module modules/mod_asis.so
LoadModule info_module modules/mod_info.so
LoadModule suexec_module modules/mod_suexec.so
<IfModule !mpm_prefork_module>
	LoadModule cgid_module modules/mod_cgid.so
</IfModule>
<IfModule mpm_prefork_module>
	#LoadModule cgi_module modules/mod_cgi.so
</IfModule>
#LoadModule dav_fs_module modules/mod_dav_fs.so
#LoadModule dav_lock_module modules/mod_dav_lock.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule userdir_module modules/mod_userdir.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so

<IfModule unixd_module>
User apache
Group apache
</IfModule>

ServerAdmin moonlight@528p.com

ServerName www.528p.com

<Directory />
    Options None
    AllowOverride None
    Require all denied
</Directory>

DocumentRoot "/home/www/htdocs"
<Directory "/home/www/htdocs">
    Options SymLinksifOwnerMatch IncludesNoExec
    AllowOverride None
    <RequireAll>
        Require all granted
        <RequireNone>
           Require env wormlist
        </RequireNone>
    </RequireAll>
    <Files mainfile.php>
        Require all denied
    </Files>
</Directory>

<IfModule dir_module>
    DirectoryIndex index.php index.html index.htm
</IfModule>

<Files ".ht*">
    Require all denied
</Files>

ErrorLog "/var/log/httpd/error_log"

LogLevel warn

<IfModule log_config_module>
    ErrorLogFormat "[%t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
</IfModule>

<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%!414r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    #CustomLog "/var/log/httpd/access_log" common
    CustomLog "/var/log/httpd/access_log" combined env=!ignorelog
</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/home/www/cgi-bin/"
</IfModule>

<IfModule cgid_module>
    Scriptsock /var/run/cgisock
</IfModule>

<Directory "/home/www/cgi-bin">
    AllowOverride None
    Options None
    <RequireAll>
        Require all granted
        <RequireNone>
            Require env wormlist
        </RequireNone>
    </RequireAll>
</Directory>

<IfModule headers_module>
    #
    # Avoid passing HTTP_PROXY environment to CGI's on this or any proxied
    # backend servers which have lingering "httpoxy" defects.
    # 'Proxy' request header is undefined by the IETF, not listed by IANA
    #
    RequestHeader unset Proxy early
</IfModule>

<IfModule mime_module>
    TypesConfig /etc/httpd/conf/mime.types
    #AddType application/x-gzip .tgz
    #AddEncoding x-compress .Z
    #AddEncoding x-gzip .gz .tgz
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    #AddHandler cgi-script .cgi
    #AddHandler type-map var
    #AddType text/html .shtml
    #AddOutputFilter INCLUDES .shtml
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>

MIMEMagicFile /etc/httpd/conf/magic

#ErrorDocument 500 "The server made a boo boo."
#ErrorDocument 404 /missing.html
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
#ErrorDocument 402 http://www.example.com/subscription_info.html
ErrorDocument 403 /lead2home.html

#MaxRanges unlimited

#EnableMMAP off
#EnableSendfile off

Include /etc/httpd/conf/extra/httpd-mpm.conf
#Include /etc/httpd/conf/extra/httpd-multilang-errordoc.conf
Include /etc/httpd/conf/extra/httpd-autoindex.conf
Include /etc/httpd/conf/extra/httpd-languages.conf
#Include /etc/httpd/conf/extra/httpd-userdir.conf
Include /etc/httpd/conf/extra/httpd-info.conf
#Include /etc/httpd/conf/extra/httpd-vhosts.conf
#Include /etc/httpd/conf/extra/httpd-manual.conf
#Include /etc/httpd/conf/extra/httpd-dav.conf
Include /etc/httpd/conf/extra/httpd-default.conf
<IfModule proxy_html_module>
Include /etc/httpd/conf/extra/proxy-html.conf
</IfModule>
Include /etc/httpd/conf/extra/httpd-ssl.conf

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

Include /etc/httpd/conf/extra/httpd-rewrite-block.conf
Include /etc/httpd/conf/extra/httpd-setenvif-block.conf
Include /etc/httpd/conf/extra/httpd-personal.conf
Include /etc/httpd/conf/extra/httpd-xoops.conf

:httpd.confの簡単な説明

003 接続ポートの指定、デフォルトの80です
004-082  動的にコンパイルされたモデュールの設定です 使用するモデュ−ルのみ読み込みます
084 各自の設定したユーザー名にします
085 各自の設定したグループ名にします
087 管理者メールの宛先を設定します(仮の名前です)
088 公開するweb名ですnamedサーバーで設定した名前です

localで試験的に使う場合はServerName 192.168.0.2のようにIPアドレスで指定します
089-093 www用ディレクトリ内のデフォルトの設定です、全て否定する事からスタートします
094 DocumentRootの設定です、ウェブから見えるメインのドキュメントツリーになります

DocumentRoot は最後のスラッシュ無しで 指定する必要があります
095-107 ドキュメントルート内の設定です、この場合デフォルトの設定を引き継ぎません

新しく設定したものが有効になります
上位の設定を引き継ぐ場合は+またはーを付けます
096 SymLinksifOwnerMatch シンボリックリンクはオーナーが同じ場合のみ許可

IncludesNoExec SSI内での指定されたシェルスクリプトやCGIを実行させるexecを
無効にします
098-103 最初に全てのアクセスを許可して、環境変数にマッチするアクセスを禁止します
104-106 mainfile.phpファイルの表示を拒否します
108-110 ブラウザで指定がない場合、最初に読み込むファイルです、左から順に探します
111-113 htで始まるファイルのアクセス制限です .htaccessファイルの表示を拒否します
114 errorログの出力先を指定します
115 errorログのレベルを指定します warn以上のログを出力します
116-118 errorログのフォーマットを調整します マイクロ秒の出力を止めます
119-127 アクセスログの設定です
120-121 アクセスログから、長すぎるURI 414エラー (responce-code 414) を除外します
126 変数ignorelogに設定されたログをCustumLogから除きます

httpd-personal.confで個人的な設定をします
128-143 CGIディレクトリの設定です
144-151 RequestHeaderの設定です
152-165 mimeタイプの設定です
163-164 PHPを使える用にする設定です
166 MIMEモジュールが提供するMIMEタイプを指定したファイルのパスを指定
171 エラーコード403 (ディレクトリのアクセス拒否) のときにhtmlファイルを呼び出す
172 リクエストヘッダで許可する区間数を設定 指定なし デフォルト(200区間まで許可)
175-188 分割されたコンフィグファイルをinclude指示子で読みこみます
193 mod_rewriteの設定ファイルをinclude指示子で読みこみます
194 mod_setenvifの設定ファイルをinclude指示子で読みこみます
195 個人的な設定のコンフィグファイルをinclude指示子で読みこみます
196 xoops用の設定ファイルをinclude指示子で読みこみます

○/etc/httpd/conf/extra/httpd-mpm.conf

001
002
003

004
005
006
007
008
009
010
011

012
013
014
015
016
017
018
019

020
021
022
023
024
025
026
027

028
029
030
031
032
033
034
035

036
037
038
039
040
041

042
043
044
045

046
047
048
049
050
051
<IfModule !mpm_netware_module>
    PidFile "/var/run/httpd.pid"
</IfModule>

# prefork MPM
<IfModule mpm_prefork_module>
    StartServers          5
    MinSpareServers       5
    MaxSpareServers      10
    MaxRequestWorkers   250
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_worker_module>
    StartServers             3
    MinSpareThreads         75
    MaxSpareThreads        250
    ThreadsPerChild         25
    MaxRequestWorkers      400
    MaxConnectionsPerChild   0
</IfModule>

<IfModule mpm_event_module>
    StartServers             2
    MinSpareThreads         25
    MaxSpareThreads         50
    ThreadsPerChild         25
    MaxRequestWorkers       50
    MaxConnectionsPerChild   0
</IfModule>

<IfModule mpm_netware_module>
    ThreadStackSize      65536
    StartThreads           250
    MinSpareThreads         25
    MaxSpareThreads        250
    MaxThreads            1000
    MaxRequestsPerChild      0
</IfModule>

<IfModule mpm_mpmt_os2_module>
    StartServers           2
    MinSpareThreads        5
    MaxSpareThreads       10
    MaxRequestsPerChild    0
</IfModule>

<IfModule mpm_winnt_module>
    ThreadsPerChild        150
    MaxConnectionsPerChild   0
</IfModule>

<IfModule !mpm_netware_module>
    MaxMemFree            2048
</IfModule>
<IfModule mpm_netware_module>
    MaxMemFree             100
</IfModule>

:httpd-mpm.confの簡単な説明

021  サーバ起動時に起こす子プロセス数 (デフォルト 3)
022  待機スレッドが足りない時はこの数までスレッドを増やす (デフォルト 75)
023  待機スレッドが多い時はこの数までスレッドを減らす (デフォルト 250)
  MaxSpareThread ≧ MinSpareThreads + ThreadsPerChild
024  子プロセス当たりのスレッド数 (デフォルト 25)
025  同時に捌けるリクエスト数 (デフォルト 400)
  ServerLimit (デフォルト 16) ≧ MaxRequestWorkers÷ThreadsPerChild
026  この数のリクエストを捌くと子プロセスが再起動、PHPのメモリリーク防止(デフォルト 0)

○/etc/httpd/conf/extra/httpd-default.conf

001
002
003
004
005
006
007
008
009
010
011
012
013
Timeout 60
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
ServerSignature Off
HostnameLookups Off
TraceEnable off
<IfModule reqtimeout_module>
    RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
</IfModule>

:httpd-default.confの簡単な説明

003  1ページ当たりの平均的なファイル数+α
007  error表示に含まれるhttpdのシステム情報の表示を制限します
008  サーバが生成するドキュメント(error表示など)のフッタを抑制します
010  クライアントが送信したリクエストをそのまま返すTraceメソッドを無効にします

○/etc/httpd/conf/extra/httpd-info.conf

001 
002
003
004
005

006

007
008
009
010
011
<Location /server-status>
    SetHandler server-status
    Require host .528p.com
    Require ip 127
</Location>

ExtendedStatus On

<Location /server-info>
    SetHandler server-info
    Require host .528p.com
    Require ip 127
</Location>

○/etc/httpd/conf/extra/httpd-personal.conf

・phpmyadmin、isoqlog、visitorsの設定は省略

001 
002
003
004
005
006

007
008
009

010
011
012

013
014
015
016
017
018

019
020
021
022
023
024
025
026
027
028
029
030
031
032
033
034
035

036
037
038
039
040

041
042
043
044
045
046
047
048
049
050
051
052

053
054
055
056
057
058
059
060
061
<IfModule setenvif_module>
    SetEnvIf Referer "\.528p\.com" link_auth
    SetEnvIf Referer "^$" link_auth
    SetEnvIf Remote_Addr "^(192\.168\.0|127\.0\.0\.1)" locallog ignorelog
    SetEnvIf Request_URI "\.(gif|jpe?g|png)$" ignorelog
</IfModule>

<FilesMatch "\.(gif|jpe?g|png)$">
    Require env link_auth
</FilesMatch>

<IfModule log_config_module>
    CustomLog "/var/log/httpd/local_log" common env=locallog
</IfModule>

<IfModule alias_module>
    Alias /myhome "/home/www/myhome"
    Alias /archi "/home/www/myhome/archi"
    Alias /hobby "/home/www/myhome/hobby"
    Alias /linux "/home/www/myhome/linux"
</IfModule>

<Directory "/home/www/myhome/linux">
    Options SymLinksifOwnerMatch IncludesNoExec
    AllowOverride None
    RewriteEngine On
    RewriteBase /linux
    RewriteCond %{QUERY_STRING} ^.*\.[A-Za-z0-9].* [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(\.|\*|;|<|>|'|"|\)|%0A|%0D|%22|%27|%3C|%3E|%00).* [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(md5|union|select|insert|declare|char|set|cast).* [NC,OR]
    RewriteCond %{QUERY_STRING} ^.*(exec|drop|update).* [NC]
    RewriteRule ^.*$ - [F,L,E=ignorlog:1]
    <RequireAll>
        Require all granted
        <RequireNone>
            Require env wormlist
        </RequireNone>
    </RequireAll>
</Directory>

<Directory "/home/www/myhome/cgi-bin">
    Options ExecCGI
    AddHandler cgi-script .cgi .pl
    Require ip 192.168.0
</Directory>

<IfModule expires_module>
    ExpiresActive On
<FilesMatch "\.html?$">
    ExpiresDefault "access plus 5 minutes"
</FilesMatch>
<FilesMatch "\.(css|js)$">
    ExpiresDefault "access plus 5 minutes"
</FilesMatch>
<FilesMatch "\.(gif|jpe?g|png)$">
    ExpiresDefault "access plus 30 minutes"
</FilesMatch>
</IfModule>

<IfModule cache_module>
    <IfModule cache_disk_module>
        CacheRoot /var/cache/httpd
        CacheEnable disk /linux
        CacheIgnoreCacheControl On
        CacheIgnoreNoLastMod On
        CacheIgnoreHeaders Set-Cookie
    </IfModule>
</IfModule>

:httpd-personal.confの簡単な説明

001-006  特別な環境変数の設定です
002 Refererのドメインを使ってアクセス制限をします
003 Refererのない場合も含めます
004 localからのアクセスログを分ける
005 画像ファイルのログに環境変数 ignorelog を設定します
007-009 画像ファイルへのリンク先を制限します
010-012 カスタムログの設定です
011 locallogに設定されたログをlocal_logに出力します
013-018 ディレクトリのalias設定です
019-035 aliasで設定したディレクトリを制御する設定です
022-028 rewriteエンジンでQUERYスパムを制御します

動的コンテンツに影響するので静的コンテンツのみ制御しています
036-040 プライベートCGIのディレクトリです 指定した拡張子のみ実行するための設定です
041-052 ユーザの指定した基準に基づいたExpiresとCache-Control HTTP ヘッダの生成
042 Expiresヘッダの生成を有効にする
043-051 FilesMatchを使い、拡張子に応じて有効な時間を設定しています

access plus アクセス後の有効期間
053-062 URI をキーにしたコンテンツのキャッシュ (diskを使用したストレージ管理方式)
055 キャッシュファイルが保管されるルートディレクトリ
056 指定したストレージ管理方式を使ってのキャッシュを有効にします

diskストレージ管理方式を使って /linux以下をキャッシュをします
057 キャッシュされているコンテンツを返さないようクライアントからリクエストされても無視
058 応答に Last Modified が無くても気にしないようにします
059 クッキーをキャッシュに保管しないようにします

○ Copyright(c) 528p.com All Rights Reserved.