Apache2 + MultiPHP + MariaDB LinuxMint

Установка 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

Вы нашли эту статью полезной?