UbuntuにPHPをインストールする方法|バージョン指定・モジュール設定・Webサーバー連携まで完全解説

目次

1. はじめに

UbuntuでPHPを使う理由

PHPは、WordPressをはじめとする多くのWebアプリケーションで利用されている、サーバーサイドのスクリプト言語です。特にWeb開発においては長年にわたり広く使われており、CMSやフレームワークの多くがPHPで構築されています。

Ubuntuは安定性が高く、世界中の開発者に利用されているLinuxディストリビューションであり、サーバー用途にも非常に適しています。UbuntuとPHPの組み合わせは、個人開発から企業の本番環境まで、幅広く活用されています。

本記事の対象読者と目的

この記事では、「UbuntuでPHPをインストールしたいが、何から始めていいかわからない」という初心者から、「特定のPHPバージョンをインストールしたい」という中級者までを対象に、できる限りわかりやすく手順を解説していきます。

使用するUbuntuのバージョンは22.04 LTSを前提としていますが、他のバージョンでも基本的には同様の手順で進められます。

本記事でわかること

この記事を読むことで、以下の内容が理解・実践できるようになります。

  • UbuntuにおけるPHPの基本的なインストール方法
  • 複数バージョンのPHPをインストール・切り替える方法
  • PHPの動作確認・トラブル対処法
  • ApacheやNginxとの連携設定
  • よく使われるPHPモジュールの導入方法
侍エンジニア塾

2. 前提条件と準備

Ubuntuのバージョンを確認する方法

まず最初に、自身の使用しているUbuntuのバージョンを確認しておきましょう。PHPのインストール方法や対応しているモジュールは、Ubuntuのバージョンによって若干異なる場合があります。

以下のコマンドを実行することで、Ubuntuのバージョンを確認できます。

lsb_release -a

または、次のコマンドでもバージョン情報を取得できます。

cat /etc/os-release

この記事では、Ubuntu 22.04 LTSを基準に解説を進めていきますが、20.04や23.10でも基本的な手順は共通です。

システムのパッケージを最新に保つ

PHPをインストールする前に、システム内のパッケージを最新状態にしておくことは非常に重要です。古い依存関係や不整合を避けるため、まず以下のコマンドでアップデートを行ってください。

sudo apt update
sudo apt upgrade -y

これにより、APTパッケージマネージャーのインデックスが更新され、最新の状態で各種パッケージのインストールが可能になります。

必要なユーティリティのインストール

一部のPHPバージョンをインストールする際には、リポジトリの追加やパッケージの管理を行うために「software-properties-common」というパッケージが必要になります。これが未導入の場合は、以下のコマンドで先にインストールしておきましょう。

sudo apt install -y software-properties-common

このパッケージは、add-apt-repository コマンドなどを使用する際に必要になります。特にPPA(Personal Package Archive)を利用してPHPの特定バージョンを導入する場合に重宝されます。

root権限またはsudoの使用

本記事で紹介する操作の多くは、システムへの変更を伴うため、sudo を付けてコマンドを実行する必要があります。日常的に使い慣れていない方は、sudo コマンドの基本的な使い方も確認しておくと安心です。

3. PHPのインストール方法

UbuntuにおいてPHPをインストールする方法は、大きく分けて2つあります。1つは標準リポジトリからインストールする方法、もう1つはPPA(Personal Package Archive)を利用して、任意のバージョンを指定してインストールする方法です。ここではそれぞれの手順を詳しく紹介します。

標準リポジトリからPHPをインストールする

Ubuntuの標準リポジトリには、安定版のPHPが用意されています。特にバージョンにこだわりがなければ、以下の手順で簡単にインストールが可能です。

sudo apt install -y php

インストールが完了したら、次のコマンドでPHPが正しくインストールされているかを確認しましょう。

php -v

例:

PHP 8.1.2 (cli) (built: ...)

Ubuntu 22.04の場合、標準で提供されているのはPHP 8.1です。

PPAを利用して特定のバージョンをインストールする

「最新のPHPを使いたい」「複数バージョンを使い分けたい」といった場合には、ondrej/php というPPAを追加することで、PHPのバージョンを選択してインストールすることが可能になります。

