A LAMP stack is a collection of four different software (Linux, Apache, MySQL, and PHP) that programmers or web developers use to create and deploy websites or applications.
Этот учебник будет сосредоточен на том, как установить и настроить известный стек LAMP с PhpMyAdmin на последнем выпуске RHEL и дистрибутивах, основанных на RHEL, таких как CentOS, Oracle Linux, Rocky и AlmaLinux.
Содержание
Требования
В зависимости от используемого дистрибутива, используйте следующие ссылки для выполнения минимальной системной установки с использованием статического IP-адреса для конфигурации сети.
- Как бесплатно скачать и установить RHEL 9
- Как бесплатно скачать и установить RHEL 8
- Установка CentOS Stream 9 Linux
- Установка CentOS 7 Linux
- Как пошагово установить Rocky Linux 9
- Как пошагово установить AlmaLinux 9
Шаг 1: Установка веб-сервера Apache
1. После выполнения минимальной системной установки и настройки сетевого интерфейса сервера с Статическим IP-адресом, продолжайте установку бинарного пакета сервиса Apache (httpd), предоставленного из официальных репозиториев, с помощью следующего команды yum.
# yum install httpd

2. После завершения установки Apache, используйте следующие команды для управления демон-демоном Apache, поскольку RHEL и CentOS оба перенесли свои скрипты инициализации с SysV на Systemd– Почему init был заменен на Systemd в Linux?.
# systemctl start httpd # systemctl enable httpd # systemctl status httpd

3. На следующем шаге убедитесь, что доступ к Apache разрешен, открыв порты 80 и 443 на Firewall с помощью firewall-cmd, который является стандартной командой для управления Firewalld через демон.
# firewall-cmd --add-service=http # firewall-cmd --add-service=https # systemctl restart firewalld
Для обеспечения согласованности правил iptables на firewall используйте опцию --permanent
и перезапустите службу firewalld для вступления в силу.
# firewall-cmd --permanent --add-service=http # firewall-cmd --permanent --add-service=https # systemctl restart firewalld

Некоторые важные команды Firewalld для управления брандмауэром, представленные ниже:
# firewall-cmd --state # firewall-cmd --list-all # firewall-cmd --list-interfaces # firewall-cmd --get-service # firewall-cmd --query-service service_name # firewall-cmd --add-port=80/tcp
4. Для проверки работоспособности Apache откройте удаленный браузер и введите IP-адрес вашего сервера, используя протокол HTTP в URL, и должна появиться дефолтная страница, как на скриншоте ниже.
http://server_IP

5. На данный момент путь DocumentRoot Apache установлен на системный путь /var/www/html, который по умолчанию не предоставляет никакого файла индекса. Если вы хотите увидеть список директорий вашего DocumentRoot пути.
Откройте конфигурационный файл Apache welcome и установите утверждение Indexes с –
на +
в директиве LocationMatch, используя приведенный ниже скриншот в качестве примера.
# vi /etc/httpd/conf.d/welcome.conf

6. После внесения изменений закройте файл, перезапустите службу Apache для отражения изменений и обновите страницу браузера, чтобы увидеть окончательный результат.
# systemctl restart httpd

Шаг2: Установка поддержки PHP для Apache
7. Перед установкой поддержки динамического языка PHP для Apache, получите полный список доступных модулей и расширений PHP, используя следующую команду.
# yum search php

8. В зависимости от того, какие приложения вы хотите использовать, установите необходимые модули PHP из вышеприведенного списка, но для базовой поддержки MySQL/MariaDB в PHP и PhpMyAdmin вам необходимо установить следующие модули.
# yum install php php-mysql php-pdo php-gd php-mbstring

9. Чтобы получить полный список информации о PHP из вашего браузера, создайте файл info.php в корне документов Apache, используя следующую команду, перезапустите службу httpd и направьте свой браузер на адрес http://server_IP/info.php.
# echo "<?php phpinfo(); ?>" > /var/www/html/info.php # systemctl restart httpd

10. Если возникает ошибка с PHP Date и Timezone, откройте файл настройки php.ini, найдите и раскомментируйте выражение date.timezone, добавьте ваше физическое местоположение и перезапустите демон Apache.
# vi /etc/php.ini
Найдите и измените строку date.timezone, чтобы она выглядела так, используя список PHP поддерживаемых часовых поясов.
date.timezone = Continent/City

Шаг 3: Установка и настройка базы данных MariaDB
11. Дистрибутив RHEL перешел от MySQL к MariaDB в качестве своей системы управления базами данных по умолчанию. Для установки базы данных MariaDB используйте следующую команду.
# yum install mariadb-server mariadb

12. После установки пакета MariaDB запустите демон базы данных и используйте скрипт mysql_secure_installation для обеспечения безопасности базы данных (установите пароль для root, отключите удаленный вход от root, удалите тестовую базу данных и удалите анонимных пользователей).
# systemctl start mariadb # systemctl enable mariadb # systemctl status mariadb # mysql_secure_installation


13. Для проверки функциональности базы данных войдите в MariaDB с помощью его учетной записи root и выйдите, используя выражение quit.
mysql -u root -p MariaDB > show databases; MariaDB > quit

Шаг 4: Установка PhpMyAdmin для управления MySQL
14. По умолчанию официальные репозитории не предоставляют бинарных пакетов для веб-интерфейса PhpMyAdmin. Если вы не уверены в использовании командной строки MySQL для управления своей базой данных, вы можете установить пакет PhpMyAdmin, включив репозиторий remi с помощью следующей команды.
# yum install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm [On CentOS/RHEL 8] # yum install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm [On CentOS/RHEL 8] # yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm [On CentOS/RHEL 7]
После включения репозитория remi установите PhpMyAdmin.
# yum install phpmyadmin

15. Затем настройте PhpMyAdmin для разрешения подключений с удаленных хостов, отредактировав файл phpmyadmin.conf, расположенный в директории conf.d Apache, закомментировав следующие строки.
# vi /etc/httpd/conf.d/phpMyAdmin.conf
Добавьте строку «Require all granted» под строкой «Require local», как показано.
<Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 Require local Require all granted </Directory>

16. Чтобы иметь возможность войти в веб-интерфейс PhpMyAdmin, перезапустите службу веб-сервера Apache и перейдите по адресу URL.
# systemctl restart httpd http://server_IP/phpmyadmin/

Шаг 5: Включение LAMP системы на уровне системы в Linux
17. Если вам нужно, чтобы службы MariaDB и Apache запускались автоматически после перезагрузки, выполните следующие команды, чтобы включить их на уровне системы.
# systemctl enable mariadb # systemctl enable httpd
Всё, что нужно для базовой установки LAMP на дистрибутивах на основе RHEL. Следующие статьи серии, связанные со стеком LAMP, будут обсуждать, как создать виртуальные хосты, сгенерировать SSL-сертификаты и ключи, а также добавить поддержку SSL-транзакций для сервера Apache HTTP.