Сервер Apache PHP с FPM на Ubuntu 20.04
Wab IT

Команды в этом учебнике должны выполняться с правами root. Чтобы избежать добавления sudo перед каждой командой, вам придется стать пользователем root,
sudo -s
прежде чем вы продолжите.
2. Edit /etc/apt/sources.перечислите и обновите свою установку Linux
Редактируйте /etc/apt/sources.list. Закомментируйте или удалите установочный компакт-диск из файла и убедитесь, что включены репозитории universe и multiverse. Это должно так выглядеть, если вы устанавливали убунту предоставленную серверной компанией, то у вас могут быть ссылки через яндекс или другой ресурс. Можете просто скопировать ниже и вставив с лист удалив все остальные данные
nano /etc/apt/sources.list
В файл скопируйте ниже строки либо раскомментируйте их.
deb http://de.archive.ubuntu.com/ubuntu focal main restricted
deb http://de.archive.ubuntu.com/ubuntu focal-updates main restricted
deb http://de.archive.ubuntu.com/ubuntu focal universe
deb http://de.archive.ubuntu.com/ubuntu focal-updates universe
deb http://de.archive.ubuntu.com/ubuntu focal multiverse
deb http://de.archive.ubuntu.com/ubuntu focal-updates multiverse
deb http://de.archive.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb http://de.archive.ubuntu.com/ubuntu focal-security main restricted
deb http://de.archive.ubuntu.com/ubuntu focal-security universe
deb http://de.archive.ubuntu.com/ubuntu focal-security multiverse
Далее
apt-get update
для обновления базы данных пакетов apt и
apt-get dist-upgrade
чтобы установить последние обновления (если таковые имеются). Если вы видите, что новое ядро устанавливается как часть обновлений, вам следует перезагрузить систему после этого:
reboot
1 — Установка Apache и FastCGI
Откройте терминал и выполните следующие команды: для установки Апаче утилит и мод FastCGI который необходим для работы скриптов php-fpm
apt install apache2 libapache2-mod-fcgid
Шаг 2 — Установите PHP с FPM
Затем установите PHP и PHP-FPM в вашу систему Ubuntu. Для установки PHP 7.4 вводим
apt-get -y install libapache2-mod-php php-pear php7.4 php7.4-common php7.4-gd php7.4-mysql php7.4-imap php7.4-cli php7.4-cgi php7.4-curl php7.4-intl php7.4-pspell php7.4-sqlite3 php7.4-tidy php7.4-xmlrpc php7.4-xsl memcached php-memcache php-imagick php7.4-zip php7.4-mbstring php-soap php7.4-soap php7.4-opcache php-apcu php7.4-fpm
Перезагрузим апаче
systemctl restart apache2
Для установки PHP 8.0 вводим
apt -y install php8.0 libapache2-mod-php8.0 php-pear php8.0-common php8.0-gd php8.0-mysql php8.0-imap php8.0-cli php8.0-cgi php8.0-curl php8.0-intl php8.0-pspell php8.0-sqlite3 php8.0-tidy php8.0-xmlrpc php8.0-xsl php-imagick php8.0-zip php8.0-mbstring php-soap php8.0-soap php8.0-opcache php-apcu php8.0-fpm libapache2-mod-fcgid
Если у нас движки поддерживающие разные версии php то для их установки подключаем
apt-get install software-properties-common
или
apt-get install python-software-properties
Подключаем репозиторий
add-apt-repository ppa:ondrej/php
Обновляем
apt-get update
systemctl restart apache2 И устанавливаем версии php5.6 и любую которая вам понадобится, просто меняя номер версии на 7.0 или 1 и 2 и 3 версии. Глобальная разница между 5.6 и 7.Х , поэтому чаще всего вам понадобиться 5.6 и 7.4
apt-get install libapache2-mod-php5.6 php5.6-cli php5.6-curl php5.6-fpm php5.6-gd php5.6-intl php5.6-json php5.6-mbstring php5.6-mcrypt php5.6-pdo-mysql php5.6-xml php5.6-zip
Если вы собираетесь пользоваться лишь одной версией php и перешли к примеру с php5.6 на 7.4, то для смены вам следует отключить 5.6
a2dismod php5.6и включить
a2enmod php7.4Если мы хотим подключить сразу два сайта которые будут работать на разных версиях PHP тогда отключаем запущенную версию PHP, если забыли какая версия включена наберите
php -v Добавьте блок настроек для mod_fastcgi. Этот блок зависит от mod_action. Чтобы включить mod_action, введите:
a2enmod actions fcgid alias proxy_fcgi
и в наше конфиг файл сайта 000-default.conf
nano /etc/apache2/sites-available/000-default.conf
добавляем внизу до закрывающего тега </VirtualHost> версию php которая нужна нашему сайту в примере php7.4-fpm.sock
<FilesMatch \.php$>
# 2.4.10+ can proxy to unix socketSetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost"</FilesMatch>
Весь файл выглядит так. Как видите мы в html добавили еще одну директорию sayt
<VirtualHost *:80>
ServerName port.fvds.ru ServerAlias <a href="http://www.port.fvds.ru">www.port.fvds.ru</a> DocumentRoot /var/www/html/sayt
<Directory /var/www/html/sayt> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all </Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <FilesMatch \.php$> # 2.4.10+ can proxy to unix socket SetHandler "proxy:unix:/var/run/php/php7.4-fpm.sock|fcgi://localhost" </FilesMatch> </VirtualHost>
Ctrl +S + Z сохраняем и перезагружаем Апаче
systemctl restart apache2
Устанавливаем базу данных Mariadb и Phpmyadmin
apt-get install mariadb-server mariadb-client phpmyadmin
Вы увидите следующий вопрос:
Web server to reconfigure automatically: <-- apache2
Выбираем apache2
Configure database for phpmyadmin with dbconfig-common? <-- Yes
Yes
MySQL application password for phpmyadmin: <-- Press enter
Водим пароль и повторяем.
Далее нам нужно подключить майадмин к конфиг файлу apache2.conf, заходим
nano /etc/apache2/apache2.conf
и в apache2.conf внизу страницы добавляем
Include /etc/phpmyadmin/apache.conf
Ctrl +S + Z сохраняем
Давайте зайдем в базу данных и добавим пользователя со всеми привилегиями
Вводим в консоли ssh
mysql
и добавляем привилегии как у root ко всем базам, пользователю 'admin' с паролем 'parol' не забудьте взять в кавычки ' ' как в примере
grant all privileges on *.* to 'admin'@'localhost' identified by 'parol' WITH GRANT OPTION;
выходим Ctrl-C `
Для работы некоторых движков необходима включенный модуль rewrite в apache2, включим его и перезагрузим Апаче
a2enmod rewrite systemctl restart apache2
Так если мы будем загружать движки в zip архивах то нам понадобится установить архиватор zip в Ubuntu
apt install zip
На этом все сервер Апаче настроен.
Так как мы в файле конфига сайта прописали директорию /var/www/html/sayt, то заходим в
/var/www/html
и добавим еще одну папку sayt в нее и будем загружать наш сайт c php7.4.
mkdir /var/www/html/sayt
а в каталог shop версию php5.6
Для этого скопируем наш файл 000-default.conf и переименуем его к примеру в shop.conf
cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/shop.conf
Открываем его
nano /etc/apache2/sites-available/shop.conf
Меняем адрес на shop.fvds.ru и версию php5.6 примеры ниже в каких строчках менять.
ServerName shop.fvds.ru ServerAlias <a href="http://www.shop.fvds.ru">www.shop.fvds.ru</a> DocumentRoot /var/www/html/shop <directory var="" www="" html="" shop=""> SetHandler "proxy:unix:/var/run/php/php5.6-fpm.sock|fcgi://localhost" </directory>
Сохраняем и включаем сайт shop водим команду
a2ensite shop.conf Добавляем директорию
mkdir /var/www/html/shop
И загружаем наши движки в каталоги, только не перепутайте какую версию php куда вы подключили.