since 2002/01/01
lastupdate 2003/01/16
   

apacheをインストール

次はapache(httpd)をインストールしましょう。
尚、PostgreSQLは先にインストールしておいたほうが良いでしょう。
また、インストールの前にperlがインストールしてあるか調べておきましょう。

ソースの展開

用意したソースを /usr/local/src に移動して解凍します。 解凍すると同じ名前のディレクトリにファイルが展開されます。

$ cp apache_1.3.22.tar.gz /usr/local/src/
$ tar xzf apache_1.3.22.tar.gz
$ cd apache_1.3.22

コンパイルとインストール

上の例では、解凍後展開したディレクトリに移動しています。移動していない場合は移動してください。
で、configureを行います。configurは、次のように実行します。尚、これ以降の手順はすべて root で行いましょう。

# su
# OPTIM="-O2" ./configure --enable-module=so
( "-O2" は マイナス オー2 です。間違えないでくださいね。)

あとは、コンパイルしてインストールします。

# make
# make install

インストールが終わると、メッセージが表示されます。メッセージの最後はこんな感じ。

| Thanks for using Apache.       The Apache Group        |
|                                http://www.apache.org/  |

httpd.confの編集

さて、インストールが終わったら、apacheの設定ファイルである httpd.conf を編集します。
このファイルは、ソースからインストールした場合は、/usr/local/apache/conf/httpd.conf となります。
httpd.confはかなり長いファイルなので、項目を探すだけでも疲れそうです。 geditなどのGUIツールで編集する方が簡単ですね。 ただし、rootでないと編集できませんよ(^^;;;
尚、ここでは最低限の設定だけを説明します。細かな設定は、書籍や Japan Apache Users Group で調べてみてください。どちらかというと、インストールよりこちらの方が面倒なんですよね(^^;;;

サーバ名を変更

ServerName と書いてある行がコメントアウトされていますので、 この行をコメントにしている記号 # を削除します。
(以下コメントアウトを解除する、などという場合はこの#記号を削除する、と覚えておきましょう。)
そしたら必要に応じてサーバの名前をつけましょう。 通常この場所には、ホスト名が入っていると思います。
たとえば、こんな風にしますか。

ServerName koano-net.ddo.jp

ドキュメントルートの設定

ドキュメントルートは、たとえば当サーバなら、http://koano.jp/ とアクセスした場合に表示されるディレクトリです。
ここにindex.htmlという名前のファイルなどを作ればそれが表示されます。
通常はデフォルトで次のようになっていると思います。

DocumentRoot "/usr/local/apache/htdocs"

これを必要に応じて公開するディレクトリに設定します。
どこに設定してよいかわからなければ、とりあえずそのままでも良いかな?少し不安(^^;;;
ただし、ドキュメントルートは、apacheの動作テストを行ってから変更する方が良いかも知れません。 動作テストの時にIt worked!画面が表示されなくなるのでテストがしづらくなります。 また、後からhttpd.confの設定を変更した場合は、httpdの再起動をお忘れなく。

ディレクトリにアクセスした場合の設定

通常先ほどのDocumentRootにindex.htmlという名前のファイルを置いていた場合、 http://koano-net.ddo.jp/ のようにアクセスすると、そのindex.htmlファイルが表示されます。
デフォルトでは、ディレクトリにアクセスした場合に、ディレクトリの中身を表示せずに、 index.htmlがあればそれを表示するように設定されています。
PHPでindexページを作る場合などで、index.phpなどというファイルをindex.htmlの代わりに使いたい場合は、 <IfModule mod_dir.c> と書いてある場所を探し、すぐ下の行のindex.htmlの記述の後に、例えば以下のように追記します。

DirectoryIndex index.php index.html

また、ここに書いた順番がそのまま優先順位になるので、 この場合、同じディレクトリにindex.htmlがあってもindex.phpを読み出します。
当然index.phpが無ければindex.htmlが読まれます。 尚、該当するファイルが無い場合はディレクトリの内容が表示されてしまいます。

PHPモジュールを読み込ませる設定

どうせPHPもインストールするので、そちらの設定も行っておきます。 ファイルの中にこのようなコメント行があるのを探しましょう。

# LoadModule foo_module libexec/mod_foo.so

見つかったら、その行の下にでも次の記述を加えます。

LoadModule php4_module libexec/libphp4.so
LoadModule php3_module libexec/libphp3.so

PHP3のモジュールは使用する場合のみです。必要なければ書かないでください。 これでapacheの起動時にPHPモジュールが組込まれます。

CGIスクリプトエイリアスの設定

PHPが使えればCGIの用途はそんなに多くは無いかもしれませんが、 namazuとか使いたいときもあるので、 CGIも使えるようにしておきます(必須ではありません)。 必要が無ければ使わないほうが何かと良いかもしれません。
使う場合はまず次の行を探しましょう。中盤より後ろのほうだと思います。

<IfModule mod_alias.c>

この行の後の方に、apacheのiconとmanualのディレクティブが続き、 その後にCGIのエイリアスとディレクティブがありますので、 必要に応じてエイリアスの変更を行ったり、CGIが動作するように設定を変更します。 具体的には、次の行を変更します。

エイリアスを変更
デフォルト: ScriptAlias /cgi-bin/ "/usr/local/apache/cgi-bin/"
変更後: ScriptAlias /cgi-bin/ "CGIを動かしたい任意のディレクトリ"

CGIディレクティブのパスを変更
<Directory "/usr/local/apache/cgi-bin"> のパスをエイリアスで設定したパスに変更します。

CGIの実行を許可
<Directory "エイリアスで指定したパス"> ディレクティブの1行を変更。
デフォルト: Options None
変更後: Options +ExecCGI

ファイルタイプの設定

あと、拡張子によるファイルタイプの設定をします。
apacheは通常、.php という拡張子のファイルを、 PHP4のスクリプトファイルとして処理します。 また、PHP3の拡張子は通常 .php3 となっています。ただしどちらも初期状態ではコメントアウトされていますので、 これを外してやる必要があります。
尚、この拡張子は別のものにして PHP スクリプトであることを隠蔽しては? などと言うようなことも書いてありました。
とりあえず、以下の行を探します。

# And for PHP 4.x, use:

この行の下にある以下の行のコメントアウトを解除します。

AddType application/x-httpd-php .php AddType application/x-httpd-php-source .phps

あとついでですので、CGIファイルのファイルタイプも設定しちゃいましょう。このすぐ下のほうです。 次の行のコメントアウトをはずします。

AddHandler cgi-script .cgi

また、httpd.confの中に、AddDefaultCharset On という項目がある場合、 このままだと日本語表示がうまくゆかない場合があります。
この場合、On を .(ドット)に書き換えましょう。 これで、EUC等の文字コード設定が生きます。

さて、これで通り一遍の設定はできたと思いますが、心配なので次のコマンドで設定を確認します。

$ /usr/local/apache/bin/apachectl configtest

これでhttpd.confの内容にエラーが無いかチェックしてくれます。完全というわけではないでしょうけど、 少なくても文法的な誤りで失敗、ということは防げるでしょう。

まぁ実際運用してゆくには、もっといろいろやらなければイカンのでしょうけど、 私のレベルはこんなもんです(^^;;;
ただ、これだけではまだwebサーバは動いていません。動かすのはPHPをインストールしてからにしましょう。 どうしても動かしたい人は、これで動きます。(rootでないと動きません)

# /usr/local/apache/bin/apachectl start

これで httpd started と表示されれば起動しています。

apache起動とPHPの動作テスト

さて、ここまできたら apacheの方はひとまず置いておいて、PHPのインストールを行いましょう。 これは動作テストを一回で済ますためです。
ですので、先に apache のテストをだけを先に行っておいても良いですが 、ここでは PHP のインストールが終了しているものとして説明しています。終わっていない場合はPHPのインストールを先に済ませましょう。

さて、apache を起動するには繰り返しになりますが、このようなコマンドを使います。

# /usr/local/apache/bin/apachectl start

これで httpd started と表示されれば起動は成功です。

また、ついでですが再起動をさせる場合には restart、 停止させる場合には stop をapachectlの引数として渡してあげればそのように動作します。
起動に成功したら、まずapache自体が動作しているか確認しましょう。ブラウザを起動して、次のアドレスにアクセスしてみます。

http://localhost/

apacheやネットワークの設定に問題が無ければ、これでwebページが表示されるはずです。 通常kondaraでインストールした場合は、「あなたの予想に反してこのページが見えているでしょうか?」 と表示されると思います。また、場合によっては「It worked!」と書かれた英語のページかもしれません。 いずれにしてもどちらかが表示されれば正常です。
ただし、あなたがリモートでインストールの作業をしている場合は、 loaclhost の部分をサーバのIPアドレスに読み替えてアクセスしてください。

次はPHPのテストを行います。 次のようなスクリプトを作り、ドキュメントルートディレクトリに保存してください。 通常は root でないとドキュメントルートには保存できないと思いますので、注意してください。

<?php phpinfo() ?>

短いですけど、立派なPHPスクリプトです(^^。
これはPHPの情報をweb上で表示してくれる関数です。 ドキュメントルートにこのファイルを置き、ファイル名を phpinfo.phpとした場合、 次のアドレスでアクセスできると思います。

http://localhost/phpinfo.php

PHPのインフォメーションが表示されていれば正常です。 ここで、自分が有効にしたオプションが生きているかもあわせて確認しておきます。 例えば、PHPの configure で --with-pgsql を付けていたとすれば、表示される一覧の中に「pgsql」と書かれた項目があるはずです。 この項目がないということは、PostgreSQL を利用できるようにインストールできていませんので、 インストールを振り返ってみてどこかに間違いがないか探して見ましょう。

最後に、ダイナミックDNSなどでドメインが使えるようになっているならば、 ドメインでアクセスしてみましょう。 当サーバの場合なら、

http://koano.jp/

と、アクセスして先ほどの「あなたの予想に反して...」と表示されればさらに吉です。 まぁ最初から DocumentRoot で指定した場所に phpinfo() おいてを確認するのが効率的かもしれないけど、 やっぱり It worked! は1回は見とかなきゃね(^^

自動起動の設定

さて、最後にapacheをサーバの起動と同時に自動的に起動するように設定しておきましょう。
その前に、まずこのファイルがあるか確認してみましょう。

/etc/rc.d/init.d/httpd

実はソースからインストールした場合、このファイルはおそらくありません。
で、これが何かというと、システムが使用するスクリプトファイルなんだけど、 パッケージでインストールすると自動的に作成され、マシン起動時にapacheを起動するのに使われます。 このファイルはソースからのインストールでは作成されないので、 持っていない人は こちら をコピーしてください。 これはパッケージでインストールしたときにできたのを保存しておき、httpdのパスなどを修正したものです。 コピーしたら /etc/rc.d/init.d ディレクトリに保存して、パーミッションを 750 あたりにしておきましょう。
もちろん/etcディレクトリなので、すべてrootでないとできませんよ。

このファイルを保存する際の文字コードや改行コードに注意してください。(特にWindowsクライアントで操作している場合)
ま、日本語を書いていなければ文字コードは関係ないと思いますが、改行コードは LF にしておくと良いでしょう。 また、よくわからない場合は、ftpでアップロードするのも一つの手です。 大抵のftpソフトは自動的に文字コードや改行を変換してくれますので。

保存したら、次のコマンドを実行してください。これは、インストールの時にもお目にかかったやつです。 コマンドの意味は、ランレベルが345で起動する場合の設定をしなさい、という感じです。 これもrootで行います。

/usr/sbin/ntsysv --level 345

するとプログラムが起動し、一覧の中のどこかに[httpd]というのがあるはずですので、 スペースキーをたたいて[*]を付け、 TABでOKボタンへ進み選択します。 これで、サーバの起動時に自動的にapacheが起動するようになっています。 もし急がないのならサーバを再起動させ、自動的に apache が起動する事を確認してみてください。

ドキュメントの設置

さて、これでapacheのインストールは一通り終わりです。あとはドキュメントを作成して公開するだけです。
It worked!画面が表示されるような状態で apache を動かしておくのはかなり恥ずかしいらしいので、 早めにドキュメントルートのwebページ位は作りましょう(^^;;;