Apache 2 が PHP ファイルを実行しない問題を修正する方法

Apache 2 が PHP ファイルを実行しない問題を修正する方法
画像: Scanrail/Adobe Stock

Apache 2でWebサーバーを構築したのに、.php拡張子のページを表示しようとすると、ローカルドライブに保存しようとしたり、ブラウザにPHPコードが表示されたりした経験は、何度ありますか?これは様々な意味で問題です。まず、ウェブサイトが正常に機能しなくなります。さらに悪いことに、誰かがコードを覗き見てしまう可能性があり、これはフラストレーションになるだけでなく、セキュリティ上の問題にもなりかねません。

これは簡単に修正できるため、PHP と Apache 2 の使用を避ける理由はありません。しかし、どのように修正すればよいのでしょうか? 説明しましょう。

注:このプロセスは、Ubuntu Desktop 23.04でApache 2とPHP 8.1の最新リリースを実行している環境で実行しています。このプロセスは、ほとんどの最近のLinuxディストリビューションで動作します。

ジャンプ先:

  • Apache 2とPHP 8.1のインストール
  • Apache 2の起動と有効化
  • PHP 8.1のインストールの確認
  • 次のステップ: Apache 2 と PHP のセットアップのセキュリティ保護

Apache 2とPHP 8.1のインストール

パッケージ管理により、Apache 2とPHP 8.1のインストールと設定が簡単になります。ターミナルで以下のコマンドを実行すると、Apache 2、PHP 8.1、PHP 8.1コマンドラインインタープリター、そしてApache 2とPHP 8.1を連携させるためのモジュールがインストールされます。

sudo apt-get install apache2 php8.1 php8.1-cli \

libapache2-mod-php8.1 -y

注:上記の行は、ページの余白の制限により分割されています。行末のバックスラッシュは意図的なものです。

参照: TechRepublic Premium のサーバーの管理とトラブルシューティングには、このチェックリストを活用してください。

Apache 2の起動と有効化

Apache 2 と PHP モジュールのインストールが完了したら、Apache 2 を起動して有効にする必要があります。Apache 2 を起動しても有効にしないと、システムを再起動しても Apache 2 は再起動しません。

sudo systemctl start apache2

sudo systemctl enable apache2

次のコマンドを使用して、Apache 2 のステータスを確認できます。

sudo systemctl status apache2

このコマンドは、Apache 2 が実行中かどうか、および有効になっているかどうかを知らせます。

PHP 8.1のインストールの確認

Apache 2をインストールし、PHP 8.1を設定したら、インストールが正常に動作していることを確認する必要があります。これは、/var/www/htmlディレクトリ内に簡単なPHPスクリプトを作成することで実行できます。

デフォルトでは、Apache 2 パッケージはディレクトリindex.html内にファイルを作成します/var/www/html。このファイルは次のコマンドで削除できます。

sudo rm /var/www/html/index.html

sudoこのファイルは root が所有しているため、このコマンドが必要です。

代わりに、新しいファイル を作成します/var/www/html/index.php

sudo nano /var/www/html/index.php

このファイルに次のコードを配置します。

<?php

phpinfo();

?>

サーバーにデスクトップ環境とWebブラウザがインストールされている場合は、URL http://localhost でインストール先を参照できます。そうでない場合は、インストールを実行したサーバーのIPアドレスを使用して、ネットワーク上の別のコンピューターからインストール先を参照できます。

以下のような画面が表示されたら、おめでとうございます!Apache 2 と PHP 8.1 が正常にインストールされました (図 A )。

図A

Apache 2 および PHP 8.1 が正常にインストールされているかどうかを確認します。
Apache 2 および PHP 8.1 が正常にインストールされているかどうかを確認します。

Apache 2 および PHP 8.1 のインストールが動作していることを確認したら、phpinfo()特にこれを公開サーバー上で実行している場合は、必ず次のコマンドを入力してください。

<?php

//phpinfo();

?>

次のステップ: Apache 2 と PHP のセットアップのセキュリティ保護

通常、Apache 2とPHPの設定に関しては「これで完了!」と言えるでしょう。しかし、実際にはそうではありません。まず、Apache 2のデフォルト設定は非常に安全性が低いため、次に行うべきことは、適切なセキュリティ対策を講じることです。具体的な方法については、以下の記事をご覧ください。

  • Apache 2 サーバーを 4 つのステップで保護する方法 (TechRepublic)
  • ディレクトリフォルダを非表示にしてApacheのセキュリティを強化する方法(TechRepublic)
  • 公開される情報を制限してApacheサーバーのセキュリティを向上させる方法(TechRepublic)
Tagged: