Ubuntu 20.04にPHP8.0をaptコマンドでインストール

Ubuntu 20.04にPHP8.0をaptコマンドでインストール サーバー

「sudo apt-get install php8.0」

通常、Ubuntu 20.04 LTSで上記コマンドは動きません。
工夫しなければ、Ubuntu 20.04にはaptでPHP 8.0をインストールできないのです。

逆に言うと、工夫すればインストールできます。
この記事では、その工夫について解説しています。

そして、実際にUbuntu 20.04にaptでPHP 8.0をインストールしていきます。

本記事の内容

  • OS標準のPHP
  • aptコマンドによるPHP 8.0のインストール
  • インストールしたPHP 8.0の動作確認

それでは、上記に沿って解説していきます。

OS標準のPHP

UbuntuやDebianには、公式のリポジトリが存在しています。
aptコマンドで簡単にインストールできるのは、その公式リポジトリがあるからです。

その公式リポジトリには、PHPが登録されています。
そりゃ、みんな大好きPHPですからね。

ただ、その公式リポジトリはバージョンが固定されています。
OS標準のPHPには、それぞれバージョンがあるということです。

その対応関係は、以下。
LTS版だけを対象としています。

OSPHP
Ubuntu 14.045.5
Ubuntu 16.047.0
Ubuntu 18.047.2
Ubuntu 20.047.4

これを見る限り、PHP 8.0はOS標準としては未対応です。
したがって、そのままではaptコマンドでPHP 8.0をインストールすることはできません。

「そのままでは」と表現していることに注目してください。
工夫すれば、aptコマンドでもインストールできるようになるのです。

なお、今回は次のOSにPHP 8.0をインストールします。

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.1 LTS"

以上、OS標準のPHPについて説明しました。
次は、その工夫について確認していきます。

aptコマンドによるPHP 8.0のインストール

まずは、本当にPHP 8.0がパッケージとして利用不可なのか確認しましょう。

$ sudo apt show php8.0
N: パッケージ php8.0 が見つかりません
N: 'php8.0' に一致するパッケージは見つかりませんでした
N: パッケージ php8.0 が見つかりません
N: 'php8.0' に一致するパッケージは見つかりませんでした
E: パッケージが見つかりません

確かに、存在していないようです。
もちろん、aptコマンドでインストールなんてできませんね。

では、肝心の工夫をしていきましょう。

aptコマンドによるPHP 8.0のインストールには、工夫が必要でした。
その工夫とは、Ubuntu公式ではない別のリポジトリを利用するということです。

そして、別のリポジトリを利用するという処理は以下となります。

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

上記を実行すると、次のように表示されます。

