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

文:Scott Lowe(TechRepublic)
翻訳校正:石橋啓一郎
2008/01/24 08:00

Apacheの良くある問題を解決するための10のヒントをお教えしよう。

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の要件についていくつか詳しく説明したが、どのモジュールにも癖がある。

記事の感想やご意見をコメントでお寄せください(CNET_IDログインが必要です)
ログイン パスワードを忘れた方  |  新規登録
RIAやAjaxによりインターフェイスデザインの幅が広がりました。「正しいデザイン」へのアプローチを、テクノロジーとメソドロジー両方の切り口で、具体的にご紹介するリアルイベントです。
  • 2日前のトップ記事
  • 3日前
  • 4日前
  • 5日前
  • 6日前
  • 新着記事
  • 人気記事
  • 特集
  • ブログ