Ubuntu 22.04 の Apache で PHP を有効化する手順です。この記事では、Apache の基本構築が完了している前提で、PHP パッケージのインストール、Apache モジュール連携、PHP 設定、動作確認を整理します。
PHP は Apache の基本機能ではなく、動的コンテンツを処理する追加機能です。静的な Web サイトだけであれば不要ですが、WordPress や PHP アプリケーションを動かす場合は必要になります。
Apache HTTP Server ポケットリファレンス
Apache HTTP Server の設定、ディレクティブ、モジュール、運用項目を確認したい場合の参考書籍です。古い 2.0 / 2.2 系対応書籍のため、価格や在庫、現在の Apache 2.4 との差分はリンク先や公式ドキュメントで確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
関連する Apache 記事
Apache の基本設定、TLS、PHP、HTTP/2、WAF は役割が分かれます。必要な機能を順番に追加していくと、設定の責務を切り分けやすくなります。
- Ubuntu 22.04 Apache 基本構築 – VirtualHost と DocumentRoot を整理する
- Ubuntu 22.04 Apache TLS – 内部 CA 証明書で HTTPS を有効化する
- Ubuntu 22.04 Apache PHP 有効化 – libapache2-mod-php の設定と確認
- Ubuntu 22.04 Apache Web サーバー構築 HTTP/2 有効化
- Ubuntu 22.04 Apache Web サーバー構築 WAF 有効化
Apache と PHP の関係
| 方式 | 概要 | 補足 |
|---|---|---|
| libapache2-mod-php | Apache モジュールとして PHP を実行する | 小規模構成では扱いやすい |
| PHP-FPM | Apache から PHP-FPM へ処理を渡す | 分離しやすく、Nginx でも使われる |
| 静的 HTML | PHP を使わずファイルを返す | PHP が不要なサイトでは最も単純 |
ここでは、Ubuntu 22.04 で扱いやすい libapache2-mod-php を使う例にします。大規模運用や分離を重視する場合は PHP-FPM も検討します。
PHP をインストールする
sudo apt update
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y php libapache2-mod-php php-cli php-commonPHP モジュールを確認する
php -v
apache2ctl -M | grep phpApache モジュールとして PHP が読み込まれていれば、php_module が表示されます。表示されない場合は、PHP モジュールを有効化して Apache を再読み込みします。
sudo a2enmod php8.1
sudo apache2ctl configtest
sudo systemctl reload apache2Ubuntu 22.04 の標準 PHP は 8.1 系です。環境によってバージョンが異なる場合は、php -v と /etc/php/ 以下を確認します。
PHP 設定ファイルを作成する
必要に応じて、Apache 用の PHP 設定を分けて管理します。ここではアップロードサイズやタイムゾーンを例にします。
sudo tee /etc/php/8.1/mods-available/local-apache.ini <<'EOF'
date.timezone = Asia/Tokyo
upload_max_filesize = 32M
post_max_size = 32M
memory_limit = 256M
EOF
sudo phpenmod local-apache
sudo systemctl reload apache2PHP 設定は CLI と Apache で読み込まれる場所が異なることがあります。CLI の php -i だけで確認せず、Web 経由での確認も行います。
動作確認用 PHP を配置する
検証用に PHP ファイルを配置します。確認後は削除します。phpinfo() は環境情報を大量に出すため、恒久的に公開しない方が安全です。
sudo tee /var/www/server.example.local/phpinfo.php <<'EOF'
<?php
phpinfo();
EOF
curl -I http://server.example.local/phpinfo.phpPHP が処理されているか確認する
PHP が処理されずにソースが表示される場合、Apache 側で PHP モジュールが有効になっていないか、VirtualHost / Directory 設定の問題が考えられます。
curl http://server.example.local/phpinfo.php | head
apache2ctl -M | grep php
sudo journalctl -u apache2 -n 50 --no-pager検証ファイルを削除する
sudo rm /var/www/server.example.local/phpinfo.php運用上の注意
phpinfo()を公開したままにしない- PHP の設定変更後は Apache を reload する
- CLI と Apache で参照する PHP 設定が違うことを意識する
- WordPress などの用途では追加拡張モジュールが必要になる
- PHP-FPM を使う場合は Apache モジュール方式とは設定が変わる
まとめ
Ubuntu 22.04 の Apache で PHP を使う場合、libapache2-mod-php を入れて Apache モジュールとして有効化し、必要な PHP 設定を反映してから Web 経由で確認します。
PHP は Apache の追加機能なので、基本構築、TLS、PHP の責務を分けるとトラブルを切り分けやすくなります。検証用の phpinfo() は確認後に削除し、公開環境に残さないことが重要です。




インストールできました。
ありがとうございます。
ご参考になったようで何よりです!