ステップ1:PPAリポジトリを追加

sudo add-apt-repository ppa:ondrej/php
sudo apt update

このリポジトリはUbuntuコミュニティでも広く使われており、PHPの各バージョンに対応した安定したビルドが提供されています。

ステップ2:任意のPHPバージョンをインストール

たとえば、PHP 8.2をインストールしたい場合は、以下のように指定して実行します。

sudo apt install -y php8.2

同様に、PHP 7.4や8.0など、他のバージョンもインストール可能です。

ステップ3:バージョンの確認

php -v

特定バージョンのインストールが成功していれば、ここでそのバージョン情報が表示されます。

4. PHPの動作確認

PHPのインストールが完了したら、次はそれが正しく動作しているかどうかを確認しましょう。Ubuntuでは、CLI(コマンドライン)での確認に加えて、Webサーバー(ApacheやNginx)を通じての確認も行えます。ここではそれぞれの方法を紹介します。

コマンドライン(CLI)での確認

まずは、ターミナルからPHPのバージョンを表示させることで、基本的な動作確認を行います。

php -v

このコマンドにより、現在のPHPバージョンおよびビルド情報が表示されれば、CLI上での動作は正常です。

出力例:

PHP 8.2.10 (cli) (built: Aug 23 2023 08:12:10) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.2.10, Copyright (c) Zend Technologies

Webサーバー経由での確認(Apacheの場合)

Apacheをインストールしている場合、PHPがApacheと正しく連携できているか確認するには、phpinfo() 関数を使ったテストページを作成するのが有効です。

1. テストファイルの作成

以下のコマンドで、Apacheの公開ディレクトリ(通常は /var/www/html)にPHPファイルを作成します。

echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

2. ブラウザで確認

作成したファイルに、Webブラウザでアクセスします。ローカル環境であれば以下のURLになります。

http://localhost/info.php

3. 表示内容の確認

PHPに関する詳細な情報が表示されていれば、Apache経由でPHPが正しく動作していることが確認できます。

🔍 補足: phpinfo() の表示内容にはセキュリティ上の情報も含まれるため、確認後は info.php ファイルを削除しておくことをおすすめします。

sudo rm /var/www/html/info.php

Nginx + PHP-FPMでの確認

Nginxを使用している場合、PHPは php-fpm を介して処理されます。NginxとPHP-FPMの連携確認は、Nginxの設定ファイルで .php ファイルが適切に処理されるよう設定された上で、Apacheと同様に info.php を作成して確認します。

設定に問題がある場合は、500エラーやダウンロード画面が表示されることがあります。その場合は、Nginx設定ファイルの fastcgi_passinclude fastcgi-php.conf; などの記述を見直す必要があります。

5. よく使用されるPHPモジュールのインストール

PHP本体だけでは、すべての機能が使えるわけではありません。多くの機能は「モジュール(拡張機能)」として提供されており、必要に応じて個別にインストールする必要があります。ここでは、実際の開発や運用でよく使用される主要なPHPモジュールについて紹介します。

PHPモジュールとは?

PHPモジュール(または拡張モジュール)は、データベース接続、マルチバイト文字処理、画像処理、XML処理など、特定の機能を追加するための拡張です。

モジュールはAPTパッケージとして提供されており、以下のようにインストールします。

sudo apt install php-モジュール名

バージョン指定をしたい場合は、たとえば php8.2-mbstring のように指定します。

主要なPHPモジュールとその用途

php-mbstring(マルチバイト文字対応)

日本語などのマルチバイト文字列を扱う際に必要なモジュールです。日本語サイトやメール処理などでほぼ必須です。

sudo apt install php-mbstring

php-mysql(MySQL/MariaDBとの接続)

MySQLやMariaDBなどのデータベースと連携する場合に必要です。WordPressなど、データベースを利用するアプリケーションでは必須。

sudo apt install php-mysql

php-gd(画像処理)

画像の生成・変換・リサイズなどを行うためのモジュールで、キャプチャ画像の作成やサムネイル生成などに利用されます。

