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_pass
や include 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モジュールがインストールされていない、または有効化されていない可能性があります。
解決策
- 該当機能に必要なモジュール(例:
mbstring
、xml
、curl
)をインストールします。
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 -v
やphpinfo()
でCLI・Web両方の動作確認が可能。 - モジュールの活用で機能を拡張
php-mbstring
やphp-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.ini
で display_errors = Off
になっている可能性があります。開発中のみ、以下のように設定を変更してエラーを表示させることができます。
display_errors = On
error_reporting = E_ALL
変更後はWebサーバーの再起動が必要です。
以上が、UbuntuでPHPを使う際によくある質問とその対処法です。これらの知識を持っておくことで、トラブル時にも落ち着いて対応できるようになります。