Ubuntu 20.04 LTSにPHPをインストールする方法

Windows Subsystem for Linuxとして利用中のUbuntu 20.04 LTSの初期インストールパッケージにはPHPが含まれていなかったので、PHPをインストールすることにした。

nobu@yukio-pc:~$ php -v

Command 'php' not found, but can be installed with:

sudo apt install php7.4-cli

このようにPHPバージョンを確認するコマンドphp -v」を実行すると、

Command 'php' not found (コマンド『php』は見つかりません)

というエラーメッセージが表示されることからも明らかなように、Ubuntu 20.04 LTSの初期インストール直後ではPHPがインストールされていない。

面白いのは「コマンド『php』は見つかりません」というメッセージでは終わらず、次のメッセージが続いていることだ。

but can be installed with:(しかし、次のコマンドを実行することでインストールできます)
sudo apt install php7.4-cli

このエラーメッセージはとても分かりやすくて親切だ。
エラーメッセージを見るだけで、PHPをどうやってインストールするかが分かる。

Ubuntu 20.04 LTSにPHPをインストールする方法は簡単だ。
このUbuntuのエラーメッセージで示されたインストールコマンドを実行すればよい。

以下は、上述の「php -v」コマンド及び「sudo apt install php7.4-cli」コマンドの実行結果となる。

Ubuntu 20.04 LTSでapt installコマンドでPHPをインストールした画面
Ubuntu 20.04 LTSでapt installコマンドでPHPをインストールした画面。

nobu@yukio-pc:~$ sudo apt install php7.4-cli