Co-installable PHP versions: PHP 5.6, PHP 7.x and most requested extensions are included. Only Supported Versions of PHP (http://php.net/supported-versions.php) for Supported Ubuntu Releases (https://wiki.ubuntu.com/Releases) are provided. Don't ask for end-of-life PHP versions or Ubuntu release, they won't be provided.

Debian oldstable and stable packages are provided as well: https://deb.sury.org/#debian-dpa

You can get more information about the packages at https://deb.sury.org

IMPORTANT: The <foo>-backports is now required on older Ubuntu releases.

BUGS&amp;FEATURES: This PPA now has a issue tracker:
DEB.SURY.ORG
Debian and Ubuntu packaging
CAVEATS: 1. If you are using php-gearman, you need to add ppa:ondrej/pkg-gearman 2. If you are using apache2, you are advised to add ppa:ondrej/apache2 3. If you are using nginx, you are advised to add ppa:ondrej/nginx-mainline or ppa:ondrej/nginx PLEASE READ: If you like my work and want to give me a little motivation, please consider donating regularly: https://donate.sury.org/ WARNING: add-apt-repository is broken with non-UTF-8 locales, see
Unable to add PPA Key · Issue #56 · oerdnj/deb.sury.org
Hey, Trying to add the PPA key but it seems to always fail due to the your name in the PPA Key. gpg: requesting key E5267A6C from hkp server keyserver.ubuntu.co...
for workaround: # LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php More info: https://launchpad.net/~ondrej/+archive/ubuntu/php Press [ENTER] to continue or Ctrl-c to cancel adding it.

「ppa:ondrej/php」に関する説明です。
「Enter」を押して、処理を進めます。

ヒット:1 http://repo.mysql.com/apt/ubuntu focal InRelease
取得:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
ヒット:3 http://archive.ubuntu.com/ubuntu focal InRelease
取得:4 http://ppa.launchpad.net/ondrej/php/ubuntu focal InRelease [23.9 kB]
取得:5 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
ヒット:6 http://ppa.launchpad.net/redislabs/redis/ubuntu focal InRelease
取得:7 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
取得:8 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages [92.2 kB]
取得:9 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [990 kB]
取得:10 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main Translation-en [31.6 kB]
取得:11 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [778 kB]
2,243 kB を 8秒 で取得しました (274 kB/s)
パッケージリストを読み込んでいます... 完了

aptが管理できるエリア(パッケージリスト)が広がりました。
そこにインストール対象のPHP 8.0が存在しているはずです。
再度、パッケージを確認します。

$ sudo apt show php8.0
Package: php8.0
Version: 8.0.5-2+ubuntu20.04.1+deb.sury.org+1
Priority: optional
Section: php
Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>
Installed-Size: 60.4 kB
Provides: php
Depends: libapache2-mod-php8.0 | php8.0-fpm | php8.0-cgi, php8.0-common
Download-Size: 25.5 kB
APT-Sources: http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages
Description: server-side, HTML-embedded scripting language (metapackage)
This package is a metapackage that, when installed, guarantees that you
have at least one of the four server-side versions of the PHP interpreter
installed. Removing this package won't remove PHP from your system, however
it may remove other packages that depend on this one.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.

N: 追加レコードが 1 件あります。表示するには '-a' スイッチを付けてください。

今度は、PHP 8.0のパッケージを見つけることができました。
では、このパッケージをインストールしていきます。

その前に、パッケージリストの更新は欠かないでおきましょう。

$ sudo apt-get update
$ sudo apt-get install php8.0

上記を実行すると、以下の確認が行われます。

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下の追加パッケージがインストールされます:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php8.0 libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libjansson4 liblua5.2-0 php-common php8.0-cli php8.0-common php8.0-opcache php8.0-readline ssl-cert
提案パッケージ:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser php-pear openssl-blacklist
以下のパッケージが新たにインストールされます:
  apache2 apache2-bin apache2-data apache2-utils libapache2-mod-php8.0 libapr1 libaprutil1 libaprutil1-dbd-sqlite3
  libaprutil1-ldap libjansson4 liblua5.2-0 php-common php8.0 php8.0-cli php8.0-common php8.0-opcache php8.0-readline
  ssl-cert
アップグレード: 0 個、新規インストール: 18 個、削除: 0 個、保留: 132 個。
6,298 kB のアーカイブを取得する必要があります。
この操作後に追加で 28.2 MB のディスク容量が消費されます。
続行しますか? [Y/n]

「Y」を入力して、Enter。
インストールには、少しだけ時間がかかります。

以上、aptコマンドによるPHP 8.0のインストールを説明しました。
最後は、PHP 8.0の動作確認を行います。

インストールしたPHP 8.0の動作確認

動作確認は、次のコマンドで確認できます。

$ php -v
PHP 8.0.5 (cli) (built: May  3 2021 11:30:57) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.5, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.5, Copyright (c), by Zend Technologies

PHP 8.0が、インストールされています。
ただ、これはCLI(Command Line Interface)のPHPのバージョンです。
どうせなら、Apache上で動くPHPのバージョンを確認したいです。

実は、PHPのインストールと同時にApacheも同時にインストールされているのです。
次のコマンドでApacheの起動を確認できます。

$ sudo systemctl status apache2
● apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-06-01 22:47:26 UTC; 4min 39s ago
       Docs: https://httpd.apache.org/docs/2.4/
   Main PID: 9777 (apache2)
      Tasks: 6 (limit: 9514)
     Memory: 11.5M
     CGroup: /system.slice/apache2.service
             ├─9777 /usr/sbin/apache2 -k start
             ├─9780 /usr/sbin/apache2 -k start
             ├─9781 /usr/sbin/apache2 -k start
             ├─9782 /usr/sbin/apache2 -k start
             ├─9783 /usr/sbin/apache2 -k start
             └─9784 /usr/sbin/apache2 -k start


Jun 01 22:47:26 ubuntu-focal systemd[1]: Starting The Apache HTTP Server...
Jun 01 22:47:26 ubuntu-focal apachectl[9757]: AH00558: apache2: Could not reliably determine the server's fully qualifi>
Jun 01 22:47:26 ubuntu-focal systemd[1]: Started The Apache HTTP Server.

インストールされたApacheのバージョンを確認します。

$ apache2ctl -v
Server version: Apache/2.4.41 (Ubuntu)
Server built:   2020-08-12T19:46:17

OS標準のApacheのバージョンです。
確かに、PHPとApacheはセットと言えます

その意味では、aptでここまでやってくれるのは便利です。
ただ、OS標準だと若干Apacheのバージョンが古くなります。

それはそれで解決する方法もあります。
その解決方法は、また別の記事でまとめます。

話が逸れましたが、PHPのバージョンに話を戻しましょう。
ポート80さえ開放していれば、phpinfo()を表示した画面にアクセスできます。

その画面で上記のようにPHPのバージョンを確認することが可能です。
以上、Ubuntu 20.04 LTSにPHP 8.0をインストールする方法を解説しました。

タイトルとURLをコピーしました