PHP — один из наиболее широко используемых языков программирования на стороне сервера. Многие популярные CMS и фреймворки, такие как WordPress, Magento и Laravel, написаны на PHP.
PHP 8.0 — это последняя основная версия языка PHP. Он вводит несколько критических изменений, улучшения производительности и множество новых функций, таких как именованные аргументы, JIT-компилятор, типы объединения, выражение соответствия и многое другое.
Эта статья покажет вам, как установить PHP 8 в Ubuntu 20.04 и интегрировать его с Nginx и Apache.
На момент написания репозитории Ubuntu 20.04 по умолчанию включают версию PHP 7.4. Мы установим PHP из репозитория ondrej/php PPA.
Перед обновлением или установкой PHP 8 убедитесь, что ваши приложения его поддерживают.
Те же шаги применимы для Ubuntu 18.04 и всех дистрибутивов на основе Ubuntu, включая Kubuntu, Linux Mint и Elementary OS.
Ондржей Сури, разработчик Debian, поддерживает репозиторий, включающий несколько версий PHP. Чтобы включить репозиторий, запустите:
sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php
После включения PPA вы можете установить PHP 8.
Если вы используете Apache в качестве веб-сервера, вы можете запускать PHP как модуль Apache или PHP-FPM.
Установить PHP как модуль Apache — простая задача:
sudo apt update sudo apt install php8.0 libapache2-mod-php8.0
После установки пакетов перезапустите Apache, чтобы модуль PHP загрузился:
sudo systemctl restart apache2
Php-FPM — это менеджер процессов FastCGI для PHP. Выполните следующую команду, чтобы установить необходимые пакеты:
sudo apt update sudo apt install php8.0-fpm libapache2-mod-fcgid
По умолчанию PHP-FPM не включен в Apache. Чтобы включить его, запустите:
sudo a2enmod proxy_fcgi setenvif sudo a2enconf php8.0-fpm
Чтобы активировать изменения, перезапустите Apache:
systemctl restart apache2
Nginx не имеет встроенной поддержки обработки файлов PHP. Мы будем использовать PHP-FPM («менеджер процессов fastCGI») для обработки файлов PHP.
Выполните следующие команды для установки пакетов PHP и PHP FPM:
sudo apt update sudo apt install php8.0-fpm
После завершения установки служба FPM запустится автоматически. Чтобы проверить статус службы, запустите
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 preset: enabled) Active: active (running) since Thu 2020-12-03 16:10:47 UTC; 6s ago
Теперь вы можете отредактировать блок сервера Nginx и добавить следующие строки, чтобы Nginx мог обрабатывать файлы PHP:
server { # . . . other code location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.0-fpm.sock; } }
Не забудьте перезапустить службу Nginx, чтобы новая конфигурация вступила в силу:
sudo systemctl restart nginx
Расширения PHP — это скомпилированные библиотеки, которые расширяют основные функции PHP. Расширения доступны в виде пакетов и могут быть легко установлены с помощью apt:
sudo apt install php8.0-[extname]
Например, чтобы установить расширения MySQL и GD, вы должны выполнить следующую команду:
sudo apt install php8.0-mysql php8.0-gd
После установки нового расширения PHP не забудьте перезапустить службу Apache или PHP FPM, в зависимости от ваших настроек.
Чтобы проверить, правильно ли настроен веб-сервер для обработки PHP, создайте новый файл с именем info.php внутри каталога /var/www/html со следующим кодом:
<?php phpinfo();
Сохраните файл, откройте браузер, и визит: http://your_server_ip/info.php.
Вы увидите информацию о своей конфигурации PHP, подобную следующей:
Установка PHP 8 на сервер Ubuntu 20.04 — простая задача. Все, что вам нужно сделать, это включить репозиторий «ondrej/php» и установить PHP 8 с apt.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Спасибо за статью, к сожалению у меня неуспех) Пытался поставить на Ubuntu 18.04 LTS но у неё стандартная пятилетняя поддержка была до 31 мая 2023 года, так что автор, насколько я понял, уже удалил php8.0 для моей версии. В итоге я получаю ошибку
Опоздал всего-то чуть больше чем на месяц. Пора обновляться)