Перезагрузка сервера Apache

sudo systemctl restart apache2

Подключение дополнительных модулей

sudo a2enmod <ИМЯ_МОДУЛЯ>

Отключение дополнительных модулей

sudo a2dismod <ИМЯ_МОДУЛЯ>

Создание виртуального хоста

В директории /etc/apache2/sites-available/ создать файл настроек для виртуального хоста:

sudo gedit /etc/apache2/sites-available/<ИМЯ_ВИРТУАЛЬНОГО_ХОСТА>.conf

<VirtualHost 127.0.0.2:80>
    ServerName <НАЗВАНИЕ_СЕРВЕРА>

    DocumentRoot <ПУТЬ_РАСПОЛОЖЕНИЯ_КОРНЕВОЙ_ДИРЕКТОРИИ>
    <Directory <ПУТЬ_РАСПОЛОЖЕНИЯ_КОРНЕВОЙ_ДИРЕКТОРИИ>>
        Options Includes Indexes FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    LogLevel warn
    ErrorLog <ПУТЬ_РАСПОЛОЖЕНИЯ_ДИРЕКТОРИИ_ЖУРНАЛОЛВ>\error.log
    CustomLog <ПУТЬ_РАСПОЛОЖЕНИЯ_ДИРЕКТОРИИ_ЖУРНАЛОЛВ>\access.log combined
  

Создать каталог для виртуального хоста:

sudo mkdir <ПУТЬ_РАСПОЛОЖЕНИЯ_КОРНЕВОЙ_ДИРЕКТОРИИ>

Задать необходимые права собственности и доступа:

sudo chown -R www-data:www-data <ПУТЬ_РАСПОЛОЖЕНИЯ_КОРНЕВОЙ_ДИРЕКТОРИИ>

sudo chmod -R 755 <ПУТЬ_РАСПОЛОЖЕНИЯ_КОРНЕВОЙ_ДИРЕКТОРИИ>

Проверка синтаксиса конфигурации Apache

sudo apachectl configtest

Подключение виртуального хоста

Для активации виртуального хоста:

sudo a2ensite <ИМЯ_ВИРТУАЛЬНОГО_ХОСТА>.conf

sudo systemctl restart apache2

Добавить имя хоста в список адресов:

sudo gedit /etc/hosts

Отключение виртуального хоста

sudo a2dissite <ИМЯ_ВИРТУАЛЬНОГО_ХОСТА>.conf

sudo systemctl restart apache2

Запуск нескольких версий PHP

Установка модуля, запускающего несколько экземпляров программы CGI для обработки одновременных запросов:

sudo apt install libapache2-mod-fcgid

Запуск служб для разных версий PHP:

sudo systemctl start php7.0-fpm

sudo systemctl start php7.4-fpm

sudo systemctl start php8.4-fpm

Активировать модулей, чтобы служба Apache2 могла работать с несколькими версиями PHP:

sudo a2enmod actions fcgid alias proxy_fcgi

Перезапустить службу Apache, чтобы применить изменения:

sudo systemctl restart apache2

В файле конфигурации виртуального хоста добавить строки с указанием необходимой версии PHP:

<VirtualHost 127.0.0.2:80>
    .....
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/run/php/phpX.X-fpm.sock|fcgi://localhost"
    </FilesMatch>
    .....
</VirtualHost>