「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版だけを対象としています。
OS | PHP |
Ubuntu 14.04 | 5.5 |
Ubuntu 16.04 | 7.0 |
Ubuntu 18.04 | 7.2 |
Ubuntu 20.04 | 7.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&FEATURES: This PPA now has a issue tracker: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, seeDEB.SURY.ORGDebian and Ubuntu packagingfor 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.Unable to add PPA Key · Issue #56 · oerdnj/deb.sury.orgHey, 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...
「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をインストールする方法を解説しました。