Установим PHP 8.1 на сервере VPS (VDS) с Ubuntu 22.04 и веб-сервером Nginx.
Перед этим необходимо добавить репозиторий. Но, перед его добавлением, устанавливаем software-properties-common — программное обеспечение, позволяющее автоматически добавлять или удалять репозитории.
1. Добавим в систему software-properties-common.
Для этого выполним команду.
sudo apt install software-properties-common
В процессе установки вас попросят согласится на выполнение операций. Необходимо нажать Y и Enter.
2. Добавим репозиторий.
sudo add-apt-repository ppa:ondrej/php
При добавлении вас попросят нажать Enter.
3. Обновим информацию о пакетах.
sudo apt update
4. Установим PHP 8.1.
sudo apt install php8.1-fpm
В процессе установки вас попросят согласится на продолжение установки. Необходимо нажать Y и Enter.
5. Проверим статус PHP.
systemctl status php8.1-fpm
Если все нормально, будет выведена строка process active и масса дополнительной информации.
6. Настраиваем безопасность PHP.
Для этого открываем на редактирование файл настроек php.ini.
sudo nano /etc/php/8.1/fpm/php.ini
В нем необходимо найти параметр cgi.fix_pathinfo, раскомментировать его и установить значение 0 (ноль). Сохраняем изменения и закрываем файл.
7. Устанавливаем дополнительные расширения PHP.
sudo apt install -y php8.1-cli php8.1-common php8.1-mysql php8.1-zip php8.1-mbstring php8.1-curl php8.1-xml php8.1-bcmatch
Все, PHP8.1 установлен в систему. Теперь его необходимо связать с Nginx и MySQL, и протестировать его работу.
8. Связка PHP и MySQL.
Если в ходе установки дополнительных расширений php был установлен php8.1-mysql, то можно считать, что PHP и MySQL уже связаны. Если это расширение по каким-то причинам не установлено, то устанавливаем его командой.
sudo apt install php8.1-mysql
9. Связка PHP и Nginx.
Открываем на редактирование файл настроек Nginx.
sudo nano /etc/nginx/sites-available/default
Приводим его к следующему виду.
server {
listen 80 default_server;
listen [::]:80 default_server;
root /var/www/site.com/html;
index index.php index.html index.nginx-debian.html;
server_name site.com www.site.com;
location / {
try_files $uri $uri/ /index.php?$args;
location ~ /\.ht {
deny all;
Где site.ru имя вашего сайта, а root /var/www/site.com/html — директория, где он расположен.
Сохраняем изменения CTRL+O+Enter и выходим CTRL+X.
Позже, когда мы будем разворачивать свой сайт на сервере VPS (VDS) и создавать под него отдельный файл настроек Nginx (серверный блок), мы скопируем содержимое дефолтного файла настроек в этот отдельный новый файл. См. «Создание и настройка виртуальных хостов в Nginx».
Проверяем файл настроек на наличие ошибок.
sudo nginx -t
Если все в порядке, перезапускаем nginx.
sudo systemctl reload nginx
10. Поверяем работу PHP 8.1.
Вводим команду, создающую файл info.php с информацией о php.
sudo bash -c ‘echo»<?php phpinfo(); ?>» /var/www/site.ru/html/info.php’
Файл info.php создан, теперь выводим его в браузере. Вводим в адресной строке браузера http://site.ru/info.php
Должна открыться страница с информацией о PHP (версия и пр). Если она открылась, то все сделано правильно, php работает и связка nginx/php так же работает.
Удаляем, в целях безопасности, файл info.php.
sudo rm /var/www/site.ru/html/ihfo.php
Все, на этом установка и настройка PHP 8.1 на сервере VPS завершена.
Примечания и дополнения
Особенности установки PHP в операционной системе Windows рассмотрено в отдельной статье на нашем сайте — «Особенности самостоятельной установки PHP 8.4 в Windows 10».
Еще статьи по настройке VPS и Nginx
— Предварительная настройка UFW на сервере VPS Ubuntu
— Как добавить нового пользователя на сервере VPS/VDS Ubuntu?