Из этой инструкции вы узнаете, как установить 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
Для выхода запустите
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
Я надеюсь, что эта статья кому-то помогла, поставьте оценку, и не забудьте прокоментировать.