Установка Apache, MySQL, PHP на Debian |
![]() |
Добавил(а) microsin |
В этом руководстве (перевод статьи [1]) мы рассмотрим, как установить Apache2, MySQL 8.0 и PHP 8.1 на Debian 11 (этот комплекс программ обозначают аббревиатурой LAMP, что расшифровывается как Linux+Apache+MySQL+PHP). Также мы установим некоторые общие расширения PHP, и настроим конфигурации PHP. В завершение защитим нашу установку с помощью Let Encrypt SSL и сконфигурируем перенаправление HTTPS. Установка тестировалась на облаке Google, так что аналогичные установки возможны на всех службах облачного хостинга наподобие AWS, Azure, на любом VPS или любом выделенном сервере, рабoтающем под Debian 11. Предварительные требования для установки LAMP: • Root-доступ SSH к вашему серверу или доступ пользователя с привилегиями sudo. [Шаг 1: инициализация установки] Как обычно, установку следует начать с обновления ссылок на пакеты приложения до самых последних версий. $ sudo apt update Установите утилиту wget, она может пригодиться для закачки файлов. После этого можно начинать устанавливать стек LAMP. [Шаг 2: установка Apache] Apache установится следующей командой, вместе со всеми требуемыми зависимостями: $ sudo apt install apache2 [Шаг 3: настройка сетевого экрана] Мы установим Uncomplicated Firewall (UFW) с Apache, чтобы разрешить доступ для публичного трафика, доступного для портов web-протоколов HTTP и HTTPS. $ sudo ufw app list Вы увидите следующий список профилей приложений. Available applications: Назначение профилей приложений: • Apache: этот профиль откроет порт 80 (обычный, не зашифрованный веб-трафик). Если вы не планируете использовать сертификаты SSL, то потребуется разрешит только профиль Apache. В этом примере настройки мы разрешим Apache Full: $ sudo uff allow OpenSSH Следующая команда покажет статус UFW: $ sudo ufw status Вывод будет наподобие следующего: Status: active [Шаг 4: проверка установки Apache] После того, как Apache установлен, он запустится автоматически. Все процессы управления Apache обслуживаются командой systemctl. Проверьте статус Apache следующей командой: $ sudo systemctl status apache2 В настоящий момент у нас есть установленный веб-сервер Apache и сконфигурирован Firewall. [Шаг 5: установка MySQL] Для добавления репозитория MySQL APT в вашу систему, перейдите на страничку загрузки репозиториев, и загрузите пакет последнего релиза следующей командой: $ wget https://dev.mysql.com/get/mysql-apt-config_0.8.22-1_all.deb Установите пакет релиза: $ sudo apt install ./mysql-apt-config_0.8.22-1_all.deb Мы будем устанавливать MySQL версии 8.0. Выберите OK нажатиями клавиши Tab, и нажмите Enter. Теперь мы можем установить MySQL. $ sudo apt update После завершения установки служба MySQL запустится автоматически. Проверить, работает ли сервер MySQL, можно командой: $ sudo service mysql status При нормально работающем сервере MySQL, будет отображен примерно такой вывод: mysql.service - MySQL Community Server Feb 02 06:12:29 demo systemd[1]: Starting MySQL Community Server... [Шаг 6: защита MySQL] Инсталляция MySQL поставляется вместе со скриптом mysql_secure_installation, который позволит вам легко повысить безопасность сервера MySQL: $ sudo mysql_secure_installation Скрипт запросит у вас сконфигурировать плагин проверки паролей (VALIDATE PASSWORD PLUGIN), который используется для проверки качества паролей пользователей MySQL и улучшения безопасности. Нажмите y, если вы хотите установить плагин плагин проверки паролей, или нажмите другую клавишу, чтобы перейти на следующий шаг. На этом шаге будет предложено выбрать один из трех уровней политики проверки паролей (password validation policy): low (низкий уровень), medium (средний уровень) и strong (строгий уровень безопасности). Введите 2 для строгой проверки паролей. На следующем шаге предложат установить пароль для root-пользователя MySQL. Если вы установили плагин проверки паролей, то скрипт покажет вам, насколько надежный новый пароль вы задали. Введите y для подтверждения пароля. Далее будет отображен запрос на удаление пользователя anonymous, на ограничение прав доступа root локальной машиной, на удаление тестовой базы данных и на перезагрузку таблиц привилегий. На все вопросы ответьте y. [Шаг 7: установка PHP] Добавьте SURY PPA для PHP 8.1: $ sudo apt -y install lsb-release apt-transport-https ca-certificates Теперь вы можете добавить PPA к пакетам сервера: $ echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list Обновите и установите PHP 8.1: $ sudo apt update Как только вы установили PHP, можете проверить его версию следующей командой: php -v [Шаг 8: конфигурация PHP] Теперь мы сконфигурируем PHP для приложений Интернет (Web Applications) путем изменения некоторых значений в файле php.ini. Для PHP 8.1 с Apache файл php.ini будет находиться в следующей директории: $ sudo nano /etc/php/8.1/apache2/php.ini Нажмите F6 для поиска в редакторе, и обновите следующие значения с целью повышения производительности. upload_max_filesize = 32M После того, как вы изменили ваши настройки PHP, нужно перезапустить Apache, чтобы изменения вступили в силу. [Шаг 9: конфигурация Apache] Запретите конфигурацию Apache по умолчанию: $ sudo a2dissite 000-default Создайте директории веб-сайта (вместо domainname укажите реальное имя вашего зарегистрированного домена): $ sudo mkdir -p /var/www/html/domainname/public Настройте для этих директорий корректные разрешения доступа: $ sudo chmod -R 755 /var/www/html/domainname Создайте файл для конфигурации нового виртуального хоста: $ sudo nano /etc/apache2/sites-available/domainname.conf Вставьте в этот новый файл следующие конфигурации: < VirtualHost *:80> DocumentRoot /var/www/html/domainname/public < Directory /var/www/html/domainname/public> ErrorLog ${APACHE_LOG_DIR}/error.log Разрешите новую конфигурацию: $ sudo a2ensite domainname.conf [Шаг 10: установка Let’s Encrypt SSL] HTTPS это протокол для защищенной коммуникации между сервером и клиентом (web-браузером). Благодаря введению Let's Encrypt, предоставляющего бесплатные SSL-сертификаты, HTTPS-запросы будут обрабатываться для всех клиентов, а также обеспечивается доверие вашей аудитории. Здесь мы установим Certbot для инсталляции Let’sEncrypt SSL с помощью Snap. $ sudo apt update Установка инструментария Certbot: $ sudo snap install --classic certbot Конфигурирование Certbot для исполнения, как команды: $ sudo ln -s /snap/bin/certbot /usr/bin/certbot Теперь у нас установлен Certbot, который запускает Let’s Encrypt для Debian 11. Выполните следующую команду для установки ваших сертификатов: $ sudo certbot --apache --agree-tos --redirect -m youremail@email.com -d domainname.com -d www.domainname.com Выберите подходящую опцию и нажмите Enter. Эта команда установит Free SSL, сконфигурирует перенаправление для HTTPS и перезапустит сервер Apache. [Шаг 11: обновление сертификата SSL] Сертификаты, которые предоставляет Let’s Encrypt, действительны только в течение 90 дней, так что их понадобится специально обновлять. Проверьте функцию обновления следующей командой: $ sudo certbot renew --dry-run Эта команда проверит, истек ли срок действия сертификата, и сконфигурирует функцию автоматического обновления (auto-renewable feature). [Шаг 12: проверка всей установки] После того, как вы выполнили все шаги 1 .. 11, для проверки можно создать новый тестовый файл PHP в директории вашего web-сервера: $ sudo nano /var/www/html/domainname/public/info.php Вставьте в этот файл следующий код, и сохраните файл: < ?php phpinfo(); Теперь откройте в браузере ссылку на этот файл (domainname.com/info.php). Вы увидите, что обработка ссылки была выполнена как запрос HTTPS, и откроется страничка с информацией о PHP. [Ссылки] 1. How to Install LAMP Apache, MySQL, PHP on Debian 11 site:cloudbooklet.com. |