[sudo] password for nobu:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
php-common php7.4-common php7.4-json php7.4-opcache php7.4-readline
Suggested packages:
php-pear
The following NEW packages will be installed:
php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
0 upgraded, 6 newly installed, 0 to remove and 0 not upgraded.
Need to get 2642 kB of archives.
After this operation, 13.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu focal/main amd64 php-common all 2:75 [11.9 kB]
Ign:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-common amd64 7.4.3-4ubuntu2.2
Ign:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-json amd64 7.4.3-4ubuntu2.2
Ign:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-opcache amd64 7.4.3-4ubuntu2.2
Ign:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-readline amd64 7.4.3-4ubuntu2.2
Ign:6 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-cli amd64 7.4.3-4ubuntu2.2
Err:2 http://security.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-common amd64 7.4.3-4ubuntu2.2
404 Not Found [IP: 2001:67c:1360:8001::24 80]
Err:3 http://security.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-json amd64 7.4.3-4ubuntu2.2
404 Not Found [IP: 2001:67c:1360:8001::24 80]
Err:4 http://security.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-opcache amd64 7.4.3-4ubuntu2.2
404 Not Found [IP: 2001:67c:1360:8001::24 80]
Err:5 http://security.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-readline amd64 7.4.3-4ubuntu2.2
404 Not Found [IP: 2001:67c:1360:8001::24 80]
Err:6 http://security.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-cli amd64 7.4.3-4ubuntu2.2
404 Not Found [IP: 2001:67c:1360:8001::24 80]
Fetched 11.9 kB in 4s (2692 B/s)
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-common_7.4.3-4ubuntu2.2_amd64.deb 404 Not Found [IP: 2001:67c:1360:8001::24 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-json_7.4.3-4ubuntu2.2_amd64.deb 404 Not Found [IP: 2001:67c:1360:8001::24 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-opcache_7.4.3-4ubuntu2.2_amd64.deb 404 Not Found [IP: 2001:67c:1360:8001::24 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-readline_7.4.3-4ubuntu2.2_amd64.deb 404 Not Found [IP: 2001:67c:1360:8001::24 80]
E: Failed to fetch http://security.ubuntu.com/ubuntu/pool/main/p/php7.4/php7.4-cli_7.4.3-4ubuntu2.2_amd64.deb 404 Not Found [IP: 2001:67c:1360:8001::24 80]
E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?

順調にPHPをインストールできたように見えていたけれど、よく見たらPHPのインストールに失敗してしまったことが分かる。

PHPのインストール失敗の原因は、「404 Not Found」というメッセージが出ていることから考えると、PHPパッケージをダウンロードするサイトに、PHPパッケージが設置されていなかった、ということであろう。ダウンロード用ファイルの掲載場所、掲載サイトが変わったのであろう。となれば、PHPの新しいダウンロードサイトに接続できれば、PHPのインストールが完了できるであろうと予測がつく。

ひとまずは最後のメッセージで示されたヒントに従い、コマンド「apt-get update」を実行してみる。

Ubuntu 20.04 LTSでPHPのインストール失敗後にapt-get updateコマンドを実行した画面
Ubuntu 20.04 LTSでPHPのインストール失敗後にapt-get updateコマンドを実行した画面。

nobu@yukio-pc:~$ sudo apt-get update

[sudo] password for nobu:
Get:1 http://security.ubuntu.com/ubuntu focal-security InRelease [109 kB]
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Get:3 http://archive.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages [440 kB]
Get:6 http://archive.ubuntu.com/ubuntu focal/universe amd64 Packages [8628 kB]
Get:7 http://security.ubuntu.com/ubuntu focal-security/main Translation-en [97.9 kB]
Get:8 http://security.ubuntu.com/ubuntu focal-security/main amd64 c-n-f Metadata [5748 B]
Get:9 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 Packages [107 kB]
Get:10 http://security.ubuntu.com/ubuntu focal-security/restricted Translation-en [15.9 kB]
Get:11 http://security.ubuntu.com/ubuntu focal-security/restricted amd64 c-n-f Metadata [376 B]
Get:12 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Packages [525 kB]
Get:13 http://security.ubuntu.com/ubuntu focal-security/universe Translation-en [70.9 kB]
Get:14 http://security.ubuntu.com/ubuntu focal-security/universe amd64 c-n-f Metadata [9540 B]
Get:15 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 Packages [832 B]
Get:16 http://security.ubuntu.com/ubuntu focal-security/multiverse Translation-en [288 B]
Get:17 http://security.ubuntu.com/ubuntu focal-security/multiverse amd64 c-n-f Metadata [116 B]
Get:18 http://archive.ubuntu.com/ubuntu focal/universe Translation-en [5124 kB]
Get:19 http://archive.ubuntu.com/ubuntu focal/universe amd64 c-n-f Metadata [265 kB]
Get:20 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 Packages [144 kB]
Get:21 http://archive.ubuntu.com/ubuntu focal/multiverse Translation-en [104 kB]
Get:22 http://archive.ubuntu.com/ubuntu focal/multiverse amd64 c-n-f Metadata [9136 B]
Get:23 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages [760 kB]
Get:24 http://archive.ubuntu.com/ubuntu focal-updates/main Translation-en [186 kB]
Get:25 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 c-n-f Metadata [11.5 kB]
Get:26 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 Packages [130 kB]
Get:27 http://archive.ubuntu.com/ubuntu focal-updates/restricted Translation-en [18.9 kB]
Get:28 http://archive.ubuntu.com/ubuntu focal-updates/restricted amd64 c-n-f Metadata [400 B]
Get:29 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Packages [724 kB]
Get:30 http://archive.ubuntu.com/ubuntu focal-updates/universe Translation-en [146 kB]
Get:31 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 c-n-f Metadata [15.1 kB]
Get:32 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 Packages [15.4 kB]
Get:33 http://archive.ubuntu.com/ubuntu focal-updates/multiverse Translation-en [4160 B]
Get:34 http://archive.ubuntu.com/ubuntu focal-updates/multiverse amd64 c-n-f Metadata [508 B]
Get:35 http://archive.ubuntu.com/ubuntu focal-backports/main amd64 c-n-f Metadata [112 B]
Get:36 http://archive.ubuntu.com/ubuntu focal-backports/restricted amd64 c-n-f Metadata [116 B]
Get:37 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 Packages [4032 B]
Get:38 http://archive.ubuntu.com/ubuntu focal-backports/universe Translation-en [1448 B]
Get:39 http://archive.ubuntu.com/ubuntu focal-backports/universe amd64 c-n-f Metadata [224 B]
Get:40 http://archive.ubuntu.com/ubuntu focal-backports/multiverse amd64 c-n-f Metadata [116 B]
Fetched 17.9 MB in 1min 9s (258 kB/s)
Reading package lists... Done

apt-get updateに成功したようなので、PHPを再インストールしてみることにする。

Ubuntu 20.04 LTSでapt installコマンドでPHPをインストール中の画面
Ubuntu 20.04 LTSでapt installコマンドでPHPをインストール中の画面。

nobu@yukio-pc:~$ sudo apt install php7.4-cli

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
php-common php7.4-common php7.4-json php7.4-opcache php7.4-readline
Suggested packages:
php-pear
The following NEW packages will be installed:
php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
0 upgraded, 6 newly installed, 0 to remove and 156 not upgraded.
Need to get 2631 kB/2643 kB of archives.
After this operation, 13.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-common amd64 7.4.3-4ubuntu2.4 [979 kB]
Get:2 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-json amd64 7.4.3-4ubuntu2.4 [19.2 kB]
Get:3 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-opcache amd64 7.4.3-4ubuntu2.4 [198 kB]
Get:4 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-readline amd64 7.4.3-4ubuntu2.4 [12.6 kB]
Get:5 http://archive.ubuntu.com/ubuntu focal-updates/main amd64 php7.4-cli amd64 7.4.3-4ubuntu2.4 [1422 kB]
Fetched 2631 kB in 11s (231 kB/s)
Selecting previously unselected package php-common.
(Reading database ... 31857 files and directories currently installed.)
Preparing to unpack .../0-php-common_2%3a75_all.deb ...
Unpacking php-common (2:75) ...
Selecting previously unselected package php7.4-common.
Preparing to unpack .../1-php7.4-common_7.4.3-4ubuntu2.4_amd64.deb ...
Unpacking php7.4-common (7.4.3-4ubuntu2.4) ...
Selecting previously unselected package php7.4-json.
Preparing to unpack .../2-php7.4-json_7.4.3-4ubuntu2.4_amd64.deb ...
Unpacking php7.4-json (7.4.3-4ubuntu2.4) ...
Selecting previously unselected package php7.4-opcache.
Preparing to unpack .../3-php7.4-opcache_7.4.3-4ubuntu2.4_amd64.deb ...
Unpacking php7.4-opcache (7.4.3-4ubuntu2.4) ...
Selecting previously unselected package php7.4-readline.
Preparing to unpack .../4-php7.4-readline_7.4.3-4ubuntu2.4_amd64.deb ...
Unpacking php7.4-readline (7.4.3-4ubuntu2.4) ...
Selecting previously unselected package php7.4-cli.
Preparing to unpack .../5-php7.4-cli_7.4.3-4ubuntu2.4_amd64.deb ...
Unpacking php7.4-cli (7.4.3-4ubuntu2.4) ...
Setting up php-common (2:75) ...
Created symlink /etc/systemd/system/timers.target.wants/phpsessionclean.timer → /lib/systemd/system/phpsessionclean.timer.
Setting up php7.4-common (7.4.3-4ubuntu2.4) ...

Creating config file /etc/php/7.4/mods-available/calendar.ini with new version

Creating config file /etc/php/7.4/mods-available/ctype.ini with new version

Creating config file /etc/php/7.4/mods-available/exif.ini with new version

Creating config file /etc/php/7.4/mods-available/fileinfo.ini with new version

Ubuntu 20.04 LTSでapt installコマンドでPHPをインストールし終わった画面
Ubuntu 20.04 LTSでapt installコマンドでPHPをインストールし終わった画面。

Creating config file /etc/php/7.4/mods-available/ffi.ini with new version

Creating config file /etc/php/7.4/mods-available/ftp.ini with new version

Creating config file /etc/php/7.4/mods-available/gettext.ini with new version

Creating config file /etc/php/7.4/mods-available/iconv.ini with new version

Creating config file /etc/php/7.4/mods-available/pdo.ini with new version

Creating config file /etc/php/7.4/mods-available/phar.ini with new version

Creating config file /etc/php/7.4/mods-available/posix.ini with new version

Creating config file /etc/php/7.4/mods-available/shmop.ini with new version

Creating config file /etc/php/7.4/mods-available/sockets.ini with new version

Creating config file /etc/php/7.4/mods-available/sysvmsg.ini with new version

Creating config file /etc/php/7.4/mods-available/sysvsem.ini with new version

Creating config file /etc/php/7.4/mods-available/sysvshm.ini with new version

Creating config file /etc/php/7.4/mods-available/tokenizer.ini with new version
Setting up php7.4-readline (7.4.3-4ubuntu2.4) ...

Creating config file /etc/php/7.4/mods-available/readline.ini with new version
Setting up php7.4-opcache (7.4.3-4ubuntu2.4) ...

Creating config file /etc/php/7.4/mods-available/opcache.ini with new version
Setting up php7.4-json (7.4.3-4ubuntu2.4) ...

Creating config file /etc/php/7.4/mods-available/json.ini with new version
Setting up php7.4-cli (7.4.3-4ubuntu2.4) ...
update-alternatives: using /usr/bin/php7.4 to provide /usr/bin/php (php) in auto mode
update-alternatives: using /usr/bin/phar7.4 to provide /usr/bin/phar (phar) in auto mode
update-alternatives: using /usr/bin/phar.phar7.4 to provide /usr/bin/phar.phar (phar.phar) in auto mode

Creating config file /etc/php/7.4/cli/php.ini with new version
Processing triggers for man-db (2.9.1-1) ...
Processing triggers for php7.4-cli (7.4.3-4ubuntu2.4) ...

PHPの再インストールに成功したので、PHPバージョンを確認するためのコマンドphp -v)コマンドを実行してみる。

Ubuntu 20.04 LTSでphp -vを実行した画面
Ubuntu 20.04 LTSでphp -vを実行した画面。

nobu@yukio-pc:~$ php -v

PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

php -vコマンドも無事に実行できた。
Ubuntu 20.04 LTSでのPHPパッケージのバージョンは7.4.3のようだ。

本日の作業で最初にPHPのインストールに失敗したことを考えると、Ubuntu 20.04 LTSにPHPをインストールする方法としては、以下の順番でコマンドを実行するとよいと思った。

1.パッケージリストの最新化(パッケージ一覧、パッケージダウンロード元の最新化)
(コマンド)apt-get update

2.PHPのインストール
(コマンド)sudo apt install php7.4-cli

前へ

Ubuntu 20.04 LTSにインストールされているパッケージ一覧の確認方法

次へ

たこやき さくらの1人前のたこ焼きを食べた感想