Як встановити PHP 8.0 на Ubuntu 24.04|22.04|20.04

Як встановити PHP 8.0 на Ubuntu 24.04|22.04|20.04

 

PHP – популярна скриптова мова для веб-розробки, спочатку створена Расмусом Лердорфом, датсько-канадським програмістом у 1994 році. Створені PHP-скрипти можуть бути виконані на Linux, macOS, Windows та багатьох інших системах Unix за умови встановлення PHP.

У цій статті ми розповімо про встановлення PHP 8.0 на систему Ubuntu Linux.  На нашому веб-сайті є багато інших посібників про те, як встановити та використовувати інші версії PHP на машині Ubuntu Linux.

Офіційний реліз PHP 8 відбудеться 26 листопада 2020 року. Це нова основна версія з багатьма новими функціями та покращеннями продуктивності. Ви також повинні очікувати нових непрацюючих змін, що означає, що можуть знадобитися деякі модифікації у вашому коді, щоб запустити його на PHP 8. Деякі з приємного набору нових функцій, що з’являються з PHP 8, – це компілятор JIT, іменовані аргументи, типи об’єднань, атрибути та багато іншого.

Крок 1: Оновіть систему

Оновіть усі системні пакети до останнього, виконавши наведені нижче команди.

sudo apt update && sudo apt -y upgrade

Після будь-якого оновлення важливе перезавантаження.

[ -f /var/run/reboot-required ] && sudo reboot -f

Крок 2: Додайте репозиторій Ondřej Surý PPA

Найновіші пакети PHP доступні в репозиторії Ondřej Surý PPA Виконайте команди, наведені нижче, щоб додати цей репозиторій до вашої системи Ubuntu.

sudo apt install lsb-release ca-certificates apt-transport-https software-properties-common -y
sudo add-apt-repository ppa:ondrej/php

Натисніть клавішу Enter, коли з’явиться запит на додавання сховища:

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:
https://deb.sury.org/#bug-reporting

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
https://github.com/oerdnj/deb.sury.org/issues/56 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.

З виводу оновлення ви повинні побачити додані репозиторії:

Hit:1 http://mirror.hetzner.de/ubuntu/packages focal InRelease
Hit:2 http://mirror.hetzner.de/ubuntu/packages focal-updates InRelease
Hit:3 http://mirror.hetzner.de/ubuntu/packages focal-backports InRelease
Hit:4 http://mirror.hetzner.de/ubuntu/packages focal-security InRelease
Get:5 http://ppa.launchpad.net/ondrej/php/ubuntu focal InRelease [23.9 kB]
Hit:6 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:7 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:8 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Hit:9 http://archive.ubuntu.com/ubuntu focal-backports InRelease
Get:10 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main amd64 Packages [74.8 kB]
Get:11 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main i386 Packages [20.2 kB]
Get:12 http://ppa.launchpad.net/ondrej/php/ubuntu focal/main Translation-en [28.2 kB]
Fetched 147 kB in 1s (158 kB/s)
Reading package lists... Done

Крок 3: Встановіть PHP 8.0 на Ubuntu

Оновіть індекс APT, щоб переконатися, що він підходить для встановлення пакетів:

sudo apt update

Потім встановіть PHP 8.0 на машину Ubuntu Linux:

sudo apt install php8.0

Натисніть клавішу y, щоб розпочати встановлення:

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
  apache2-bin libapache2-mod-php8.0 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libgdbm-compat4 libjansson4 liblua5.2-0 libmagic-mgc libmagic1
  libperl5.30 perl perl-modules-5.30 php-common php8.0-cli php8.0-common php8.0-opcache php8.0-readline
Suggested packages:
  apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser php-pear file perl-doc libterm-readline-gnu-perl | libterm-readline-perl-perl make
  libb-debug-perl liblocale-codes-perl
Recommended packages:
  apache2
The following NEW packages will be installed:
  apache2-bin libapache2-mod-php8.0 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap libgdbm-compat4 libjansson4 liblua5.2-0 libmagic-mgc libmagic1
  libperl5.30 perl perl-modules-5.30 php-common php8.0 php8.0-cli php8.0-common php8.0-opcache php8.0-readline
