Из этой инструкции вы узнаете, как установить LAMP в CentOS 8 и RHEL 8.

Что такое LAMP?

Программный стек – это набор программных инструментов, связанных вместе. LAMP расшифровывается как L inux, A pache, M ariaDB / M ySQL и P HP, все они поставляются с открытым исходным кодом. Это самый распространенный программный стек для динамических веб-сайтов и веб-приложений. Linux это операционная система; Apache – веб-сервер; MariaDB / MySQL – это сервер базы данных, а PHP – это язык сценариев на стороне сервера, отвечающий за создание динамических веб-страниц.

В этом руководстве используется учетная запись root для управления задачами администрирования. Чтобы переключиться на root, выполните следующую команду в терминале и введите пароль root.

su -

1. Обновление пакетов программного обеспечения

Перед установкой стека LAMP рекомендуется выполнить следующую команду для обновления репозитория и пакетов программного обеспечения.

yum update

2: Установите веб-сервер Apache в CentOS 8 / RHEL 8

Введите следующую команду для установки веб-сервера Apache. httpd-tools Пакет установит некоторые полезные утилиты, такие как Apache HTTP сервера бенчмаркинг инструмент.

yum install httpd httpd-tools

После установки, мы можем запустить Apache с помощью этой команды:

systemctl start httpd

Включите Apache для автоматического запуска во время загрузки системы, выполнив следующую команду.

systemctl enable httpd

Теперь проверьте его статус.

systemctl status httpd

Вывод в терминале:

httpd.service - The Apache HTTP Server    
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; enabled; vendor preset: disabled)    
   Active: active (running) since Sat 2019-10-12 06:43:15 UTC; 14s ago      
   Docs: man:httpd.service(8)  Main PID: 14515 (httpd)    Status: "Running, listening on: port 80"     
   Tasks: 213 (limit: 5092)    
   Memory: 24.8M    
   CGroup: /system.slice/httpd.service            
      ├─14515 /usr/sbin/httpd -DFOREGROUND            
      ├─14516 /usr/sbin/httpd -DFOREGROUND            
      ├─14517 /usr/sbin/httpd -DFOREGROUND            
      ├─14518 /usr/sbin/httpd -DFOREGROUND            
      └─14519 /usr/sbin/httpd -DFOREGROUND 

«enabled» означает, что автоматический запуск во время загрузки включен.

Подсказка: если приведенная выше команда не завершается сразу после запуска. Вам нужно нажать « q », чтобы выйти.

Проверьте версию Apache.

httpd -v

Выход команды в терминале:

Server version: Apache/2.4.37 (centos) 
Server built: Oct 7 2019 21:42:02

Чтобы проверить, правильно ли работает веб-сервер Apache, мы можем создать файл index.html в корневом каталоге документа ( /var/www/html/) с помощью следующей команды.

echo "Welcome to this site!" > /var/www/html/index.html

Если вы устанавливаете LAMP на локальный компьютер CentOS 8 / RHEL 8, введите 127.0.0.1 или localhost в адресной строке браузера. Вы должны увидеть приветственное сообщение, которое означает, что веб-сервер Apache работает правильно.

По умолчанию CentOS 8 / RHEL 8 запрещает публичный доступ к порту 80. Чтобы разрешить другим компьютерам доступ к веб-странице, нам нужно открыть порт 80 в firewalld, динамическом диспетчере брандмауэров в RHEL / CentOS. Выполните следующую команду, чтобы открыть порт 80.

firewall-cmd --permanent --zone=public --add-service=http

Если вы хотите включить HTTPS на Apache, вам также нужно открыть порт 443.

firewall-cmd --permanent --zone=public --add-service=https

Затем перезагрузите демон брандмауэра, чтобы изменения вступили в силу.

systemctl reload firewalld

Теперь веб-страница Apache доступна публично.

Наконец, нам нужно сделать пользователя apache владельцем веб-каталога. По умолчанию он принадлежит пользователю root.

chown apache:apache /var/www/html -R

3: Установите сервер базы данных MariaDB в CentOS 8 / RHEL 8

MariaDB – это полная замена MySQL. Он разработан бывшими членами команды MySQL, которые обеспокоены тем, что Oracle может превратить MySQL в продукт с закрытым исходным кодом.

Введите следующую команду, чтобы установить MariaDB в CentOS 8 / RHEL 8.

yum install mariadb-server mariadb -y

После того, как он установлен, нам нужно его запустить.

systemctl start mariadb

Включить автозапуск во время загрузки системы.

systemctl enable mariadb

Проверь состояние:

systemctl status mariadb

