Да, это статья не новая и тема заезженная, но по какой-то причине, я вечно забываю, что куда и почему, хотя в принципе и не каждый день такое проворачиваю… а вот порой толковой инструкции найти не могу… благо есть свой сайт, аля мой справочник :) Вдруг кому будет полезно еще…

Установка

Тут все просто, до не приличия, терминал — команда, поехали)

Ставим сразу сервер + пхп + базу данных

sudo apt install apache2 php7.4-fpm maria-bd

Настройка Apache

Дабы не копошиться и не тревожить девственные конфигурации apache2, настройки будем проводить в отдельном файле, а потом его подключать…

Создаем соответственный файл настроек по следующему пути /etc/apache2/conf-available Приблизительно это будет выглядеть так

sudo nano /etc/apache2/conf-available/myconf.conf

Вписываем свои настройки, в частности для рабочего примера, можно вписать это:

## Мои настройки Apache

## Убираем предупреждение при перезапуске Apache (так будет как по мне правильно :) )
ServerName localhost

## Учим Apache распознавать/понимать php, а не предлагал сохранить скачать php-файл XD
AddType application/x-httpd-php .php .phtml

## Установка кодировки UTF-8 по умолчанию
AddDefaultCharset UTF-8

Сохраняем, в данном примере, это будет сочетание клавиш Ctrl + O, подключаем наш файл настроек, командой (можно и другими способами, но не суть):

sudo a2enconf myconf

Буду считать, что ошибок у нас нет и посему упущу момент проверки конфигурации файла, а сразу перезапускаем сервер

sudo apache2ctl restart

Настройка виртуальных хостов

Здесь в интернет трещит по швам :) Много копи паста, я не исключение))) Много своих «правильных» вариантов, а я буду на своем, простом.

Вариант с виртуальными хостами, несколько сайтов —  один IP адрес, доступ по имени сайта.

Открываем hosts и пишем имена своих будущих сайтов :)

sudo nano /etc/hosts
127.0.0.1    my.site1 my.site2

Закрываем, сохраняем, то есть — сохраняем, а потом закрываем XD Что-то бес попутал)

Теперь сообщаем нашему серверу, что у нас будут дети сайты.. Для этого проделываем следующее:

sudo nano /etc/apache2/sites-availabl/my.site1.conf
<VirtualHost *:80>
    ServerName my.site1
    DocumentRoot /var/www/my.site1
    <Directory /var/www/my.site1>
        AllowOverride All
    </Directory>

    LogLevel warn
    ErrorLog /var/www/my.site1/error.log
    CustomLog /var/www/my.site1/access.log combined
</VirtualHost>

Для второго сайта аналогично, только циферка другая 8)

Мы создали конфигурационные файлы наших бушующих сайтов, указав, что хранить логи нужно в их же папке.. Теперь дело за маленьким, создаем сами папки :)

mkdir /var/www/my.site1
mkdir /var/www/my.site2

В каждую папку закинем стандартный файлик, как по мне) Дабы видеть результат наших трудов

sudo nano /var/www/my.site/index.php
<?php 
    phpinfo();
?>

Теперь сообщим apache, что мы соизволили оценить свои труды работы :)

sudo a2ensite my.site1 my.site2

И за одно отключим стандартный хост от apache

sudo a2disiste 000-default.conf

Ну и заключительный момент, перезапускаем веб-сервер и идем открывать в браузере свои сайты http://my.site1

sudo apache2ctl restart

Так к слову решил упомянуть, эту статью все же могут увидеть даже дети :) Или просто мало знающие люди, сайты будут работать только на вашем компьютере! У другого человека http://my.site1 вовсе не откроется.. Для работы имени сайта в глобальной сети необходимо немножко больше тело движений, но об этом как-то в другой раз..