HobNote
Webサーバ
Apacheの設定[Local](Cent4.3-4.4)
since 2006.08.20
last update 2011.01.08



Conternts



Apacheの設定


まずは、Local内でのApacheの構築順序

1)SELinuxの無効化
/usr/bin/system-config-securitylevelでGUIを起動し
SELinuxを無効にして、再起動する。
(有効での使用は、SELinuxのセキュリティポリシーの設定を変更する必要がある)

2)Apacheのインストール
CentOSでは、"アプリケーションの追加と削除"もしくは、yumでinstallが可能。

3)起動の確認
/usr/bin/system-config-servicesでhttpdを起動
もしくは
/sbin/chkconfig httpd onでhttpdを起動
もしくは
/sbin/service httpd startでhttpdを起動(restart:再起動、stop:停止)

web-browserでURLをhttp://hostnameにして
Apacheのsample-pageが表示されればOK

後、一応httpdを停止しておく

4)httpd.confの編集
httpd.confの編集は、CentOSの場合、system-config-httpdでGUIツールが起動し編集が可能であるが、
GUIツールが使えない環境での設定も考慮してhttpd.confを直接編集することにする。

httpd.confは、
/etc/httpd/conf/下にある


ServerTokens

クライアントに送るレスポンスヘッダに含める情報の選択



LoadModuleの種類

module識別子
module
function
あまり使わないので
commentout可
access_module mod_access.so Clientのhost名、IP-address、clientのrequestに対するアクセス制御機能
auth_module mod_auth.so TextFileを用いたuser認証
auth_anon_module mod_auth_anon.so 信頼あるareaに対しての"anonymous" userのaccess許可
auth_dbm_module mod_auth_dbm.so DBM filesを使ったuser認証の提供
auth_digest_module mod_auth_digest.so User認証は、MD5 Digest Authenticationを使用する機能
ldap_module mod_ldap.so 他のLDAP moduleを使用してLDAP接続のpoolingやresult cachingを提供する *
auth_ldap_module mod_auth_ldap.so HTTP Basic認証の為のdatabase情報保持用のLDAP directoryを許可する *
include_module mod_include.so ServerがfileをClientに送られる前に処理するfilterを提供
log_config_module mod_log_config.so Serverへのrequestのlogの書式Customizeとlog収集の機能提供
env_module mod_env.so CGI-scriptとSSIページに渡される環境変数を変更する機能を提供
mime_magic_module mod_mime_magic.so 接続の数byteの確認によりMIME typeを決定する機能
cern_meta_module mod_cern_meta.so CERN httpd metafileをemulateする機能 *
expires_module mod_expires.so userの指定に基づいた期限とCache-Control HTTP headerの生成
deflate_module mod_deflate.so Clientへ送られる前にContentsを圧縮する機能
headers_module mod_headers.so HTTP requestとresponse headersのCustomize機能
usertrack_module mod_usertrack.so userが動作させたClickstream logの生成
setenvif_module mod_setenvif.so requstに基づいた環境変数の設定を可能にする機能
mime_module mod_mime.so requestされたfileの拡張子とfileの振る舞い、内容とを関連付ける機能
dav_module mod_dav.so 分散オーサリングとversion管理(WebDAV)機能 *
status_module mod_status.so Serverの活動状況と性能の情報を提供する機能
autoindex_module mod_autoindex.so Unixのls commandや Win32のdir comamndに似たdirectory indexを生成
asis_module mod_asis.so 自分用のHTTP headerの書かれているfileを送信する機能
info_module mod_info.so Serverの設定の包括的な概観を提供する *Securty設定がよくわかってないなら
入れない方がいい
dav_fs_module mod_dav_fs.so mod_davのためのFileSystemPrivider *
vhost_alias_module mod_vhost_alias.so 複数のvirtual hostを動的に構築する機能を提供 *
negotiation_module mod_negotiation.so Content Negotiation機能を提供する
dir_module mod_dir.so URL最後の/のredirectと、directoryのindex fileを扱う機能を提供する
imap_module mod_imap.so Server側でimap fileを用いて構成を再構築することを提供する *
actions_module mod_actions.so medeia type,request method等に応じてCGI-scriptを実行する機能
speling_module mod_speling.so userが入力したであろう間違ったURLを大文字/小文字の区別を
無視することと一つ以下の綴り間違いを許容することで修正を試みる機能
userdir_module mod_userdir.so user専用のdirectoryを提供
alias_module mod_alias.so Host file system上のいろいろな違う場所を document treeにmapする機能と、
URLのredirectを行なう機能
rewrite_module mod_rewrite.so 動作中に要求のあったURLへの再書込に対し、rule-based rewriting engineを提供する
proxy_module mod_proxy.so HTTP/1.1 proxy/gateway server
proxy_ftp_module mod_proxy_ftp.so mod_proxy用のFTP support module *
proxy_http_module mod_proxy_http.so mod_proxy用のHTTP support module
proxy_connect_module mod_proxy_connect.so 接続要求handlingの為のmod_proxy拡張機能
cache_module mod_cache.so Content cache keyed to URIs
suexec_module mod_suexec.so 指定したuserとgroupにおいてCGI scriptを実行する
disk_cache_module mod_disk_cache.so Content cache storage manager keyed to URIs
file_cache_module mod_file_cache.so メモリ内にfileのstatic listをCacheする機能
mem_cache_module mod_mem_cache.so Content cache keyed to URIs
cgi_module mod_cgi.so CGI scriptの実行



ServerName

DNSを使用しない場合、なんらかの名前を与えておく。
でないと、起動時、再起動時に
"httpd: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName"
というErrorっぽいメッセージがでる。
#ServerName new.host.name:80
    ↓
ServerName nantoka_host:80



