- Как установить 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#
- Подведение итогов#
- How to install and configure PHP
- Prerequisites
- Install PHP
- Install optional packages
- Configure PHP
- Test your setup
- Further reading
Как установить 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, поделитесь им с друзьями в социальных сетях. Спасибо.
How to install and configure PHP
PHP is a general-purpose scripting language well-suited for Web development since PHP scripts can be embedded into HTML. This guide explains how to install and configure PHP in an Ubuntu System with Apache2 and MySQL.
Prerequisites
Before installing PHP you should install Apache (or a preferred web server) and a database service such as MySQL.
- To install the Apache package, please refer to our Apache guide.
- To install and configure a MySQL database service, refer to our MySQL guide.
Install PHP
PHP is available on Ubuntu Linux, but unlike Python (which comes pre-installed), must be manually installed.
To install PHP – and the Apache PHP module – you can enter the following command into a terminal prompt:
sudo apt install php libapache2-mod-php
Install optional packages
The following packages are optional, and can be installed if you need them for your setup.
- PHP-CLI
You can run PHP scripts via the Command Line Interface (CLI). To do this, you must first install the php-cli package. You can install it by running the following command:
sudo apt install php-mysql
sudo apt install php-pgsql
Configure PHP
If you have installed the libapache2-mod-php or php-cgi packages, you can run PHP scripts from your web browser. If you have installed the php-cli package, you can run PHP scripts at a terminal prompt.
By default, when libapache2-mod-php is installed, the Apache2 web server is configured to run PHP scripts using this module. First, verify if the files /etc/apache2/mods-enabled/php8.*.conf and /etc/apache2/mods-enabled/php8.*.load exist. If they do not exist, you can enable the module using the a2enmod command.
Once you have installed the PHP-related packages and enabled the Apache PHP module, you should restart the Apache2 web server to run PHP scripts, by running the following command:
sudo systemctl restart apache2.service
Test your setup
To verify your installation, you can run the following PHP phpinfo script:
You can save the content in a file – phpinfo.php for example – and place it under the DocumentRoot directory of the Apache2 web server. Pointing your browser to http://hostname/phpinfo.php will display the values of various PHP configuration parameters.
Further reading
- For more in depth information see the php.net documentation.
- There are a plethora of books on PHP 7 and PHP 8. A good book from O’Reilly is Learning PHP, which includes an exploration of PHP 7’s enhancements to the language.
- Also, see the Apache MySQL PHP Ubuntu Wiki page for more information.