Выход команды в терминале:

mariadb.service - MariaDB 10.3 database server    
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)    
   Active: active (running) since Sat 2019-10-12 09:02:53 UTC; 33s ago      
   Docs: man:mysqld(8)            https://mariadb.com/kb/en/library/systemd/  
   Main PID: 18608 (mysqld)    
   Status: "Taking your SQL requests now..."     
   Tasks: 30 (limit: 5092)    
   Memory: 77.0M    
   CGroup: /system.slice/mariadb.service            
      └─18608 /usr/libexec/mysqld --basedir=/usr

« Enabled» означает, что автоматический запуск во время загрузки включен, и мы видим, что сервер MariaDB работает. Теперь нам нужно запустить скрипт безопасности.

mysql_secure_installation

Когда появится запрос на ввод пароля root для MariaDB, нажмите клавишу Enter, поскольку пароль root еще не установлен. Затем введите, ‘y’ чтобы установить пароль root для сервера MariaDB.

Далее вы можете нажать Enter, чтобы ответить на все оставшиеся вопросы, что приведет к удалению анонимного пользователя, отключению удаленного входа в систему root и удалению тестовой базы данных. Этот шаг является основным требованием для безопасности базы данных MariaDB. (Обратите внимание, что заглавная буква Y, означает ответ по умолчанию.)

Теперь вы можете запустить следующую команду и ввести корневой пароль MariaDB для входа в оболочку MariaDB.

mysql -u root -p
mysql -u root -p

Для выхода запустите

exit;

4: Установите PHP в CentOS 8 / RHEL 8

Установите PHP и некоторые распространенные модули, используя следующую команду.

yum install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring -y

Веб-сервер Apache на CentOS 8 / RHEL 8 по умолчанию использует PHP-FPM вместо mod_php для запуска кода PHP, поэтому в приведенной выше команде мы также установили php-fpm.

После того, как он установлен, нам нужно его запустить.

systemctl start php-fpm

Включить автозапуск во время загрузки системы.

systemctl enable php-fpm

Проверь состояние:

systemctl status php-fpm

Выход команды в терминале:

php-fpm.service - The PHP FastCGI Process Manager    
   Loaded: loaded (/usr/lib/systemd/system/php-fpm.service; enabled; vendor preset: disabled)    
   Active: active (running) since Sat 2019-10-12 09:54:37 UTC; 3s ago  
   Main PID: 19755 (php-fpm)    
   Status: "Ready to handle connections"     
   Tasks: 6 (limit: 5092)    
   Memory: 24.5M    
   CGroup: /system.slice/php-fpm.service            
      ├─19755 php-fpm: master process (/etc/php-fpm.conf)                
      ├─19757 php-fpm: pool www            
      ├─19758 php-fpm: pool www            
      ├─19759 php-fpm: pool www            
      ├─19760 php-fpm: pool www            
      └─19761 php-fpm: pool www

« enabled» означает, что автоматический запуск во время загрузки включен, и мы видим, что PHP-FPM работает.

Перезапустите веб-сервер командой

systemctl restart httpd

Нам также необходимо выполнить следующую команду, чтобы сообщить SELinux, что Apache должен выполнять код PHP через PHP-FPM.

setsebool -P httpd_execmem 1

5: Тестирование PHP

Чтобы протестировать PHP-FPM с веб-сервером Apache, нам нужно создать info.php файл в корневом каталоге документа.

nano /var/www/html/info.php

Вставьте следующий PHP-код в файл.

<?php phpinfo(); ?>

Сохраните и закройте файл. Если вы установили LAMP на локальном сервере CentOS 8 / RHEL 8, введите 127.0.0.1/info.php или localhost/info.php в адресной строке браузера. Вы должны увидеть информацию о PHP вашего сервера. Это означает, что PHP-скрипты работают правильно с веб-сервером Apache.

Если RHEL 8 / CentOS работает на удаленном сервере, то введите server-ip-address/info.php в адресной строке браузера. Замените sever-ip-address на ваш фактический IP-адрес.

Если браузер не отображает информацию PHP, но предлагает загрузить файл info.php , просто перезапустите Apache и PHP-FPM

sudo systemctl restart httpd php-fpm

Завершение

Поздравляю! Вы успешно установили Apache, MariaDB и PHP7.2 в Red Hat 8 или CentOS 8. Для безопасности вашего сервера вы должны удалить файл info.php, чтобы хакер не увидел его.

rm /var/www/html/info.php

Я надеюсь, что эта статья кому-то помогла, поставьте оценку, и не забудьте прокоментировать.