PHP - очень популярный скриптовый язык программирования с открытым исходным кодом, который в основном используется для разработки динамических веб-сайтов и веб-приложений. PHP расшифровывается как Hypertext Processor что в переводе означает препроцессор гипертекста. Код PHP выполняется на стороне сервера и может находиться как в отдельных файлах с расширением .php, так и быть встроенным непосредственно в HTML.
На данный момент официально поддерживается 2 версии PHP - это 7.4 и 8.0. В данной статье будет рассмотрена установка PHP на Debian 11. Также будет затронута установка расширения для Apache, а также рассказано как изменить версию по умолчанию.
Содержание статьи
Установка PHP в Debian 11
В данной статье речь конкретно пойдёт о PHP 7.4 и PHP 8. Версия PHP 7.4 уже присутствует в официальных репозиториях Debian. Версия 8.0 отсутствует в официальных репозиториях и её необходимо устанавливать из сторонних репозиториев (будет использоваться репозиторий Sury).
Установка PHP 7.4
Как уже было сказано ранее PHP 7.4 уже присутствует в официальных репозиториях. Для установки сначала необходимо обновить индекс пакетов при помощи команды:
sudo apt update
Далее необходимо установить PHP выполнив команду:
sudo apt -y install php7.4
При выполнении вышеуказанной команды помимо самого интерпретатора PHP автоматически будут установлены такие пакеты как php7.4-json (пакет для работы с JSON), libapache2-mod-php7.4 (пакет для работы с веб-сервером Apache), php7.4-cli (командный интерпретатор PHP) а также автоматически будет установлен веб-сервер Apache (пакеты apache2, apache2-data, apache2-utils).
После того как все пакеты будут установлены в системе можно проверить версию PHP при помощи команды:
php -v
Также проверить что PHP 7.4 установилась успешно можно при помощи команды:
php7.4 -v
Если в выводе команды будет отображена версия PHP это означает что PHP успешно установлен в системе.
Установка PHP 8.0 и 8.1
PHP 8 отсутствует в официальных репозиториях Debian. Для установки данной версии необходимо подключить репозиторий под именем Sury - репозиторий созданный одним из разработчиков Debian содержащий пакеты, которые отсутствуют в официальных релизах Debian.
Для начала необходимо установить необходимые пакеты для работы с HTTPS репозиториями для этого необходимо выполнить команду:
sudo apt install -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
Далее необходимо подключить репозиторий Sury. Для этого необходимо выполнить команду:
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
После этого необходимо скачать ключ безопасности для идентификации репозитория при помощи утилиты wget (при её отсутствия необходимо установить wgetзаранее) выполнив команду:
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
После этого необходимо обновить индекс пакетов:
sudo apt update
В списках репозиториев можно увидеть успешно добавленный репозиторий Sury. В репозитории Sury присутствует 2 версии PHP 8 - 8.0 и 8.1. Можно выбрать любую из них или установить сразу обе. В качестве примера будет установлена версия 8.1. Для этого необходимо выполнить команду:
sudo apt -y install php8.1
Для установки версии 8.0 команда будет выглядеть следующим образом:
sudo
apt -y install php8.0
Так же, как и при установке PHP версии 7.4 автоматически будут установлены дополнительные пакеты. Для каждой версии PHP устанавливаются свои пакеты. Это означает что, если в системе уже присутствует, например пакет php7.4-cli то для версии PHP 8.1 будет установлен пакет php8.1-cli и т.д. Для проверки корректной установки версии PHP 8.1 необходимо выполнить команду:
php -v
Или можно выполнить команду:
php8.1 -v
Настройка PHP для веб-сервера Apache
Для работы PHP Apache Debian необходимо чтобы в системе присутствовал сам веб-север Apache (пакет apache2) и расширение libapache2-mod-php8.1 (для всех остальных версий PHP название пакета будет одинаковым, однако в конце необходимо указать необходимую версию PHP - 7.4, 8.0. Например libapache2-mod-php7.4, libapache2-mod-php8.0).
Веб сервер Apache и расширение libapache2-mod-php устанавливаются автоматически при установке пакета PHP. В противном случае пакет libapache2-mod-php можно установить, вручную выполнив одну из нижеперечисленных команд (в зависимости от требуемой версии PHP или можно установить сразу для всех версий PHP присутствующих в системе):
sudo apt -y install libapache2-mod-php7.4
sudo apt -y install libapache2-mod-php8.0
sudo apt -y install libapache2-mod-php8.1
Перед использованием PHP необходимо включить соответствующий модуль в Apache. Для включения модуля php7.4 необходимо выполнить команду:
sudo a2enmod php7.4
Если в выводе команды будет строка Module already enabled, это означает что модуль уже включен. Чтобы выключить модуль необходимо выполнить команду:
sudo a2dismod php7.4
Далее необходимо перезапустить apache при помощи команды:
sudo systemctl restart apache2
Если необходимо включить модуль для другой версии php, например 8.1 сначала необходимо выключить модуль для другой версии (команда a2dismod) и только потом включить модуль для нужной версии. Для включения модуля php версии 8.1 необходимо выполнить команду:
sudo a2enmod php8.1
После включения модуля также необходимо перезапустить apache при помощи команды:
sudo systemctl restart apache2
Далее для проверки работы Apache и PHP необходимо создать файл с расширением .php в директории хранения сайтов - /var/www/html/ вписав туда команду phpinfo() которая выведет информацию о текущей конфигурации PHP. Для этого необходимо выполнить команду ниже предварительно перейти под учетную запись пользователя root:
echo "<?php phpinfo(); ?>" > /var/www/html/info.php
Далее необходимо перезапустить веб-сервер Apache:
sudo systemctl restart apache2
После перезагрузки необходимо перейти по адресу localhost/info.php в браузере. Если вывод страницы будет как на скриншоте ниже, то PHP успешно интегрирован c Apache:
На этом настройки php debian с Apache завершена.
Выбор версии PHP
Если в системе присутствует более чем одной версии PHP можно выбрать версию PHP которая будет использоваться по умолчанию. Для того чтобы выбрать необходимую версию PHP сначала можно отобразить список всех версий PHP установленных в системе выполнив команду:
update-alternatives --list php
Для установки необходимой версии по умолчанию необходимо выполнить команду:
sudo update-alternatives --set php /usr/bin/php8.1
Вместо php8.1 можно поставить необходимую версию PHP (7.4, 8.0 и тд).
Выводы
В этой статье была рассмотрено как установить PHP Debian 11. Была рассмотрена установка двух версий PHP - 7.4 и 8 а также была описана интеграция PHP с веб-сервером Apachе и выбор необходимой версии PHP по умолчанию. Теперь вы знаете, как установить не только сам интерпретатор языка PHP, но и другие поддерживаемые версии. Как видите, это очень просто, и вы можете получить нужную версию PHP буквально в несколько кликов. Надеюсь, эта информация была вам полезной.
Отличная статья, жаль, что поздно нашел, в свое время потратил два дня, чтобы завести пых на апаче, ибо ранее опыта конфигурирования не было, оказалось, что я отдельно установил пых, но не прикрутил его как модуль к апачу.
Проверил, все работает на Debian GNU/Linux 10 (buster) для php8.1.1. Огромное спасибо!!!
после добавления репозитория sury, в котором не оказалось файла release, началась вся прелесть многочасовых поисков как же теперь избавиться от этого репозитория, причем с списке его нет. Так что кто не сильно искушен в линуксе, лучше не копируйте и не вставляйте эти строки:
~# echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
~# wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
OK
полчуите вот это:
Ошб:7 https://packages.sury.org/php focal Release
404 Not Found [IP: 185.131.64.122 443]
E: Репозиторий «https://packages.sury.org/php focal Release» не содержит файла Release.
N: Обновление из этого репозитория нельзя выполнить безопасным способом, поэтому по умолчанию он отключён.
N: Информацию о создании репозитория и настройках пользователя смотрите в справочной странице apt-secure(8).
самый быстрый способ вернуться, у кого пошла ошибка:
/etc/apt/sources.list.d/sury-php.list - заремарить содержимое внутри этого файла (#):
# deb https://packages.sury.org/php/dists/bullseye/ focal main
и выполнить команду:
~# sudo apt remove -y lsb-release ca-certificates apt-transport-https software-properties-common gnupg2
packages.sury.org заблокировал Россию. Делайте форк.
https://github.com/oerdnj/deb.sury.org/issues/2155