В этом руководстве мы покажем вам, как установить стек LAMP в Ubuntu 20.04 LTS. Программный стек — это набор программных инструментов, объединенных вместе. LAMP означает Linux, Apache, MariaDB/MySQL и PHP, все они имеют открытый исходный код и бесплатны для использования. Это наиболее распространенный программный стек, который поддерживает динамические веб-сайты и веб-приложения. Linux — это операционная система; Apache — это веб-сервер; MariaDB/MySQL — это сервер базы данных, а PHP — это серверный язык сценариев, отвечающий за создание динамических веб-страниц.
Обновление пакетов программного обеспечения
Прежде чем мы установим стек LAMP, рекомендуется обновить репозиторий и пакеты программного обеспечения. Выполните следующую команду:
apt update && apt upgrade
У нас обновлении не было и мы продолжаем сразу дальше.
Установка веб-сервера Apache
Введите следующую команду, чтобы установить веб-сервер Apache. Пакет apache2-utils
установит некоторые полезные утилиты, такие как инструмент для тестирования HTTP-сервера Apache (ab).
apt install -y apache2 apache2-utils
После установки Apache должен автоматически запуститься. Проверьте его статус с помощью systemctl.
systemctl status apache2
Если она не запущена, используйте systemctl для его запуска.
systemctl start apache2
Также рекомендуется включить автоматический запуск Apache во время загрузки системы командой ниже:
systemctl enable apache2
Проверьте версию Apache:
apache2 -v
Теперь введите IP-адрес вашего сервера в адресной строке браузера. Вы должны увидеть надпись «It works!» Веб-страница, что означает, что веб-сервер Apache работает правильно.
Теперь нам нужно установить www-data (пользователя Apache) в качестве владельца корня папку (иначе известного как веб-корень). По умолчанию он принадлежит пользователю root.
chown www-data:www-data /var/www/html/ -R
По умолчанию Apache использует системное имя хоста в качестве своего глобального файла ServerName. Если системное имя хоста не может быть разрешено в DNS, вы вероятно, увидите следующую ошибку после запуска команды apache2ctl -t.
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
Чтобы решить эту проблему, мы можем установить глобальный файл ServerName в Apache. Используйте текстовый редактор «nano», чтобы создать новый файл конфигурации.
nano /etc/apache2/conf-available/servername.conf
Добавьте следующую строку в этот файл:
ServerName localhost
Сохраните и закройте файл. Нажмите Ctrl+X, затем нажмите Enter для подтверждения. Затем включите конфиг файл командой:
a2enconf servername.conf
Перезагрузите Apache, чтобы изменения вступили в силу:
Теперь, если вы снова выполните команду apache2ctl -t , вы не увидите приведенное выше сообщение об ошибке.
Установление сервера базы данных MariaDB
MariaDB является заменой MySQL. Он разработан бывшими членами команды MySQL, которые обеспокоены тем, что Oracle может превратить MySQL в продукт с закрытым исходным кодом. Введите следующую команду, чтобы установить MariaDB:
apt install mariadb-server mariadb-client
После установки сервер MariaDB должен автоматически запуститься. Используйте systemctl, чтобы проверить его статус:
systemctl status mariadb
Если он не запущен, запустите его с помощью этой команды:
systemctl start mariadb
Чтобы разрешить автоматический запуск MariaDB во время загрузки системы, выполните команду:
systemctl enable mariadb
Теперь запустите сценарий безопасности (настройки) после установки MariaDB, командой:
mysql_secure_installation
Когда он попросит вас ввести пароль root для MariaDB, нажмите клавишу Enter, так как пароль root еще не установлен. Затем введите y , чтобы установить пароль root для сервера MariaDB.
Затем можете нажать Enter, чтобы ответить на все оставшиеся вопросы, что приведет к удалению анонимного пользователя, отключению удаленного входа в систему root и удалению тестовой базы данных. Этот шаг является основным требованием для обеспечения безопасности базы данных MariaDB.
По умолчанию пакет MariaDB в Ubuntu использует unix_socketдля аутентификации пользователя при входе в систему, что в основном означает, что вы можете использовать имя пользователя и пароль ОС для входа в консоль MariaDB. Таким образом, вы можете запустить следующую команду для входа в систему, не предоставляя root-пароль MariaDB.
mariadb -u root
Для выхода из консоли MariaDB выполните команду:
exit;
Проверьте информацию о версии сервера MariaDB:
mariadb --version
Как видите, мы установили MariaDB, версию 10.3.38.
Установка PHP
PHP 7.4 является последней стабильной версией PHP для Ubuntu 20.04 и имеет незначительное преимущество в производительности по сравнению с PHP 7.3. Введите следующую команду, чтобы установить PHP 7.4 и некоторые распространенные модули PHP:
apt install php7.4 libapache2-mod-php7.4 php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline
Включите модуль Apache PHP 7.4, затем перезапустите веб-сервер Apache.
a2enmod php7.4 systemctl restart apache2
Проверьте информацию о версии PHP:
Видим что мы установили правильно, версию PHP 7.4.
Чтобы протестировать сценарии PHP с сервером Apache, нам нужно создать файл info.php в корневой папке веб сервера откуда на него смотрят посетители.
nano /var/www/html/info.php
Вставьте следующий код PHP в файл:
<?php phpinfo(); ?>
Теперь заходим на инфо страницу помощью ссылки:
http://IP-АДРЕС/info.php
Вы должны увидеть информацию PHP вашего сервера. Это означает, что PHP-скрипты могут правильно работать с веб-сервером Apache.
Как запустить PHP-FPM с Apache
уществует два основных способа запуска PHP-кода на веб-сервере Apache:
- PHP-модуль Apache
- PHP-FPM.
В приведенных выше шагах модуль Apache PHP 7.4 используется для обработки PHP-кода, что обычно нормально. Но в некоторых случаях вам нужно вместо этого запускать PHP-код с помощью PHP-FPM.
Отключите модуль Apache PHP 7.4 командой ниже:
a2dismod php7.4
Установите PHP-FPM с помощью командой:
apt install php7.4-fpm
Включите proxy_fcgiи и setenvif модуль командой:
a2enmod proxy_fcgi setenvif
Включите /etc/apache2/conf-available/php7.4-fpm.conf файл конфигурации:
a2enconf php7.4-fpm
Перезапустите Apache, чтобы изменения вступили в силу, используйте команду ниже:
systemctl restart apache2
Теперь, если вы обновите info.php страницу в своем браузере, вы обнаружите, что API-интерфейс сервера изменен с Apache 2.0 Handler на FPM/FastCGI, что означает, что веб-сервер Apache будет передавать запросы PHP в PHP-FPM.
Важно!!! В целях безопасности вашего сервера вам следует удалить info.php файл сейчас, чтобы предотвратить возможную атаку на слабые места вашего сервера с PHP.
rm /var/www/html/info.php
Заключение
Мы надеемся что для вас было очень полезно научить, как можно установить LAMP на свой сервер с ОС Ubuntu 20.04.