Apache はインターネットで最も普及しているオープンソースの Web サーバソフトウェアー。Apache は標準でインストールされているのでサーバーの設定に移る。
■Apache がインストールされてるかどうか確認する。
[root@server1 ~]# rpm -q httpd httpd-2.2.3-11.el5_2.centos.4 ← パッケージ情報が表示された パッケージ情報が表示されなければインストールする。 [root@server1 ~]# yum -y install httpd
■php、php-mbstringをインストール
[root@server1 ~]# yum -y install php php-mbstring
■Apacheの設定
Apacheの設定ファイルの編集 [root@server1 ~]# vi /etc/httpd/conf/httpd.conf エラーページ等でOS名を表示しないようにする ServerTokens OS ↓ ServerTokens Prod サーバー名を指定 #ServerName www.example.com:80 ↓ ServerName yokensaka.com:80 ← #をはずして独自ドメインに変更 # http://httpd.apache.org/docs-2.0/mod/core.html#options # for more information. # CGIの許可、SSIの許可 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 Remote_Addr 192.168.1 no_log SetEnvIf Remote_Addr 127.0.0.1 no_log CustomLog logs/access_log combined env=!no_log エラーページ等でApacheのバージョンを表示しないようにする ServerSignature On ↓ ServerSignature Off デフォルトキャラセットを無効にする(文字化け対策) AddDefaultCharset UTF-8 ↓ #AddDefaultCharset UTF-8 ← #を付ける CGIスクリプトを実行できる様にする #AddHandler cgi-script .cgi ↓ AddHandler cgi-script .cgi .pl ← #をはずして.plを追加 iconsディレクトリのファイル一覧を表示しないようにする <Directory "/var/www/icons"> Options Indexes MultiViews FollowSymLinks ↓ Options MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory>
■Perlのパスが/usr/local/bin/perlでもCGIを実行出来るようにする。
現在のPerlの位置 [root@server1 ~]# whereis perl perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz シンボリックリンク設定(/usr/local/bin/perlから/usr/bin/perlへリンクをはる) [root@server1 ~]# ln -s /usr/bin/perl /usr/local/bin/perl 変更後のPerlの位置 [root@server1 ~]# whereis perl perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz
※/usr/local/bin/perlは存在するのにCGIが動かない等リンクがうまく貼れてない時の対処
[root@server1 ~]# whereis perl perl: /usr/bin/perl /usr/share/man/man1/perl.1.gz [root@server1 ~]# ln -s /usr/bin/perl /usr/local/bin/perl ln: creating symbolic link `/usr/local/bin/perl': ファイルが存在します [root@server1 ~]# rm /usr/local/bin/perl ← 一旦削除 rm: remove 通常ファイル `/usr/local/bin/perl'? y [root@server1 ~]# ln -s /usr/bin/perl /usr/local/bin/perl ← リンクを貼り直す [root@server1 ~]# whereis perl perl: /usr/bin/perl /usr/local/bin/perl /usr/share/man/man1/perl.1.gz
■ドキュメントルートの所有者変更
[root@server1 ~]# chown higo:higo /var/www/html/ ← ドキュメントルート所有者変更 [root@server1 ~]# 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 ※-Rオプションで、ある特定のディレクトリの階層化にある全てのフォルダ、ファイルの所有者を変更できる。 [root@server1 ~]# chown -R higo /var/www/html/abc・・・/
※但し、-Rオプションで /var/www/html/の全てのフォルダ、ファイルの所有者を変更するとPHPが自動生成するApacheユーザーのファイルなども変更され、うまく動かないものも出てくるので注意が必要。
■Apacheの起動
Apache(httpd)を起動する [root@server1 ~]# /etc/rc.d/init.d/httpd start httpd を起動中: [ OK ]
■Apacheの自動起動設定
[root@server1 ~]# chkconfig httpd on [root@server1~]# chkconfig --list httpd httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off ランレベル2~5がオンの状態であることを確認
■公開前の準備
ホームページを外部に公開するに当たって、ルータの設定でポート番号80番を開ける必要がある。
■ ポートチェック【ポート開放確認】
「管理しているサーバーが外部から接続アクセスできるか?」「ポートは開放されているか?」「portは閉じているか?」「ルータのポートは開放されているか」等の
ポートチェック・ポートの疎通確認テストはこちらで