Apacheのトラブルを解決する10のヒント

文:Scott Lowe(TechRepublic) 翻訳校正:石橋啓一郎
2008-01-24 08:00:00
  • このエントリーをはてなブックマークに追加

5:新しくインストールしたモジュール・機能拡張(PHPなど)が動かない

 例えば、最近PHPの機能拡張をインストールしたが、サイトを訪問してもコードの実行結果ではなくPHPのコード自体が表示されてしまうという場合を考えてみよう。そもそも、Linuxに慣れていない人にとっては、新しいモジュールをインストールして、すべてが完璧に動くようにするということは、背中で手を縛られている状態でクリスマスツリーを準備するのと同じようなことだ。

 もっとも一般的な例として、ここではPHPモジュールを考えてみることにしよう。

 問題は非常に単純なものかもしれない。Apacheが.phpの拡張子に対し処理を行わないように設定されているのかもしれない。設定ファイルのhttpd.confを見て、DirectoryIndex命令を探す。その行に、次のようにあることを確認する。

DirectoryIndex index.html index.php

 Apacheのデフォルトのインストール状態では、「index.php」は省かれており、多くのPHPを使ったサイトを使い物にならないものにしている。

 さらに、httpd.confファイルにAddType命令を使った設定を行い、Apacheに.phpという拡張子について伝える必要がある。PHPを使う場合、設定ファイルに次のような行がなくてはならない。

AddType application/x-httpd-php .php

 通常、この行はコメントアウトされている。

 最後に、httpd.confファイルが実際にサポートされているPHPモジュールをロードしているかを確認する。もしPHP処理モジュールをロードしていなければ、いくつAddType命令を入れても、Apacheは.phpページをどのように処理していいかわからないことになる。以下にPHP 4のLoadModuleのディレクトリ設定例を示す。

(Apache 2+) LoadModule php4_module modules/libphp4.so
(Apache 1.3) LoadModule php4_module libexec/libphp4.so

 Apache 1.3では、4つ目の命令が必要になる。

AddModule mod_php4.c

 もしこれでも動作しなければ、モジュールが自分が使っているApacheのバージョンと互換であることを確かめる。例えば、PHPの開発者はApache 2以降では最低でもPHP 4.3.0を使うことを推奨している。

 簡単に言えば、Apacheに追加モジュールを設定する際には、説明に厳密に従っていることを確認することだ。ここではPHPの要件についていくつか詳しく説明したが、どのモジュールにも癖がある。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]