Webサーバ(Apache)

■ FC2~FC6 / Fedora7 / Fedora8 / Fedora9
Apache はインターネットで最も普及しているオープンソースの Web サーバソフトウェアーです。Apache は標準でインストールされていますのでサーバーの設定に移ります。
■Apache がインストールされてるかどうか確認します。

[root@server ~]# rpm -q httpd
httpd-2.2.8-3.i386  ← パッケージ情報が表示された
パッケージ情報が表示されなければインストールします。
[root@linux ~]# yum -y install httpd 

■PHPをインストール

[root@linux ~]# yum -y install php

■Apacheの設定

Apacheの設定ファイルの編集
[root@linux root]# vi /etc/httpd/conf/httpd.conf
エラーページ等でOS名を表示しないようにする
ServerTokens OS
↓
ServerTokens Prod
エラーページ等でApacheのバージョンを表示しないようにする
ServerSignature On
↓
ServerSignature Off
管理者のメールアドレスを設定する
ServerAdmin root@localhost
↓
ServerAdmin webmaster@yokensaka.com ← 独自ドメインに変更
サーバー名を指定
#ServerName www.example.com:80
↓
ServerName yokensaka.com:80 ← #をはずして独自ドメインに変更
CGIスクリプトを実行できる様にする
#AddHandler cgi-script .cgi
         ↓
AddHandler cgi-script .cgi .pl ← #をはずして.plを追加
デフォルトキャラセットを無効にする
AddDefaultCharset UTF-8
         ↓
#AddDefaultCharset UTF-8 ← #を付ける
CGIの許可、SSIの許可、シンボリックリンク許可
# http://httpd.apache.org/docs-2.0/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks
         ↓
Options Includes ExecCGI FollowSymLinks
.htaccessの許可
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
AllowOverride None
         ↓
AllowOverride All
長すぎるURI(414 Error)はログに記録しない
# The following directives define some format nicknames for use with
# a CustomLog directive (see below).
#
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
ログの記録内容変更
# logged therein and *not* in this file.
#
#CustomLog logs/access_log common
この下に以下を追加
SetEnvIf Request_URI "default\.ida" no_log
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 Request_URI "\.(gif)|(jpg)|(png)|(ico)|(css)$" no_log
SetEnvIf Remote_Addr 192.168. no_log
CustomLog logs/access_log combined env=!no_log

■Perlのパスが/usr/local/bin/perlでもCGIを実行出来るようにする。

現在のPerlの位置
[root@linux ~]# which perl
/usr/bin/perl
シンボリックリンク設定(/usr/local/bin/perlから/usr/bin/perlへリンクをはる)
[root@linux ~]# ln -s /usr/bin/perl /usr/local/bin/perl
変更後のPerlの位置
[root@linux ~]# which perl
/usr/local/bin/perl

■ドキュメントルートの所有者変更

[root@linux ~]# chown higo:higo /var/www/html/ ← ドキュメントルート所有者変更
[root@linux ~]# ll /var/www/ ← ドキュメントルート所有者変更確認
合計 32
drwxr-xr-x 2 root root 4096 2007-05-09 19:28 cgi-bin
drwxr-xr-x 3 root root 4096 2007-06-10 23:53 error
drwxr-xr-x 2 higo higo 4096 2007-05-09 19:28 html
drwxr-xr-x 3 root root 4096 2007-06-10 20:26 icons

■Apacheの起動

Apache(httpd)を起動する
[root@linux ~]# /etc/rc.d/init.d/httpd start
httpd を起動中:                                            [  OK  ]

■Apacheの自動起動設定

[root@linux ~]# chkconfig httpd on
[root@linux ~]# chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off
           ランレベル2~5がオンの状態であることを確認

■Apacheの動作確認
クライアントより http://192.168.1.2/ でアクセスして「Fedora Core Test Page」画面が表示されればOKです。
■各機能の動作確認
1.テスト用のHTMLの表示確認を行う。

テスト用のhtmlを作成
[root@linux ~]# vi /var/www/html/index.html
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>テストページ</title>
</head>
<body>
テストページ
</body>
</html>

クライアントより http://192.168.1.2/index.html でアクセスして、「テストページ」と表示されればOKです。
2.SSIの動作確認を行なう。

テスト用のshtmlを作成
[root@linux ~]# vi /var/www/html/index.shtml
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
<title>テスト</title>
<body>
SSIテスト
<!--#config timefmt="%Y/%m/%d %H:%M:%S" -->
<!--#echo var="DATE_LOCAL" -->
</body>
</html>

クライアントより http://192.168.1.2/index.shtml でアクセスして、現在の日付が表示されればOKです。
3.CGIの動作確認を行なう。

テスト用のcgiを作成
[root@linux ~]# vi /var/www/html/test.cgi
#!/usr/local/bin/perl
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=euc-jp\">";
print "<title>テストページ</title>\n";
print "</head>\n";
print "<body>\n";
print "CGIテスト\n";
print "</body>\n";
print "</html>\n";
cgiのパーミッション変更
[root@linux ~]# chmod 755 /var/www/html/test.cgi

クライアントより http://192.168.1.2/test.cgi でアクセスして、「CGIテスト」と表示されればOKです。
4.PHPの動作確認を行なう。

テスト用のphpを作成
[root@linux ~]# vi /var/www/html/test.php
<?php
phpinfo();
?>

クライアントより http://192.168.1.2/test.php でアクセスして、PHPインフォメーション画面が表示されればOKです。
■公開前の準備
ホームページを外部に公開するに当たって、ルータの設定が必要です。
ルータの設定でポート番号80番を開けてください。