皆さま、こんにちは
今日は、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();
?>
-------------------
無事に表示されました。
では