Сервер 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 socket
SetHandler "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 куда вы подключили.