Установка Apache2
sudo apt install apache2
Установка PHP
Обход блокировки репозитория
echo " deb http://debian.octopuce.fr/sury-php/ bookworm main" |sudo tee /etc/apt/sources.list.d/surry-mirror.list
или
echo " deb https://ftp.mpi-inf.mpg.de/mirrors/linux/mirror/deb.sury.org/repositories/php/ bookworm main" |sudo tee /etc/apt/sources.list.d/surry-mirror.list
теперь обновляем ключ
скачать файл:
https://packages.sury.org/php/apt.gpg
Скачать файл вы можете с Яндекс-диска:
https://disk.yandex.ru/d/ZxgB_kRu-mwqGg
Можно положить файл куда-нить на сайт и:
wget https://адрес
Далее -
mv ~/apt.gpg /etc/apt/trusted.gpg.d/php.gpg
Далее ставим нужные версии PHP:
sudo apt install php8.0-{fpm,mysql,common,cli,opcache,readline,mbstring,xml,gd,curl,zip}
sudo apt install php8.2-{fpm,mysql,common,cli,opcache,readline,mbstring,xml,gd,curl,zip}
Убеждаемся, что все работает:
sudo systemctl status php8.0-fpm
Настройка Хостов
Вносим правки в /etc/hosts :
127.0.0.2 site1.local
..........................................
127.0.0.n siten.local
Теперь мы создадим корневые каталоги для каждого сайта, который будет развернут на этом сервере.
2 сайта: site1.local и site2.local
sudo mkdir /mnt/Data/www/site1.local
sudo mkdir /mnt/Data/www/site2.local
По умолчанию веб-сервер Apache запускается как пользователь и группа www-data. Чтобы убедиться, что права собственности и доступа на корневые каталоги сайтов установлены верно, выполните следующие команды:
sudo chown -R www-data:www-data /mnt/Data/www/site1.local
sudo chown -R www-data:www-data /mnt/Data/www/site2.local
sudo chmod -R 755 /mnt/Data/www/site1.local
sudo chmod -R 755 /mnt/Data/www/site2.local
Создание конфигов для сайтов:
sudo nano /etc/apache2/sites-available/site1.local.conf
sudo nano /etc/apache2/sites-available/site2.local.conf
<VirtualHost *:80>
ServerAdmin admin@site1.local
ServerName site1.local
DocumentRoot /mnt/Data/www/site1.local
#Файлы по умолчанию в директории
DirectoryIndex index.php index.html
<Directory /mnt/Data/www/site1.local>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
<FilesMatch \.php$>
# Указываем нужную версию PHP
SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/site1.local_error.log
CustomLog ${APACHE_LOG_DIR}/site1.local_access.log combined
</VirtualHost>
Проверяем конфигурацию на ошибки:
sudo apachectl configtest
Если сайты не в директории по умолчанию, тогда в файле /etc/apache2/apache2.conf добавляем:
<Directory /mnt/Data/www>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
В конце файла:
ServerName 127.0.0.1