sudo apt install php-gd

php-xml(XML処理)

RSSフィードやSOAPなど、XMLベースのデータを扱う際に必要です。CMSやAPI連携などで利用されます。

sudo apt install php-xml

php-curl(HTTP通信)

外部APIとの連携など、サーバーからHTTPリクエストを送信する際に利用されます。近年は多くのフレームワークで前提として組み込まれています。

sudo apt install php-curl

php-zip(圧縮ファイルの操作)

ZIPファイルの圧縮・解凍などを扱うモジュールで、ファイルアップロード機能などと組み合わせて使用されます。

sudo apt install php-zip

モジュールの有効化と再起動

モジュールの中には、インストール後に明示的な有効化が必要なものもあります。その場合は次のように phpenmod を使って有効化します。

sudo phpenmod モジュール名
sudo systemctl restart apache2

有効化されたモジュールは、Webサーバーを再起動することで反映されます。

6. PHPのバージョン管理と切り替え

Ubuntu環境では、1台のサーバーに複数のPHPバージョンをインストールして使い分けることが可能です。特に開発環境や複数のWebアプリをホストしているサーバーでは、異なるPHPバージョンの切り替えが必要になる場面があります。

ここでは、CLI(コマンドライン)での切り替え方法と、ApacheにおけるPHPバージョンの指定方法を解説します。

CLIでのPHPバージョン切り替え

利用するコマンド:update-alternatives

Ubuntuでは、update-alternatives コマンドを使って、CLI上で使用するPHPのバージョンを簡単に切り替えることができます。

ステップ1:インストールされているPHPのバージョンを確認

ls /usr/bin/php*

ステップ2:update-alternativesにPHPバージョンを登録(初回のみ)

sudo update-alternatives --install /usr/bin/php php /usr/bin/php7.4 74
sudo update-alternatives --install /usr/bin/php php /usr/bin/php8.2 82

ステップ3:使用するバージョンを選択

sudo update-alternatives --config php

このコマンドを実行すると、以下のような選択画面が表示されます:

There are 2 choices for the alternative php (providing /usr/bin/php).

  Selection    Path             Priority   Status
------------------------------------------------------------
* 0            /usr/bin/php8.2   82        auto mode
  1            /usr/bin/php7.4   74        manual mode
  2            /usr/bin/php8.2   82        manual mode

Press <enter> to keep the current choice[*], or type selection number:

希望のバージョンの番号を入力することで切り替えが反映されます。

ステップ4:バージョン確認

php -v

ApacheでのPHPバージョン切り替え

Apacheを利用している場合、バージョンごとのモジュールが用意されており、モジュールの有効/無効を切り替えることでバージョンを指定できます。

1. モジュールを確認する

ls /etc/apache2/mods-available | grep php

2. 現在有効になっているモジュールを無効化

sudo a2dismod php7.4

3. 新しく使いたいバージョンを有効化

sudo a2enmod php8.2

4. Apacheを再起動して反映

sudo systemctl restart apache2

これにより、CLIだけでなくApache経由でのPHP実行にも希望するバージョンが反映されます。

7. ApacheやNginxとの連携設定

PHPは単体で動作するだけでなく、Webサーバーと連携して初めて本格的なWebアプリケーションを構築できます。Ubuntuでは主に Apache または Nginx が使用されるため、ここでは両方のWebサーバーにおけるPHPとの連携方法を解説します。

Apacheとの連携設定(mod_php)

Apacheでは、mod_php モジュールを使うことでPHPスクリプトを直接処理できます。この方法は設定が簡単で、WordPressなどのCMSをすぐに動かしたい場合に適しています。

ステップ1:Apacheとmod_phpをインストール

sudo apt install -y apache2 libapache2-mod-php

libapache2-mod-php パッケージをインストールすることで、ApacheがPHPファイルを処理できるようになります。

ステップ2:Apacheの再起動

sudo systemctl restart apache2

ステップ3:PHPファイルのテスト

Apacheの公開ディレクトリ(通常は /var/www/html)に test.php という名前で以下のようなファイルを作成し、ブラウザで動作を確認します。

