• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Debian/GNU Linux V.3.1r1 + PHP4で PHPが突然動作しない)

Debian/GNU Linux V3.1r1 + PHP4でPHPが突然動作しない

このQ&Aのポイント
  • Debian/GNU Linux V3.1r1で突然PHP4が動作しなくなってしまいました。
  • 数日は正常に動作していたのですが、突然上記の状況となりました。
  • aptitude remove apache2 libapache2-mod-php4 をしても解決せず、Apache2は動作しているようですが、PHP4のモジュールがロードされていないようです。他にどのような確認をしたら良いでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.2

>にコピーしたところ(シンボリックリンクがわからなかったのでとりあえず) >PHPが動作するようになりました。 ファイルを直接コピーされたようですが、ここはやはりDebian流にのっとって シンボリックリンク(Windowsでいうところのショートカット)を張りましょう。 # ln -s /etc/apache2/mods-available/php4.conf /etc/apache2/mods-enabled/php4.conf # ln -s /etc/apache2/mods-available/php4.load /etc/apache2/mods-enabled/php4.load 但し、同じような作業を繰り返すのは面倒なので、モジュールの一覧から、シンボリックリンク を張ったり、削除してくれる便利なコマンドがDebianには用意されています。 ●シンボリックリンクを削除(モジュールを無効)してくれる、a2dismod コマンド # a2dismod Which module would you like to disable? Your choices are: cgi php4 userdir ← モジュールの一覧が表示される Module name? php4 ← 無効にしたいモジュールを指定する Module php4 disabled; run /etc/init.d/apache2 force-reload to fully disable. ●シンボリックリンクを張ってくれる(モジュールを有効)、a2enmod コマンド # a2enmod Which module would you like to enable? Your choices are: actions asis auth_anon auth_dbm auth_digest auth_ldap cache cern_meta cgi cgid dav dav_fs deflate disk_cache expires ext_filter file_cache headers imap include info ldap mem_cache mime_magic php4 proxy proxy_connect proxy_ftp proxy_http rewrite speling ssl suexec unique_id userdir usertrack vhost_alias ← モジュールの一覧が表示される Module name? php4 ← 有効にしたいモジュールを指定する Module php4 installed; run /etc/init.d/apache2 force-reload to enable.

その他の回答 (1)

  • xjd
  • ベストアンサー率63% (1021/1612)
回答No.1

>PHP4のモジュールがロードされる記述が見つけられないのですが、どういう仕組みで >PHP4のモジュールはロードされるのでしょうか。 DebianのApache2は設定ファイルの配置が独特でして、まず、Apache2の設定ファイルは 以下のファイルです。 /etc/apache2/apache2.conf (httpd.confではない) 次に、apache2.confファイルの110行目あたりに、以下のような記述があるはずです。 115: # Include module configuration: 116: Include /etc/apache2/mods-enabled/*.load 117: Include /etc/apache2/mods-enabled/*.conf apache2.confを読み込む途中で、/etc/apache2/mods-enabled/配下の *.load と *.confファイルを読み込みなさい、という意味です。 というわけで、/etc/apache2/mods-enabled/ 配下をのぞいて見ると、 # ls -l /etc/apache2/mods-enabled/ lrwxrwxrwx 1 root root 37 Feb 26 20:17 php4.conf -> /etc/apache2/mods-available/php4.conf lrwxrwxrwx 1 root root 37 Feb 26 20:17 php4.load -> /etc/apache2/mods-available/php4.load あなたが捜している、php関連のファイルがありますが、見たとおり、これはシンボリックリンクに なっているわけで、php関連の設定ファイル本体は、/etc/apache2/mods-available/ 配下にあります。 ls -l /etc/apache2/mods-available/ -rw-r--r-- 1 root root 133 Aug 25 2005 php4.conf -rw-r--r-- 1 root root  59 Aug 25 2005 php4.load 中身をみれば、見慣れた記述があるはずです。 # cat /etc/apache2/mods-available/php4.load LoadModule php4_module /usr/lib/apache2/modules/libphp4.so # cat /etc/apache2/mods-available/php4.conf <IfModule mod_php4.c> AddType application/x-httpd-php .php .phtml .php3 AddType application/x-httpd-php-source .phps </IfModule> ご参考まで。

HiroBlue
質問者

お礼

ありがとうございました。 確認してみたところ、 /etc/apache2/mods-enabled/ のなかに、PHPに関するものがありませんでした。 /etc/apache2/mods-available/ にあったPHP関連のconfとloadを /etc/apache2/mods-enabled/ にコピーしたところ(シンボリックリンクがわからなかったのでとりあえず)PHPが動作するようになりました。 はじめは正常に動作していたので、 どうして消えてしまったのか不思議です。

関連するQ&A