2010年9月19日日曜日

Cent OS 最小インストール後 お勧め行程 - 3 「Apache Install 」

Apache HTTP Server:http://httpd.apache.org/

yum -y install httpd mod_ssl
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.bak
vi /etc/httpd/conf/httpd.conf
----------------------------------------------------------------------------------------------
44 ServerTokens OS  -> ServerTokens Prod #エラーページ等でOS名を表示しないようにする

74行 KeepAlive Off -> KeepAlive On

81行 MaxKeepAliveRequests 100 -> MaxKeepAliveRequests 500

251行 ServerAdmin root@localhost -> ServerAdmin abc@abc.abc #エラーページ等に表示される管理者メールアドレスを指定

265行 ServerName abc.abc.abc #サーバー名を指定

274行 UseCanonicalName Off

281行 DocumentRoot "/var/www/html"                   # サイト保存の場所に変更


の部分について
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
320行 Options Indexes FollowSymLinks →Options Includes ExecCGI FollowSymLinks
   #Indexesを消す, Includes SSIの許可、ExecCGI CGIの許可

327行 OAllowOverride None → AllowOverride All # .htaccessの許可
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
355行 UserDir Disable→ #UserDir Disable #この列の前に#を追加

362行 #UserDir public_html -> UserDir www #Public_htmlを自分好きの名前変更でよい、wwwに変更な人が多いらしい

391行 DirectoryIndex index.html index.html.var -> DirectoryIndex index.html index.htm index.php index.cgi index.php3 index.html.var 
#Defaultのファイルの名前下記のような変更でよい

391行 LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

LogFormat "%h %l %u %t \"%!414r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
# 長すぎるURI(414エラー)はログに記録しない

514行から追加
#
# For a single logfile with access, agent, and referer information
# (Combined Logfile Format), use the following directive:
#
SetEnvIf Request_URI "default\.ida" no_log ← 追加(wormからのアクセスをログに記録しない)
SetEnvIf Request_URI "cmd\.exe" no_log ← 〃
SetEnvIf Request_URI "root\.exe" no_log ← 〃
SetEnvIf Request_URI "Admin\.dll" no_log ← 〃
SetEnvIf Request_URI "NULL\.IDA" no_log ← 〃
SetEnvIf Remote_Addr 192.168.1 no_log ← 追加(内部からのアクセスをログに記録しない)
SetEnvIf Remote_Addr 127.0.0.1 no_log ← 追加(自ホストからのアクセスをログに記録しない)
CustomLog logs/access_log combined env=!no_log ← 上記以外のアクセスをログに記録する


532行 ServerSignature On -> ServerSignature Off # エラーページ等でApacheのバージョンを表示しないようにする


の部分について
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
550行 Options Indexes MultiViews -> Options MultiViews #iconsディレクトリのファイル一覧を表示しないようにする
AllowOverride None
Order allow,deny
Allow from all
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
下記の二行は後でPHP作成後、ページの様子を見る
739行 LanguagePriority ja en ca cs da de el eo es et fr he hr it ko ltz nl nn no pl pt pt-BR ru sv zh-TW zh-CN

755行 AddDefaultCharset UTF-8 -> #AddDefaultCharset UTF-8 # コメントアウト

786行 #AddHandler cgi-script .cgi -> AddHandler cgi-script .cgi .pl
#コメントアウト、そしてCGIスクリプトに.plを追加

----------------------------------------------------------------------------------------------


rm -f /etc/httpd/conf.d/welcome.conf ← テストページ削除
rm -f /var/www/error/noindex.html ← テストページ削除

Perlコマンドへ/usr/local/bin/perlでもアクセスできるようにする。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ln -s /usr/bin/perl /usr/local/bin/perl #/usr/local/bin/perlから/usr/bin/perlへリンクをはる
# whereis perl  #Perlのパスを確認
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

ドキュメントルート所有者変更
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# chown UserName. /var/www/html/  #ドキュメントルート所有者変更
# ll /var/www/  #ドキュメントルート所有者変更確認
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


/etc/rc.d/init.d/httpd start 或いは Service httpd start #Apacheを起動
chkconfig httpd on           #Apacheを自動起動設定
chkconfig --list | grep httpd      #Apacheの自動起動設定確認


====================================================================================================================
ページが開けないの原因一つ可能性はiptablesのFWが遮断された
この際、iptablesに"-A INPUT -p tcp --dport 80 -j ACCEPT"を追加し、解決できます。
vi /etc/sysconfig/iptables
-----------------------------------------------------------------------------------------
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
-----------------------------------------------------------------------------------------
service iptables restart # iptablesを再起動

# echo test >> /var/www/html/index.html # テストページ作成
# rm -f /var/www/html/index.html # テストページ削除

$rpm -qa httpd         # apache バージョンを確認