<?php
phpinfo();
?>

アクセス先例:

http://localhost/test.php

Nginxとの連携設定(PHP-FPM)

Nginxは軽量で高速なWebサーバーですが、PHPを直接処理する機能はありません。そのため、PHP-FPM(FastCGI Process Manager) を介してPHPと連携します。

ステップ1:NginxとPHP-FPMのインストール

sudo apt install -y nginx php-fpm

ステップ2:Nginxの設定ファイルを編集

通常は /etc/nginx/sites-available/default を編集します。

sudo nano /etc/nginx/sites-available/default

以下のような設定ブロックを追加または修正します:

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

ステップ3:Nginxの再起動

sudo systemctl restart nginx

ステップ4:PHPファイルで動作確認

Apacheと同様に、/var/www/html/test.php を作成し、ブラウザからアクセスしてPHP情報が表示されることを確認します。

補足:ファイアウォールの設定(必要に応じて)

UFW(Uncomplicated Firewall)を利用している場合、以下のコマンドでWebサーバーへのアクセスを許可する必要があります。

sudo ufw allow 'Apache Full'
# または
sudo ufw allow 'Nginx Full'

Apacheは手軽さ、Nginxはパフォーマンスに強みがあります。それぞれの用途に応じて選び、PHPと正しく連携させましょう。

8. トラブルシューティング

PHPをUbuntuにインストールしてWebサーバーと連携しても、設定ミスや環境依存によって正常に動作しないケースがあります。このセクションでは、実際によくあるトラブルとその原因、解決方法を紹介します。

PHPが正しく動作しない(ブラウザでソースコードが表示される)

原因

ApacheやNginxがPHPを処理せず、単にファイルとして出力している場合に起こります。これはPHPモジュールやFastCGI設定が正しく適用されていないことが原因です。

解決策

  • Apacheの場合:
    libapache2-mod-php がインストールされ、有効化されているか確認し、Apacheを再起動します。
  sudo apt install libapache2-mod-php
  sudo systemctl restart apache2
  • Nginxの場合:
    php-fpm がインストールされており、Nginxの設定で fastcgi_pass が正しいソケットまたはポートに向いているか確認してください。
  sudo systemctl restart php8.2-fpm
  sudo systemctl restart nginx

PHPの特定機能が使えない(関数が未定義)

原因

必要なPHPモジュールがインストールされていない、または有効化されていない可能性があります。

解決策

  • 該当機能に必要なモジュール(例:mbstringxmlcurl)をインストールします。
  sudo apt install php-mbstring php-xml php-curl
  • モジュールの有効化後はWebサーバーを再起動します。
  sudo systemctl restart apache2  # または nginx
  • 有効化されているモジュール一覧の確認:
  php -m

PHPのエラーが画面に出ない

原因

デフォルトでは、PHPのエラーメッセージ出力がオフになっていることがあります。

解決策

php.ini を編集し、エラー表示設定を変更します。

sudo nano /etc/php/8.2/apache2/php.ini

以下の項目を探して変更:

display_errors = On
error_reporting = E_ALL

その後、Webサーバーを再起動してください。

sudo systemctl restart apache2

エラーログの確認方法

Apacheの場合:

/var/log/apache2/error.log

Nginxの場合:

/var/log/nginx/error.log

PHP-FPMのログ(Nginx連携時):

/var/log/php8.2-fpm.log

これらのログを確認することで、原因の特定に役立ちます。

sudo tail -f /var/log/apache2/error.log

エラーが発生した場合、焦らずにログの確認 → 設定の見直し → サーバーの再起動を基本ステップとして対応するのがポイントです。

9. まとめ

本記事では、「UbuntuにPHPをインストールする方法」をテーマに、基本から応用までを順を追って解説してきました。ここで、記事全体のポイントを整理しつつ、次に進むべきステップについてもご紹介します。

