web-dev-qa-db-ja.com

PHP Apache2で解析されていない、phpモジュールがインストールされ、有効になっている

編集:Apacheとphpのインストールを一掃し、最初から始めることにしました。物事は今うまくいっています、なぜ以前になかったのか分かりません。私はおそらく30の異なるLAMPタイプのサーバーをセットアップしたことがあり、これまでこれに遭遇したことはありません。私はこれを狂気に陥れるだけだと思います。

元の質問は次のとおりです。

ご挨拶、

PHPファイルがWebサーバーで正しく実行されていません。私は次のようなテストファイルを持っています:

<html>

<head>
<title>Testing PHP</title>
</head>
<body>
<?php
phpinfo( );
?>
</body>
</html>

インストールされているPHPおよびApacheパッケージは次のとおりです。

 $ dpkg -l | grep php 
 ii libapache2-mod-php5 5.2.6.dfsg.1-3ubuntu4.2 
 ii php-config 1.10.11-1 
 ii php-pear 5.2.6 .dfsg.1-3ubuntu4.2 
 ii php5 5.2.6.dfsg.1-3ubuntu4.2 
 ii php5-cgi 5.2.6.dfsg.1-3ubuntu4.2 
 ii php5-cli 5.2.6.dfsg.1-3ubuntu4.2 
 ii php5-common 5.2.6.dfsg.1-3ubuntu4.2 
 ii php5-mysql 5.2.6.dfsg .1-3ubuntu4.2 
 
 $ dpkg -l | grep Apache 
 ii Apache2-mpm-prefork 2.2.11-2ubuntu2.3 
 ii Apache2-utils 2.2.11-2ubuntu2.3 
 ii Apache2.2-common 2.2.11 -2ubuntu2.3 
 ii libapache2-mod-auth-mysql 4.3.9-11 
 ii libapache2-mod-php5 5.2.6.dfsg.1-3ubuntu4.2 

これが私のphp関連の設定行です:

 $ grep -n php /etc/Apache2/Apache2.conf /etc/Apache2/mods-enabled/php5.*/etc/Apache2/httpd.conf
/etc/Apache2/mods- enabled/php5.conf:1:<IfModule mod_php5.c> 
/etc/Apache2/mods-enabled/php5.conf:2:AddType application/x-httpd-php .php .phtml .php3 
/etc/Apache2/mods-enabled/php5.conf:3:AddType application/x-httpd-php-source .phps 
/etc/Apache2/mods-enabled/php5.load:1: LoadModule php5_module /usr/lib/Apache2/modules/libphp5.so

ご覧のとおり、php5モジュールがロードされています。 a2enmodはすでにロードされていることを示しているので、これを確認できます。

現在、ブラウザでPHPファイルを読み込もうとすると、単に生のテキストとして表示されます。

不思議なことに、それを修正しようとすると、httpd.confの下部に「AddTypeapplication/x-httpd-php .php .phtml .php3」のような行を追加すると、突然それらをダウンロードするように求められることがわかりました。代わりにphpファイル。そのような行がphp5.confモジュールファイルと同じであることを考えると、それは奇妙です。

明らかに、どちらも望ましい動作ではありません。

また、はい、Apache2、そして今ではサーバー自体も何度も再起動されています。 Apacheは、通常のHTMLページを問題なく提供します。

何か案は?

2
phoebus

構成ファイルの同じgrepを実行すると、実行しなかった1行が表示されます。

/etc/Apache2/mods-enabled/dir.conf:3:DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm 

/etc/php5/Apache2/php.iniのこの行が次のように設定されていることを確認してください。

; ApacheでPHPスクリプト言語エンジンを有効にします。
engine =オン

変更した場合は、Apacheを再起動してください。

Sudo Apache2ctl restart
2

php.iniファイルで設定されているshort_open_tagオプションは何ですか?私はしばしばそれをオンにするのを逃しました-それで私はあなたがどのように感じるかもしれないか知っています。一部のパッケージメンテナは、このオプションを「0」に設定します。 http://www.php.net/manual/en/ini.core.php を参照してください

2
Marcus Spiegel

このコマンドだけで役立つ場合があります。

Sudo Apache2ctl restart

私も同じような状況にありました。

0
Luke Stanley