私のWebサーバーディレクトリに内容を含むtest.phpファイルがありますphp phpinfo();
。php test.php
シェルで実行しようとすると正しく実行されます。しかし、ブラウザでWebページを開こうとするとphp phpinfo();
。 UNIXシステムでApache 2とPHP 5の問題を解決するにはどうすればよいですか?
答え1
このファイルを試してください<?php ... ?>
。
<?php
phpinfo();
?>
デフォルトでは、PHPファイルの内容はHTMLであり、変更されずにブラウザに送信されます。 PHPと解釈されるPHPコードの始まりと終わりを表示して<?php
表示します。?>
答え2
〜のようにPenguin359が指摘しました。、PHPは少なくとも<?
HTMLページで...で囲まれていないコンテンツを解釈しません。?>
試してもまだ機能しない場合は、まず最初にすべきことは、サーバーのアクセスとエラーログを確認することです(デフォルトでは、ディストリビューションで奇妙なことがない限り、指示でAccessLog ErrorLog`設定ファイルを確認してください/var/log/apache2/access.log and /var/log/apache2/error.log
)。彼らの言うことに基づいて問題解決を続けてください。/etc/apache2/ for the
and
ページにアクセスしてもエラーが報告されない場合は、サーバーが何らかの理由でPHPパーサーを起動する必要があることを認識していないことを意味します。これは、誤った設定によって発生した可能性が高いです。
ApacheがPHPパーサーを呼び出す方法はいくつかあります。最も一般的な2つの方法は、動的にロードされたPHPモジュールまたはCGIを介することです。
ロードする必要がある場合、mod_php
構成ファイルには次のディレクティブを含める必要があります。
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
php5 モジュールが .php ページを処理するように指示する指示とともに、次のようになります。
<IfModule mod_php5.c>
AddType application/x-httpd-php .php .phtml .php3 .php5
AddType application/x-httpd-php-source .phps
php_admin_flag register_globals off
</IfModule>
ディストリビューションでapache2設定を処理する方法によっては、いくつかの違いがあるかもしれません。
cgiを介して呼び出される場合 - 通常はスレッドサーバーとそのような素晴らしい機能を可能にするので、より良い選択です。数を実行- その後、Apache設定ファイルを再確認して、次のような行を探す必要があります。
AddHandler fcgid-script .php .php5
.php
またはで終わるファイルを処理する方法をサーバーに伝えます.php5
。
<? ... ?>
しかし、アクセスログとエラーログを見ていない限り、サーバーに何が間違っているのかを推測するのは難しいです(単に.phpファイルをラップするのに失敗した最初の失敗ではないと仮定してください)。