本記事の要点まとめ

  • Ubuntuのバージョン確認と準備
    PHPを正しくインストールするためには、OSのバージョン確認やパッケージのアップデートが重要。
  • PHPのインストール方法は2通り
    標準リポジトリから手軽にインストールする方法と、PPAを使って任意のバージョンを導入する方法がある。
  • インストール後の動作確認
    php -vphpinfo() でCLI・Web両方の動作確認が可能。
  • モジュールの活用で機能を拡張
    php-mbstringphp-mysql など、よく使うモジュールを必要に応じて導入。
  • 複数バージョンの切り替えにも対応
    update-alternatives や Apacheのモジュール切り替えで柔軟に対応可能。
  • Apache/Nginxとの連携も重要
    使用するWebサーバーに応じた適切な設定が、安定動作の鍵となる。
  • トラブル時はログを確認
    「PHPが表示されない」「機能が動かない」といった問題には、エラーログの確認が有効。

次に学ぶステップ

UbuntuにPHPをインストールできたら、さらに一歩進んで次のような技術を学ぶことをおすすめします。

  • MySQL(MariaDB)の導入とデータベース接続
  • WordPressのインストールと構築
  • LaravelなどのPHPフレームワーク導入
  • HTTPS対応(Let’s Encryptを使用したSSL証明書の設定)
  • 自動起動・再起動管理(systemdの活用)

これらを組み合わせることで、より高度なWebサービスやアプリケーションの開発が可能になります。

UbuntuとPHPは、オープンソースの力で堅牢かつ柔軟な開発環境を提供してくれます。本記事を足がかりに、ぜひさまざまな実践へとステップアップしてみてください。

10. よくある質問(FAQ)

UbuntuでPHPをインストール・設定していく中で、多くの人がつまずきやすい点や、よく検索される疑問をまとめました。初心者の方でも理解しやすいように、シンプルかつ実用的な回答を意識しています。

Q1. UbuntuでPHPの最新バージョンをインストールするにはどうすればいいですか?

A1.
Ubuntuの標準リポジトリでは、必ずしも最新のPHPバージョンが提供されているわけではありません。
より新しいバージョンを使いたい場合は、ondrej/php という信頼性の高いPPAを追加してから、特定バージョンを指定してインストールします。

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2

Q2. インストールしたPHPのバージョンをCLI上で切り替える方法は?

A2.
複数バージョンがインストールされている場合、update-alternatives を使ってバージョンを切り替えることができます。

sudo update-alternatives --config php

表示される選択肢の中から、使いたいバージョンの番号を入力することで変更できます。

Q3. ApacheでPHPが動かず、PHPファイルを開くと中身が表示されてしまいます。

A3.
これはApacheがPHPを処理しておらず、単なるテキストファイルとして出力している状態です。以下のように libapache2-mod-php モジュールが有効になっているか確認し、再起動してください。

sudo apt install libapache2-mod-php
sudo systemctl restart apache2

Q4. PHPの設定ファイル(php.ini)はどこにありますか?

A4.
CLI用とWebサーバー用で異なります。よく使われるパスは以下の通りです。

  • Apache用:/etc/php/8.2/apache2/php.ini
  • CLI用:/etc/php/8.2/cli/php.ini

バージョンに応じて「8.2」の部分は変更されます。

Q5. PHPの拡張モジュールを有効化するにはどうすればいいですか?

A5.
インストール後にモジュールを有効化するには、phpenmod コマンドを使います。

sudo phpenmod mbstring
sudo systemctl restart apache2

有効化した後は、Webサーバーの再起動をお忘れなく。

Q6. NginxでPHPがうまく動作しません。設定で注意すべき点は?

A6.
Nginxでは php-fpm を使ってPHPを処理する必要があります。設定ファイルに以下のような fastcgi_pass 記述が正しくされているか確認しましょう。

location ~ \.php$ {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}

バージョンに応じて .sock の部分を調整する必要があります。

Q7. PHPのエラーが画面に表示されません。

A7.
php.inidisplay_errors = Off になっている可能性があります。開発中のみ、以下のように設定を変更してエラーを表示させることができます。

display_errors = On
error_reporting = E_ALL

変更後はWebサーバーの再起動が必要です。

以上が、UbuntuでPHPを使う際によくある質問とその対処法です。これらの知識を持っておくことで、トラブル時にも落ち着いて対応できるようになります。