UserDir

<IfModule mod_userdir.c>〜</IfModule>で記述し
Apacheでdirectoryを公開するuserの許可/不許可の指定、公開するdirectoryの指定を行なう。

例)
elizabeth、audreyというuserのみ許可し、それ以外のuserを許可しない。
また許可したuserの公開directoryはpublic_htmlにする

UserDir disabled                 #全てのuserに対して許可しない
UserDir enabled elizabeth audrey #elizabethとaudreyは、許可する
UserDir public_html              #許可するdirectoryは、userのhomeの下のpublic_htmlとする



<Directory>〜</Directory>

/home以下にuserのhome directoryを持つuserでpublic_htmlを公開するときの許可、
制限内容を<Directory>〜</Directory>間に指定する。
以下の記述は、その例である。

<Directory /home/*/public_html>
   AllowOverride FileInfo AuthConfig Limit
   Options MultiViews SymLinksIfOwnerMatch ExecCGI
#   <Limit GET POST OPTIONS>
#     Order allow,deny
#      Allow from all
#   </Limit>
   <LimitExcept GET POST OPTIONS>
      Order deny,allow
      Deny from all
   </LimitExcept>
</Directory>



DirectoryIndex

http://hogehoge/など/で終るか、file名を指定しないURLを指定された場合に開くfile名を指定する
先に書いた順の選択する優先度が高い

例)
DirectoryIndex index.html index.html.var index.php



AddDefaultCharset

管理化のHTMLの文字コードの制御に関しての指定

On:HTMLに文字コードの指定があってもなくてもサンプル設定ファイルで指定する文字コードで
Clientのブラウザに補間情報を送る。
Off:HTMLに文字コードの指定があればその文字コードをClientのブラウザに送る。
なければ送らない。
Charset:HTMLに文字コードの指定があってもなくてもこのCharsetで指定した文字コードを
Clientのブラウザに補間情報を送る。

例)
AddDefaultCharset Off



AddHandler

指定した拡張子のfileに対して指定した実行方法を指定する。

例)cgiという拡張子のついたfileに対しcgi-scriptとして実行する
AddHandler cgi-script .cgi
この設定でディレクティブのOptionにExecCGIを指定しているDirectory


Namazuの設定

namazuをinstallする手順としては以下の順序でinstallする

1)nkfをinstallする
2)kakasiをinstallする
3)Text-kakasiをinstallする
4)namzu-x.x.xx.tar.gzを展開する
5)展開後、下位DirestoryのFile-MMagicに移動しMMagicをインストールする
6)上位Directoryに戻りnamazuをインストールする
7)/usr/local/etc/namazu下のmknmzrc-sampleを自分の~/下に.mknmzrcとしてコピーして編集する

8)public_html下にnamazuで検索したいfileを置く

9)Index用Directoryを作る

例)


10)indexをitemごとに作成する

.mknmzのあるDirectoryでmknmzを実行する
11)/usr/local/etc/namazu下のnamazurc-sampleを自分の~/下に.namazurcとしてコピーして編集する


12)/usr/local/libexecからnamazu.cgiをpublic_html下のcgi実行可能なDirectoryにコピーする
13)全文検索をするためのHTMLを作成する

14)以下のfileをindexを作成したDirectoryから(この場合)namazu_indexにコピーしてきて
適当に編集する。ここのfileは、対象indexがない場合、複数のindexを対象に検索した場合に使用される
※基本的には*.jaのみでいい


15)上記と同じように各index下のfileも編集する。





SNMPの設定


1)/etc/snmp/snmp.confの編集

2)snmpdを起動



PHPの設定(CentOS4.4)


CentOSでApacheを動作させる場合、PHPは、Defaultで使用可能である。

1)fileのアップロードの設定
PHPの環境設定は、/etc/php.iniで設定を行なう。
fileのアップロード機能を使う場合、以下設定をカスタマイズする。





MRTGの設定


1)MRTGをinstallする
yum install mrtg
/usr/bin/mrtg
/var/www/mrtg
/var/lib/mrtg
/var/lock/mrtg
/etc/cron.d/mrtg
/etc/mrtg

#cfgmaker --output=/etc/mrtg/mrtg.cfg --global "WorkDir: /var/www/mrtg" hogehoge@localhost
--base: Get Device Info on hogehoge@localhost:
--base: Vendor Id:
--base: Populating confcache
--snpo: confcache yattaman@localhost: Descr lo --> 1
--snpo: confcache yattaman@localhost: Descr eth0 --> 2
--snpo: confcache yattaman@localhost: Descr eth1 --> 3
--snpo: confcache yattaman@localhost: Descr sit0 --> 4
--snpo: confcache yattaman@localhost: Type 24 --> 1
--snpo: confcache yattaman@localhost: Type 6 --> 2
--snpo: confcache yattaman@localhost: Type 6 --> 3 (duplicate)
--snpo: confcache yattaman@localhost: Type 131 --> 4
--snpo: confcache yattaman@localhost: Ip 127.0.0.1 --> 1
--snpo: confcache yattaman@localhost: Ip 192.168.1.21 --> 2
--snpo: confcache yattaman@localhost: Eth  --> 1
--snpo: confcache yattaman@localhost: Eth 00-01-80-5c-0e-7c --> 2
--snpo: confcache yattaman@localhost: Eth 00-01-80-5c-0e-7b --> 3
--snpo: confcache yattaman@localhost: Eth  --> 4 (duplicate)
--base: Get Interface Info
--base: Walking ifIndex
--base: Walking ifType
--base: Walking ifAdminStatus
--base: Walking ifOperStatus
--base: Walking ifSpeed
--base: Writing /etc/mrtg/mrtg.cfg

mrtg /etc/mrtg/mrtg.cfgを3回