LAMP на Ubuntu 20.04
|
Программный стек — это набор программных инструментов, объединенных вместе. LAMP означает Linux, Apache, MySQL/MariaDB и PHP, все они имеют открытый исходный код и бесплатны для использования. Это наиболее распространенный программный стек, который поддерживает динамические веб-сайты и веб-приложения. Linux — это операционная система; Apache — это веб-сервер; MySQL/MariaDB — это сервер базы данных, а 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
Теперь нам нужно установить www-data (пользователя Apache) в качестве владельца корня папку (иначе известного как веб-корень). По умолчанию он принадлежит пользователю root.
chown www-data:www-data /var/www/html/ -R
Проведем тестирование работы веб-сервера, запустив
sudo apache2ctl configtest или apache2ctl -t
По умолчанию Apache использует системное имя хоста в качестве своего глобального файла ServerName. Если системное имя хоста не может быть разрешено в DNS, вы вероятно, увидите следующую ошибку после запуска команды apache2ctl -t.
Чтобы решить эту проблему, мы можем установить глобальный файл ServerName в Apache. Используйте текстовый редактор «nano», чтобы создать новый файл конфигурации.
nano /etc/apache2/conf-available/servername.conf
Добавьте следующую строку в этот файл:
ServerName localhost
Сохраните и закройте файл. Нажмите Ctrl+X, затем нажмите Enter для подтверждения. Затем включите конфиг файл командой:
a2enconf servername.conf
Перезагрузите Apache, чтобы изменения вступили в силу:
systemctl reload apache2
Теперь, если вы снова выполните команду apache2ctl -t , вы не увидите приведенное выше сообщение об ошибке.
Теперь введите IP-адрес вашего сервера в адресной строке браузера. Вы должны увидеть надпись «It works!» Веб-страница, что означает, что веб-сервер Apache работает правильно.
Установка MySQL
Следующим действием будет добавление базы данных MySQL, что также производится через стандартную консоль с помощью имеющихся в системе команд.
sudo apt-get install mysql-server
И подтвердите добавление новых файлов.
Обязательно следует обезопасить использование окружения MySQL, поэтому обеспечьте защиту с помощью отдельного дополнения, которое устанавливается через
sudo mysql_secure_installation.
Установка настроек плагина для требований паролей не имеет единой инструкции, поскольку каждый пользователь отталкивается от собственных решений в плане валидации. Если хотите инсталлировать требования, введите в консоль y при запросе.
Далее потребуется выбрать уровень защиты. Сначала ознакомьтесь с описанием каждого параметра, а затем выберите наиболее подходящий.
Установите новый пароль для обеспечения рут-доступа.
Далее перед вами будут отображаться различные настройки безопасности, прочтите их и примите или откажитесь, если посчитаете это необходимым.
С описанием другого метода инсталляции советуем ознакомиться в отдельной нашей статье, которую вы найдете по следующей ссылке.
Читайте также: Руководство по установке MySQL в Ubuntu
Или - Установка сервера базы данных 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
sudo a2enmod rewrite systemctl restart apache2
Проверьте информацию о версии PHP:
php --version
Видим что мы установили правильно, версию PHP 7.4.
Чтобы протестировать сценарии PHP с сервером Apache, нам нужно создать файл info.php в корневой папке веб сервера откуда на него смотрят посетители.
nano /var/www/html/info.php
Вставьте следующий код PHP в файл:
<?php phpinfo(); ?>
Теперь заходим на инфо страницу помощью ссылки:
http://IP-АДРЕС/info.php
Вы должны увидеть информацию PHP вашего сервера. Это означает, что PHP-скрипты могут правильно работать с веб-сервером Apache.
PHPmyadmin
Управление базами данных и реализация веб-интерфейса осуществляется с помощью бесплатного инструмента PHPmyadmin, который также желательно установить во время настройки LAMP. Для начала введите команду
sudo apt-get install phpmyadmin php-mbstring php-gettext.
Подтвердите добавление новых файлов, выбрав соответствующий вариант.
Укажите веб-сервер «Apache2» и нажмите на «ОК».
Вам предложат настроить базу данных через специальную команду, если это нужно, выберите положительный вариант ответа.
Придумайте пароль для регистрации на сервере баз данных, после чего его нужно будет подтвердить путем повторного ввода.
Полное описание тут
Как запустить 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