Давай честно: PHP нужен не потому что он "великий и могучий", а потому что половина мира до сих пор крутится на WordPress, Laravel и прочей старой, но живой кодобазе.
Да, есть Python, Go, Rust — красиво, модно. Но когда на проекте Apache или Nginx, а дедлайн горит, тебя вообще не спрашивают, "а может мы перепишем всё на Django?".
Тебе говорят: "Ставь PHP. Прямо сейчас"

И ты идёшь в терминал. Без пафоса, без огоньков на экране, с усталой решимостью.

Часть 1: PHP + Apache — быстро и по-стариковски

Если у тебя Apache — значит, тебе повезло/не повезло (вычеркни лишнее). Apache жрёт оперативу, но умеет жевать PHP без дополнительных выкрутасов.

Открывай терминал и по старой схеме:

sudo apt update
sudo apt install php libapache2-mod-php

Всё, PHP в системе. Но нет, радоваться рано — перезапусти Apache, иначе он будет стоять в углу и делать вид, что PHP не существует:

sudo systemctl restart apache2

Apache — как старый админ: если ему не сказать "перезапустись", он будет сидеть в кэше и плевать в потолок.

Часть 2: PHP + Nginx — без FPM никуда

С Nginx другая история. Этот парень не будет сам парсить PHP, ему нужен помощник — PHP-FPM (менеджер процессов fastCGI).

Команды:

sudo apt update
sudo apt install php-fpm

После установки FPM обычно сам стартует, но проверь, чтобы не бегать потом с криками:

systemctl status php7.4-fpm

Если там "active (running)" — живём. Если нет, готовься шаманить.

Часть 3: Расширения PHP — без них никуда

PHP сам по себе — как отвертка без насадок: что-то открутишь, но половина задач останется на потом.

Нужно расширение для MySQL? GD для работы с картинками? Просто ставишь:

sudo apt install php-[имя_расширения]

Например:

sudo apt install php-mysql php-gd

После этого опять — перезапуск Apache или PHP-FPM, иначе расширение будет лежать в системе мёртвым грузом.

Часть 4: Старые версии PHP — когда проект застрял в прошлом

Да, это ад. Но есть репозиторий от Ondřej Surý, в котором лежат старые версии. Иногда без них никуда, особенно если тебе достался проект с кодом 2010-го, который боится PHP 8, как кошка пылесоса.

Подключаем репозиторий:

sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php

Дальше ставим нужную версию:

sudo apt install php[версия]

Пример:

sudo apt install php7.1 php7.1-common php7.1-opcache php7.1-mcrypt php7.1-cli php7.1-gd php7.1-curl php7.1-mysql

Скажу честно — старые версии PHP ставить больно. Не только потому, что это костыль, а потому, что ты как бы сам подписываешь себе приговор — с этим кодом придётся жить.

Заключение

PHP на Ubuntu — это не магия, это просто чёткая последовательность команд. Ошибся — получишь "502 Bad Gateway" или белый экран смерти. Успешно поставил — и забудь про это на пару лет (если повезёт).

А ещё запомни: чем меньше ты лазишь в продакшн с обновлением PHP, тем дольше ты живёшь без лишнего геморроя.