○ httpd.conf

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

○/etc/httpd/conf/httpd.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
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
ServerRoot "/usr/local/apache2"

#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 authz_dbm_module modules/mod_authz_dbm.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule unique_id_module modules/mod_unique_id.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_scgi_module modules/mod_proxy_scgi.so
#LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
#LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule ssl_module modules/mod_ssl.so
#LoadModule dav_module modules/mod_dav.so
LoadModule info_module modules/mod_info.so
LoadModule suexec_module modules/mod_suexec.so
#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 php5_module modules/libphp5.so

<IfModule !mpm_netware_module>
<IfModule !mpm_winnt_module>
User apache
Group apache
</IfModule>
</IfModule>

ServerAdmin moonlight@528p.com

ServerName www.528p.com

DocumentRoot "/home/www/htdocs"

<Directory />
    Options None
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory "/home/www/htdocs">
    Options SymLinksifOwnerMatch IncludesNoExec
    AllowOverride None
    Order allow,deny
    Allow from all
    Deny from env=wormlist    
    <Files mainfile.php>
        Deny from all
    </Files>
</Directory>

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

<FilesMatch "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</FilesMatch>

ErrorLog "/var/log/httpd/error_log"

LogLevel warn

<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" 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
    Order allow,deny
    Allow from all
    Deny from env=wormlist
</Directory>

DefaultType text/plain

<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

#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
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-029  動的にコンパイルされたモデュールの設定です 使用するモデュ−ルのみ読み込みます
032 各自の設定したユーザー名にします
033 各自の設定したグループ名にします
036 管理者メールの宛先を設定します(仮の名前です)
037 公開するweb名ですnamedサーバーで設定した名前です

localで試験的に使う場合はServerName 192.168.0.2のようにIPアドレスで指定します
038 DocumentRootの設定です、ウェブから見えるメインのドキュメントツリーになります

DocumentRoot は最後のスラッシュ無しで 指定する必要があります
039-044 www用ディレクトリ内のデフォルトの設定です、全て否定する事からスタートします
045-054 ドキュメントルート内の設定です、この場合デフォルトの設定を引き継ぎません

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

IncludesNoExec SSI内での指定されたシェルスクリプトやCGIを実行させるexecを
無効にします
048-050 最初に全てのアクセスを許可して、環境変数にマッチするアクセスを禁止します
051-053 mainfile.phpファイルの表示を拒否します
055-057 ブラウザで指定がない場合、最初に読み込むファイルです、左から順に探します
058-062 htで始まるファイルのアクセス制限です .htaccessファイルの表示を拒否します
063 errorログの出力先を指定します
064 errorログのレベルを指定します warn以上のログを出力します
065-072 アクセスログの設定です
066-067 アクセスログから、長すぎるURI 414エラー (responce-code 414) を除外します
071 変数ignorelogに設定されたログをCustumLogから除きます

httpd-personal.confで個人的な設定をします
073-085 CGIディレクトリの設定です
086 拡張子の判断できないファイルの出力タイプです
087-100 mimeタイプの設定です
098-099 PHPを使える用にする設定です
101 MIMEモジュールが提供するMIMEタイプを指定したファイルのパスを指定
106 エラーコード403 (ディレクトリのアクセス拒否) のときにhtmlファイルを呼び出す
109-119 分割されたコンフィグファイルをinclude指示子で読みこみます
124 mod_rewriteの設定ファイルをinclude指示子で読みこみます
125 mod_setenvifの設定ファイルをinclude指示子で読みこみます
126 個人的な設定のコンフィグファイルをinclude指示子で読みこみます
127 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
<IfModule !mpm_netware_module>
    PidFile "/var/run/httpd.pid"
</IfModule>

<IfModule !mpm_winnt_module>
<IfModule !mpm_netware_module>
LockFile "/var/log/httpd/accept.lock"
</IfModule>
</IfModule>

# prefork MPM
<IfModule mpm_prefork_module>
    StartServers 5
    MinSpareServers 5
    MaxSpareServers 10
    MaxClients 20
    MaxRequestsPerChild 50
</IfModule>

<IfModule mpm_worker_module>
    StartServers          2
    MaxClients          150
    MinSpareThreads      25
    MaxSpareThreads      75
    ThreadsPerChild      25
    MaxRequestsPerChild   0
</IfModule>

<IfModule mpm_beos_module>
    StartThreads            10
    MaxClients              50
    MaxRequestsPerThread 10000
</IfModule>

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

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

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

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

014  apache+PHPで1プロセス当たり15〜18M程度消費します

apacheの使用できるメモリを想定し、MaxClients値を変更します
015 頻繁に子プロセスを生成しなおしたいため、MaxRequestsPerChild値を小さくしています

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

001
002
003
004
005
006
007
008
009
010
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5
UseCanonicalName Off
AccessFileName .htaccess
ServerTokens Prod
ServerSignature Off
HostnameLookups Off
TraceEnable off

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

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
012
<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from 192.168.0.3
</Location>

ExtendedStatus On

<Location /server-info>
    SetHandler server-info
    Order deny,allow
    Deny from all
</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
062
063
<IfModule setenvif_module>
    SetEnvIf Referer 528p\.com 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)$">
    order deny,allow
    Deny from all
    Allow from 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]
    Order allow,deny
    Allow from all
    Deny from env=wormlist
</Directory>

<Directory "/home/www/myhome/cgi-bin">
    Options ExecCGI
    AddHandler cgi-script .cgi .pl
    Order deny,allow
    Deny from all
    Allow from 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 mem_cache_module>
    CacheEnable mem /
    CacheIgnoreNoLastMod On
    CacheIgnoreCacheControl On
    MCacheSize 51200
    MCacheMaxObjectCount 3000
    MCacheMinObjectSize 1
    MCacheMaxObjectSize 128000
</IfModule>
</IfModule>

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

001-005  特別な環境変数の設定です
002 ファイルのリンク先を制限します
003 localからのアクセスログを分ける
004 画像ファイルのログに環境変数 ignorelog を設定します
006-010 画像ファイルへのリンク先を制限します
011-013 カスタムログの設定です
012 locallogに設定されたログをlocal_logに出力します
014-019 ディレクトリのalias設定です
020-040 aliasで設定したディレクトリを制御する設定です
023-029 rewriteエンジンでQUERYスパムを制御します

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

access plus アクセス後の有効期間
053-063 URI をキーにしたコンテンツのキャッシュ (メモリを使用したストレージ管理方式)
055 メモリを使用したストレージ管理方式でのキャッシュを有効にします

カレントディレクトリ (/)
056 応答に Last Modified が無くても気にしないようにします
057 キャッシュされているコンテンツを返さないよう、クライアントからのリクエストを無視
058 キャッシュに使われるメモリの最大量 (Kbytes)(デフォルト100)

apacheで使用できるメモリの20%〜40%を目当てとします
059 キャッシュに保管されるオブジェクトの最大数 (デフォルト1009)
060 キャッシュに保管されるドキュメントの最小サイズ (bytes)(デフォルト0)
061 キャッシュに保管できるドキュメントの最大サイズ (bytes)(デフォルト10000)

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