- Как установить PHP 8.2 на Ubuntu 22.04 с Nginx или Apache
- Шаг 1: Обновите систему Ubuntu#
- Шаг 2: Добавьте репозиторий Surý PHP APT#
- Шаг 3: Установите PHP 8.2 на Ubuntu 22.04/20.04/18.04#
- Шаг 4: Установите модули PHP 8.2 в Ubuntu#
- Шаг 5: Использование PHP с веб-сервером Nginx/Apache#
- Подведение итогов#
- Установка PHP 7+ в Ubuntu 20.04
- Установка PHP
- Проверка версии PHP
- Установка модулей PHP
Как установить PHP 8.2 на Ubuntu 22.04 с Nginx или Apache
В этой статье мы рассмотрим этапы установки PHP 8.2 на Ubuntu 22.04|20.04|18.04. Версия PHP по умолчанию, доступная в репозиториях ОС, обычно старше последних официальных выпусков PHP. Репозитории программного обеспечения PPA (Personal Package Archive) для PHP позволяют вам устанавливать более новые версии PHP в вашей системе Ubuntu, которые недоступны в официальных репозиториях дистрибутива Linux.
Шаг 1: Обновите систему Ubuntu#
Проверьте наличие обновлений и установите их, прежде чем выполнять какие-либо другие действия.
sudo apt update && sudo apt -y upgrade
Очистите кеш APT после обновления.
Проверьте, требуется ли перезагрузка, и действуйте соответствующим образом.
[ -f /var/run/reboot-required ] && sudo reboot -f
Сведения о выпуске ОС можно проверить с помощью приведенных здесь команд.
$ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.1 LTS" NAME="Ubuntu" VERSION_ID="22.04" VERSION="22.04.1 LTS (Jammy Jellyfish)" VERSION_CODENAME=jammy ID=ubuntu ID_LIKE=debian HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" UBUNTU_CODENAME=jammy
Шаг 2: Добавьте репозиторий Surý PHP APT#
Чтобы установить пакеты PHP 8.2 в Ubuntu, мы будем использовать PHP PPA Ондржея Сури, который предоставляет последние стабильные версии PHP для систем Ubuntu и Debian.
Установите несколько пакетов зависимостей перед добавлением репо.
sudo apt update sudo apt install -y lsb-release gnupg2 ca-certificates apt-transport-https software-properties-common
Выполните следующие команды в своем терминале, чтобы добавить Surý PPA в вашу систему.
sudo add-apt-repository ppa:ondrej/php
Ожидается успешное выполнение команды.
PPA publishes dbgsym, you may need to include 'main/debug' component Repository: 'deb https://ppa.launchpadcontent.net/ondrej/php/ubuntu/ jammy main' Description: 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 -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 Adding repository. Press [ENTER] to continue or Ctrl-c to cancel. Adding deb entry to /etc/apt/sources.list.d/ondrej-ubuntu-php-jammy.list Adding disabled deb-src entry to /etc/apt/sources.list.d/ondrej-ubuntu-php-jammy.list Adding key to /etc/apt/trusted.gpg.d/ondrej-ubuntu-php.gpg with fingerprint 14AA40EC0831756756D7F66C4F4EA0AAE5267A6C Hit:1 https://mirror.hetzner.com/ubuntu/packages jammy InRelease Hit:2 https://mirror.hetzner.com/ubuntu/packages jammy-updates InRelease Hit:3 https://mirror.hetzner.com/ubuntu/packages jammy-backports InRelease Hit:4 https://mirror.hetzner.com/ubuntu/security jammy-security InRelease Get:5 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy InRelease [23.9 kB] Get:6 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main amd64 Packages [108 kB] Get:7 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main Translation-en [33.3 kB] Fetched 166 kB in 1s (120 kB/s) Reading package lists. Done
Вы можете вручную подтвердить, работает ли репозиторий, выполнив команду apt update.
$ sudo apt update Hit:1 https://mirror.hetzner.com/ubuntu/packages jammy InRelease Hit:2 https://mirror.hetzner.com/ubuntu/packages jammy-updates InRelease Hit:3 https://mirror.hetzner.com/ubuntu/packages jammy-backports InRelease Hit:4 https://mirror.hetzner.com/ubuntu/security jammy-security InRelease Hit:5 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy InRelease Reading package lists. Done Building dependency tree. Done Reading state information. Done
Шаг 3: Установите PHP 8.2 на Ubuntu 22.04/20.04/18.04#
После добавления PPA используйте команду apt для установки PHP 8.2 и любых других связанных модулей PHP на сервере Ubuntu.
Примите установку пакета в соответствии с запросом через приглашение.
The following additional packages will be installed: apache2 apache2-bin apache2-data apache2-utils bzip2 file libapache2-mod-php8.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.3-0 mailcap mime-support php-common php8.2-cli php8.2-common php8.2-opcache php8.2-readline ssl-cert Suggested packages: apache2-doc apache2-suexec-pristine | apache2-suexec-custom www-browser bzip2-doc php-pear The following NEW packages will be installed: apache2 apache2-bin apache2-data apache2-utils bzip2 file libapache2-mod-php8.2 libapr1 libaprutil1 libaprutil1-dbd-sqlite3 libaprutil1-ldap liblua5.3-0 mailcap mime-support php-common php8.2 php8.2-cli php8.2-common php8.2-opcache php8.2-readline ssl-cert 0 upgraded, 21 newly installed, 0 to remove and 2 not upgraded. Need to get 6,990 kB of archives. After this operation, 29.8 MB of additional disk space will be used. Do you want to continue? [Y/n] y
Чтобы проверить версию PHP, установленную в настоящее время в системе, выполните следующую команду:
Шаг 4: Установите модули PHP 8.2 в Ubuntu#
Модули PHP — это программные библиотеки, созданные для расширения функциональности PHP. Эти модули обычно написаны на C, и вы можете динамически загружать их в PHP или компилировать как общие объекты.
Если вы хотите установить модули PHP 8.2 в системе Ubuntu, используйте диспетчер пакетов apt с приведенным здесь синтаксисом команды:
В этом примере мы устанавливаем модуль fpm PHP 8.2 из добавленного ранее PPA.
$ sudo apt install php8.2-fpm Reading package lists. Done Building dependency tree. Done Reading state information. Done Suggested packages: php-pear The following NEW packages will be installed: php8.2-fpm 0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded. Need to get 1,886 kB of archives. After this operation, 5,756 kB of additional disk space will be used. Get:1 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy/main amd64 php8.2-fpm amd64 8.2.1-2+ubuntu22.04.1+deb.sury.org+1 [1,886 kB] Fetched 1,886 kB in 0s (5,211 kB/s) Selecting previously unselected package php8.2-fpm. (Reading database . 56412 files and directories currently installed.) Preparing to unpack . /php8.2-fpm_8.2.1-2+ubuntu22.04.1+deb.sury.org+1_amd64.deb . Unpacking php8.2-fpm (8.2.1-2+ubuntu22.04.1+deb.sury.org+1) . Setting up php8.2-fpm (8.2.1-2+ubuntu22.04.1+deb.sury.org+1) . .
Установка часто используемых модулей.
Список установленных модулей можно просмотреть командой:
$ php -m [PHP Modules] bcmath bz2 calendar Core ctype curl date dom exif FFI fileinfo filter ftp gd gettext hash iconv intl json ldap libxml mbstring mysqli mysqlnd openssl pcntl pcre PDO pdo_mysql pdo_pgsql pgsql Phar posix readline Reflection session shmop SimpleXML soap sockets sodium SPL standard sysvmsg sysvsem sysvshm tokenizer xml xmlreader xmlwriter xsl Zend OPcache zip zlib [Zend Modules] Zend OPcache
Шаг 5: Использование PHP с веб-сервером Nginx/Apache#
Мы рассмотрим конфигурации веб-серверов Nginx и Apache для размещения вашего PHP-приложения.
Размещение PHP-приложения на веб-сервере Nginx
В Nginx код PHP обычно выполняется отдельным процессом, например PHP-FPM (FastCGI Process Manager). PHP-FPM — это демон, который прослушивает входящие запросы PHP и запускает их в отдельном процессе. Nginx просто перенаправляет входящие запросы в PHP-FPM, где они выполняются.
Установите веб-сервер Nginx и расширение FPM.
sudo apt install nginx php8.2-fpm
Откройте конфигурацию вашего сервера Nginx и добавьте следующий блок в блок http , чтобы настроить PHP-запросы, которые будут пересылаться для выполнения PHP-FPM:
$ sudo vim /etc/nginx/nginx.conf server < listen 80; server_name mysite.example.com; root /var/www/mysite; index index.php index.html; location ~ \.php$ < include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.2-fpm.sock; >>
Подтвердите, что конфигурация Nginx в порядке.
$ sudo nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Размещение PHP-приложения на веб-сервере Apache
В Apache мы можем использовать встроенный модуль mod_php для обработки PHP-кода непосредственно в процессе Apache.
Но сначала вам нужно установить пакет веб-сервера Apache, PHP и расширение Apache PHP:
sudo apt install apache2 libapache2-mod-php8.2
Перезапустите веб-сервер Apache после настройки.
sudo systemctl restart apache2
Подведение итогов#
В заключение, установка PHP 8.2 в системе Ubuntu 22.04/20.04/18.04 Linux — это простой процесс. Мы начали с добавления PHP PPA Ондржея Сурого в исходники пакетов системы, что позволило нам установить PHP 8.2 и другие модули. Добавление стороннего PPA к рабочему серверу может привести к риску стабильности и безопасности, и их всегда следует использовать с осторожностью. Если вы выполняете обновление PHP, рассмотрите возможность резервного копирования важных файлов перед обновлением вашей системы на случай, если что-то пойдет не так в процессе обновления.
Если вам понравился этот пост о том, как установить PHP 8.2 на Ubuntu 22.04, поделитесь им с друзьями в социальных сетях. Спасибо.
Установка PHP 7+ в Ubuntu 20.04
PHP 7.4 — это последний стабльный релиз PHP. Говорим «Спасибо» товарищу Ondřej Surý за поддержку PPA репозитория со всеми популярными версиями PHP на launchpad.
Если вы хотите установить специфическую версию PHP, то эта статья поможет вам в этом нелёгком начинании. В данном посте вы узнаете, как установить PHP 7.4, 7.3, 7.2, 7.1 и PHP 7.0 на Ubuntu 20.04, 18.04 и 16.04 LTS, используя PPA.
Установка PHP
# Ставим недостающий пакет sudo apt-get install software-properties-common # Добавляем репозиторий в систему sudo add-apt-repository ppa:ondrej/php # Обновляем список пакетов sudo apt-get update # Устанавливаем РНР7.4 sudo apt-get install -y php7.4 # Или ставим РНР7.3 sudo apt-get install -y php7.3 # Или ставим РНР7.2 sudo apt-get install -y php7.2 # Или ставим РНР7.1 sudo apt-get install -y php7.1 # Или ставим РНР7.0 sudo apt-get install -y php7.0
Проверка версии PHP
Для проверки установленной версии PHP выполните следующую команду:
php -v PHP 7.4.5 (cli) (built: Apr 28 2020 14:49:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.5, Copyright (c), by Zend Technologies
Установка модулей PHP
Вам также может понадобиться установить определённые модули, основываясь на требованиях разрабатываемого приложения. Используйте команду ниже для поиска доступных для PHP 7 модулей в репозитории пакетов:
sudo apt-cache search php7*
Получим примерно следующее:
php-all-dev - package depending on all supported PHP development packages php7.0 - server-side, HTML-embedded scripting language (metapackage) php7.0-cgi - server-side, HTML-embedded scripting language (CGI binary) php7.0-cli - command-line interpreter for the PHP scripting language php7.0-common - documentation, examples and common module for PHP php7.0-curl - CURL module for PHP php7.0-dev - Files for PHP7.0 module development php7.0-gd - GD module for PHP php7.0-gmp - GMP module for PHP . . . php7.1-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP php7.1-xmlrpc - XMLRPC-EPI module for PHP php7.1-zip - Zip module for PHP php7.1-opcache - Zend OpCache module for PHP php7.1 - server-side, HTML-embedded scripting language (metapackage) php7.1-xsl - XSL module for PHP (dummy) . . php7.2-bcmath - Bcmath module for PHP php7.2-bz2 - bzip2 module for PHP php7.2-cgi - server-side, HTML-embedded scripting language (CGI binary) php7.2-cli - command-line interpreter for the PHP scripting language php7.2-common - documentation, examples and common module for PHP php7.2-curl - CURL module for PHP php7.2-dba - DBA module for PHP
Из вывода на экран команды выше копируем названия нужных нам модулей под нашу версию PHP и ставим их в систему.
sudo apt-get install php7.2-mysql php7.2-curl php7.2-json php7.2-cgi php7.2-xsl
Если в названии модуля не указать точную его версию, будет установлена самая свежая сборка пакета из репозитория.