0 upgraded, 20 newly installed, 0 to remove and 7 not upgraded.
Need to get 13.0 MB of archives.
After this operation, 78.4 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

Підтвердіть версію PHP за замовчуванням на сервері:

$ php -v
PHP 8.0.30 (cli) (built: Jun  6 2024 16:51:29) ( NTS )
Copyright (c) The PHP Group
Zend Engine v4.0.30, Copyright (c) Zend Technologies
    with Zend OPcache v8.0.30, Copyright (c), by Zend Technologies

Крок 4: Встановіть розширення PHP 8

Щоб встановити розширення PHP 8 на Ubuntu, використовуйте синтаксис команди:

sudo apt install php8.0-<extension>

Нижче наведено деякі доступні розширення:

$ sudo apt install php8.0-
php8.0-amqp       php8.0-common     php8.0-gd         php8.0-ldap       php8.0-odbc       php8.0-readline   php8.0-sqlite3    php8.0-xsl
php8.0-apcu       php8.0-curl       php8.0-gmp        php8.0-mailparse  php8.0-opcache    php8.0-redis      php8.0-sybase     php8.0-yac
php8.0-ast        php8.0-dba        php8.0-igbinary   php8.0-mbstring   php8.0-pgsql      php8.0-rrd        php8.0-tidy       php8.0-yaml
php8.0-bcmath     php8.0-dev        php8.0-imagick    php8.0-memcached  php8.0-phpdbg     php8.0-smbclient  php8.0-uuid       php8.0-zip
php8.0-bz2        php8.0-ds         php8.0-imap       php8.0-msgpack    php8.0-pspell     php8.0-snmp       php8.0-xdebug     php8.0-zmq
php8.0-cgi        php8.0-enchant    php8.0-interbase  php8.0-mysql      php8.0-psr        php8.0-soap       php8.0-xhprof
php8.0-cli        php8.0-fpm        php8.0-intl       php8.0-oauth      php8.0-raphf      php8.0-solr       php8.0-xml

Приклад інсталяції:

sudo apt install php8.0-{cli,common,imap,redis,snmp,xml,zip,mbstring}

Якщо ви хочете перерахувати всі завантажені модулі PHP 8.0, використовуйте команду:

$ php -m

Якщо ви використовуєте PHP з веб-браузером Nginx, переконайтеся, що служба php-fpm запущена та працює:

$ systemctl status php*-fpm.service
 php8.0-fpm.service - The PHP 8.0 FastCGI Process Manager
     Loaded: loaded (/lib/systemd/system/php8.0-fpm.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2021-11-11 11:42:07 EAT; 35s ago
       Docs: man:php-fpm8.0(8)
    Process: 192780 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.0/fpm/pool.d/www.conf 80 (code=exited, status=0/SUCCESS)
   Main PID: 192777 (php-fpm8.0)
     Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"
      Tasks: 3 (limit: 9482)
     Memory: 10.3M
        CPU: 79ms
     CGroup: /system.slice/php8.0-fpm.service
             ├─192777 php-fpm: master process (/etc/php/8.0/fpm/php-fpm.conf)
             ├─192778 php-fpm: pool www
             └─192779 php-fpm: pool www

Nov 11 11:42:07 ubuntu22 systemd[1]: Starting The PHP 8.0 FastCGI Process Manager...
Nov 11 11:42:07 ubuntu22 php-fpm8.0[192777]: [11-Nov-2021 11:42:07] NOTICE: PHP message: PHP Warning:  PHP Startup: Unable to load dynamic library 'redis.so' (tried: /usr/lib/php/20200930/redis.so>
Nov 11 11:42:07 ubuntu22 php-fpm8.0[192777]: Created directory: /var/lib/snmp/cert_indexes
Nov 11 11:42:07 ubuntu22 systemd[1]: Started The PHP 8.0 FastCGI Process Manager.

Той самий формат використовується для встановлення інших розширень.

Посилання:

Прокрутка до верху