コマンドラインから基本的な「helloworld」phpスクリプトを実行し、コマンドphp test.php
を実行すると、有効なhtmlページが返されます。ただし、ブラウザでアクセスしようとすると、有効なhtmlではなく、phpスクリプトのテキストが返されます。
Phpスクリプト「test.php」は次のとおりです。
<html>
<head>
<title>PHP Test</title>
</head>
<body>
<?php
echo '<p>Hello World</p>';
?>
</body>
</html>
RaspbianでApacheを実行しています。
ユーザーAlexの回答に追加するには、libapache2-mod-php5
パッケージがインストールされます。上記のパッケージがインストールされていないと、Apacheは機能しません。インストールするには、
Sudo apt install libapache2-mod-php5
このパッケージをインストールすると、Apacheによってロードされるモジュールにphpが自動的に追加されます。
PHPは、さまざまな操作モードで実行される場合があります。
コマンドプロンプトから実行する場合はコンソールインタープリターにすることも、CGIとして実行することも、サービスとして実行することもできます-php-fpm
、Apacheのモジュールとして実行することも、Webサーバー自体にすることもできます。
ブラウザでphpスクリプトを実行する最も簡単な方法は、組み込みのWebサーバーを使用します。php -S ip.ip.ip.ip:port -t /path/to/directory/where/php/files/lives
を実行してip.ip.ip.ip
をRaspberryPiに割り当てられたIPアドレスに置き換え(ifconfig
から取得)、port
を組み込みサーバーが必要なポートに置き換えます接続をリッスンします(8000にします)。ブラウザでhttp://ip.ip.ip.ip:port/your-script.php
を指定すると、Apacheをまったく実行しなくても必要なものを取得できます。
それでもApacheを介してphpを実行したい場合は、どのようにインストールしたかを理解する必要があります。
PhpをApacheモジュールとして実行する必要があるかどうかを確認する手順:Apache2ctl -M
を実行し、phpモジュールがロードされているかどうかを確認します。そこにない場合は、Sudo a2enmod phpX
(Xはphpバージョン)を有効にして、次のコマンドでApache
をリロードする必要があります。Sudo service Apache2 reload
。
Phpをphp-fpmサービスとして実行する必要があるかどうかを確認する手順:
phpをphp-fpm
サービスとしてインストールする場合は、実行されているかどうかを確認する必要があります。ps aux | grep 'php-fpm'
実行中の場合は、Apacheインスタンスをプロキシとして機能するように構成する必要があります。公式 Apacheドキュメント を使用して設定します。 phpがApacheモジュールとして実行される場合と比較すると、セットアップはより複雑ですが、実稼働環境で通常必要となる多くの利点があります。
Phpをphp-cgi
として実行する必要があるかどうかを確認する手順(このモードでは、誰かがphpファイルを要求するたびにApacheによってphpが呼び出されます):
次の設定が存在するかどうか、Apacheの構成ファイルを確認してください。
ScriptAlias /local-bin /usr/bin
AddHandler application/x-httpd-php5 php
Action application/x-httpd-php5 /local-bin/php-cgi