Как установить сервер LAMP на RHEL, CentOS, Rocky и AlmaLinux

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-адреса для конфигурации сети.

Шаг 1: Установка веб-сервера Apache

1. После выполнения минимальной системной установки и настройки сетевого интерфейса сервера с Статическим IP-адресом, продолжайте установку бинарного пакета сервиса Apache (httpd), предоставленного из официальных репозиториев, с помощью следующего команды yum.

# yum install httpd
Install Apache on Linux

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

# systemctl start httpd
# systemctl enable httpd
# systemctl status httpd
Manage Apache in Linux

3. На следующем шаге убедитесь, что доступ к Apache разрешен, открыв порты 80 и 443 на Firewall с помощью firewall-cmd, который является стандартной командой для управления Firewalld через демон.

# firewall-cmd --add-service=http
# firewall-cmd --add-service=https
# systemctl restart firewalld
NOTE: Make notice that using this rule will lose its effect after a system reboot or firewalld service restart because it opens on-fly rules, which are not applied permanently.

Для обеспечения согласованности правил iptables на firewall используйте опцию --permanent и перезапустите службу firewalld для вступления в силу.

# firewall-cmd --permanent --add-service=http
# firewall-cmd --permanent --add-service=https
# systemctl restart firewalld
Open Apache Ports in 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
Verify Apache in Linux

5. На данный момент путь DocumentRoot Apache установлен на системный путь /var/www/html, который по умолчанию не предоставляет никакого файла индекса. Если вы хотите увидеть список директорий вашего DocumentRoot пути.

Откройте конфигурационный файл Apache welcome и установите утверждение Indexes с на + в директиве LocationMatch, используя приведенный ниже скриншот в качестве примера.

# vi /etc/httpd/conf.d/welcome.conf
Configure Apache Welcome Page

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

# systemctl restart httpd
Apache Directory Listing

Шаг2: Установка поддержки PHP для Apache

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

# yum search php
List PHP Modules

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

# yum install php php-mysql php-pdo php-gd php-mbstring
Install PHP Modules

9. Чтобы получить полный список информации о PHP из вашего браузера, создайте файл info.php в корне документов Apache, используя следующую команду, перезапустите службу httpd и направьте свой браузер на адрес http://server_IP/info.php.

# echo "<?php phpinfo(); ?>" > /var/www/html/info.php
# systemctl restart httpd
List PHP Information

10. Если возникает ошибка с PHP Date и Timezone, откройте файл настройки php.ini, найдите и раскомментируйте выражение date.timezone, добавьте ваше физическое местоположение и перезапустите демон Apache.

# vi /etc/php.ini

Найдите и измените строку date.timezone, чтобы она выглядела так, используя список PHP поддерживаемых часовых поясов.

date.timezone = Continent/City
Set PHP Timezone

Шаг 3: Установка и настройка базы данных MariaDB

11. Дистрибутив RHEL перешел от MySQL к MariaDB в качестве своей системы управления базами данных по умолчанию. Для установки базы данных MariaDB используйте следующую команду.

# yum install mariadb-server mariadb
Install MariaDB on Linux

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

# systemctl start mariadb
# systemctl enable mariadb
# systemctl status mariadb
# mysql_secure_installation
Manage MariaDB Service
Secure MariaDB in Linux

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

mysql -u root -p
MariaDB > show databases;
MariaDB > quit
Connect MariaDB to Linux

Шаг 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
Install PhpMyAdmin on Linux

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>
Allow Remote PhpMyAdmin Access

16. Чтобы иметь возможность войти в веб-интерфейс PhpMyAdmin, перезапустите службу веб-сервера Apache и перейдите по адресу URL.

# systemctl restart httpd

http://server_IP/phpmyadmin/
PhpMyAdmin Dashboard

Шаг 5: Включение LAMP системы на уровне системы в Linux

17. Если вам нужно, чтобы службы MariaDB и Apache запускались автоматически после перезагрузки, выполните следующие команды, чтобы включить их на уровне системы.

# systemctl enable mariadb
# systemctl enable httpd

Всё, что нужно для базовой установки LAMP на дистрибутивах на основе RHEL. Следующие статьи серии, связанные со стеком LAMP, будут обсуждать, как создать виртуальные хосты, сгенерировать SSL-сертификаты и ключи, а также добавить поддержку SSL-транзакций для сервера Apache HTTP.

Source:
https://www.tecmint.com/install-lamp-server-linux/