
お世話になります。
Debian/GNU Linux V3.1r1で突然PHP4が動作しなくなってしまいました。
(ダウンロードしますか?となってしまう)
日経Linux2006-1の特集2に記事を参考に、
aptitude install apache2 libapache2-mod-php4 php4-mysql mysql-server
としてLAMP環境を用意しました。
数日は正常に動作していたのですが、
(<?php phpinfo(); ?>も正常に表示していました。)
突然上記の状況となりました。
実は、この現象は一度経験があり、その際は
aptitude remove apache2 libapache2-mod-php4 php4-mysql mysql-server
をして
aptitude install apache2 libapache2-mod-php4 php4-mysql mysql-server
をしたところ回復しました。
今回は、MySQL内に若干データを入れたのでアンインストール&再インストールの手順は避けたいと思います。
aptitude remove apache2 libapache2-mod-php4
aptitude install apache2 libapache2-mod-php4
では解決しませんでした。
Apache2のデフォルトページは見れるので、Apache2は動作しているようです。
PHP4のモジュールがロードされる記述が見つけられないのですが、どういう仕組みでPHP4のモジュールはロードされるのでしょうか。
また、そのほかにはどのような確認をしたらいいでしょうか。
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.
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>
ご参考まで。
ありがとうございました。
確認してみたところ、
/etc/apache2/mods-enabled/
のなかに、PHPに関するものがありませんでした。
/etc/apache2/mods-available/
にあったPHP関連のconfとloadを
/etc/apache2/mods-enabled/
にコピーしたところ(シンボリックリンクがわからなかったのでとりあえず)PHPが動作するようになりました。
はじめは正常に動作していたので、
どうして消えてしまったのか不思議です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VNCへのアクセス制限
-
centOS7のシャットダウン時のコ...
-
リモートデスクトップ接続でパ...
-
「DNSサーバーを自動的に取得す...
-
エラーメールで"too many hops"...
-
DNSサーバを設定したのですがns...
-
”Tortoise SVN” と ”Subversio...
-
エクセルで#N/Aを含めた平均値...
-
Linux パスワードを無しにして...
-
@me.comのアドレス取得の意味
-
Ubuntu(zorin os)でパスワード...
-
rlogin と rhosts の設定
-
iPadの受信メールが消える
-
TortoiseSVNでアクセスエラー
-
検索をかけた時、ページを開け...
-
Mailの送信済みメールボックス...
-
root権限によるFFFTPでの接続
-
Tera Term Pro からリモートロ...
-
Permission deniedエラーについて
-
sshの設定
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
named.confの設定
-
【DNS】ゾーン情報が上手く設定...
-
Apacheをサービスに組み込めません
-
BIND エラー not found: 3(NXD...
-
VNCへのアクセス制限
-
logrotate.confでmonthlyとした...
-
ネットワークの再起動方法
-
echo $LANGで何も表示されません。
-
Apacheとtomcatの連携で発生す...
-
CentOSでのbad owner name
-
Linuxのtarコマンドで同一ディ...
-
NFSサーバー起動時のエラー対処...
-
CentOSの解像度・変更方法。
-
Linuxの「/etc/hosts.allow」「...
-
コアダンプについて
-
Tomcat で ポート8080 が使えない
-
/etc/hosts の設定
-
crontabでtarを実行した際、エ...
-
apacheの<IfModule prefork.c>...
-
centOS5ユーザー管理
おすすめ情報