皆さま、こんにちは

 

今日は、PHP8.0を導入します。

 

昨年度にPHP8.1が出て数ヶ月立っておりますが。

PHP8.1はまたの機会にアップグレードすることします。

($と #はプロンプトです)

 

・PHP開発用ユーザを作成します。

(ログインユーザは、testlogin、PHP用ユーザは、testpとします)

ログインユーザからrootユーザへスイッチします。

$ sudo su -

[sudo] password for testlogin:

 

PHP用ユーザを作成します。

# useradd -m testp

 

PHP用ユーザのパワードを設定します。

# passwd testp

 

PHP用ユーザのグループをsudoグループへ追加します。

# usermod -G sudo testp

 

PHP用ユーザのShellをshからbash変更します。

# more /etc/passwd |grep testp

testp:x:1234:1234::/home/testp:/bin/sh

→vipwでtestphのshellを/bin/sh から /bin/bashへ

 

PHP用ユーザでログインします。

PHP8がインストール出来るか確認します。

$ sudo apt show php8.0

N: パッケージ php8.0 が見つかりません

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

N: パッケージ php8.0 が見つかりません

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

E: パッケージが見つかりません

 

UbuntuのPHP8.0は、OndrejPPAリポジトリインストールします。

※このレポジトリは、複数のPHPと拡張機能が含まれています。

 

その前に前提となるモジュールをインストールします。

$ sudo apt install ca-certificates apt-transport-https software-properties-common

 

 ※ca-certificates                    CA証明書

 ※apt-transport-https             aptでHTTPSのレポジトリを利用するときに使用

 ※software-properties-common  レポジトリの前提

 

OndrejPPAリポジトリ追加します。

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

 

PHP8.0が追加されたか確認します。

$ sudo apt show php8.0

Package: php8.0

Version: 8.0.16-1+ubuntu20.04.1+deb.sury.org+1

Priority: optional

Section: php

Maintainer: Debian PHP Maintainers <team+pkg-php@tracker.debian.org>

Installed-Size: 66.6 kB

Provides: php

Depends: libapache2-mod-php8.0 | php8.0-fpm | php8.0-cgi, php8.0-common

Download-Size: 30.7 kB

 

PHP8.0が追加されましたのでPHP8.0をインストールします。

$ sudo apt-get install php8.0

 

PHP8.0で必要なよく使用するモジュールも追加でイントールします。

$ sudo apt-get install php8.0-mbstring

$ sudo apt-get install php8.0-xml

$ sudo apt-get install php8.0-memcached

$ sudo apt-get install php-pear             ※これはバージョンがつかない)

 

PHPが複数はインストールされているか確認します。

$ 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.0   80        auto mode

  1            /usr/bin/php7.4   74        manual mode

  2            /usr/bin/php8.0   80        manual mode

 

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

→既に選択されているのでこのままエンターで抜けます。

 選択されていない場合は番号を入力し切り替えます。

 

次にPHP-FPMをインストールします。

 

PHP-FPMは、

より

「FPM (FastCGI Process Manager) は、PHP における FastCGI 実装です。

(主に)高負荷のサイトで有用な機能が含まれています。」

 

関連モジュールも合わせてインストールします。

$ sudo apt install php8.0-fpm libapache2-mod-fcgid

 

PHPがpreforkモジュール使用するようになっておりますのでfpmへ切替ます。

$ sudo a2enmod proxy_fcgi setenvif

$ sudo a2enconf php8.0-fpm

 

変更を有効にするためにApacheサービスを再起動します。

$ sudo systemctl restart apache2

 

PHP-FPMが動作しているか確認します。

$ sudo systemctl status php8.0-fpm

● php8.0-fpm.service - The PHP 8.0 FastCGI Process Manager

     Loaded: loaded (/lib/systemd/system/php8.0-fpm.service; enabled; vendor pr>

     Active: active (running) since Tue 2022-03-15 10:35:54 JST; 12min ago

       Docs: man:php-fpm8.0(8)

    Process: 93089 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /ru>

   Main PID: 93086 (php-fpm8.0)

     Status: "Processes active: 0, idle: 2, Requests: 1, slow: 0, Traffic: 0req>

      Tasks: 3 (limit: 2305)

     Memory: 8.4M

     CGroup: /system.slice/php8.0-fpm.service

             ├─93086 php-fpm: master process (/etc/php/8.0/fpm/php-fpm.conf)

             ├─93087 php-fpm: pool www

             └─93088 php-fpm: pool www

 

 3月 15 10:35:54 lmf-ta99 systemd[1]: Starting The PHP 8.0 FastCGI Process Mana>

 3月 15 10:35:54 lmf-ta99 systemd[1]: Started The PHP 8.0 FastCGI Process Manag>

 

PHPのバージョンをターミナルより確認します。

$ php -v

PHP 8.0.16 (cli) (built: Feb 21 2022 14:42:00) ( NTS )

Copyright (c) The PHP Group

Zend Engine v4.0.16, Copyright (c) Zend Technologies

    with Zend OPcache v8.0.16, Copyright (c), by Zend Technologies

 

ApacheからPHP8.0が使えるかphpinfoのファイルをおいて

Web画面で確認します。

 

info.php を以下の内容で/var/www/html/へ保存します。

-------------------

<?php

phpinfo();

?>

-------------------

 

 

無事に表示されました。

 

では