手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 Apache PHP 有効化 – libapache2-mod-php の設定と確認

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 は役割が分かれます。必要な機能を順番に追加していくと、設定の責務を切り分けやすくなります。

Apache と PHP の関係

方式概要補足
libapache2-mod-phpApache モジュールとして PHP を実行する小規模構成では扱いやすい
PHP-FPMApache から PHP-FPM へ処理を渡す分離しやすく、Nginx でも使われる
静的 HTMLPHP を使わずファイルを返す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-common

PHP モジュールを確認する

php -v
apache2ctl -M | grep php

Apache モジュールとして PHP が読み込まれていれば、php_module が表示されます。表示されない場合は、PHP モジュールを有効化して Apache を再読み込みします。

sudo a2enmod php8.1
sudo apache2ctl configtest
sudo systemctl reload apache2

Ubuntu 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 apache2

PHP 設定は 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.php

PHP が処理されているか確認する

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() は確認後に削除し、公開環境に残さないことが重要です。

Ubuntu 22.04 Apache PHP 有効化 – libapache2-mod-php の設定と確認

Ubuntu 22.04 Apache PHP 有効化 – libapache2-mod-php の設定と確認」への2件のフィードバック

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る