# Установка программного стека LAMP на CentOS 8
Linux-сервер с установленным веб-сервером Apache, интерпретатором PHP и СУБД MySQL — одна из наиболее популярных серверных конфигураций на данный момент.
В этой инструкции мы расскажем, как установить программный стек LAMP (Linux + Apache + MySQL + PHP) на подготовленный к работе сервер под управлением CentOS 8 Stream.
Основное отличие с CentOS 8 от 7 версии — смена пакетного менеджера yum на dnf. При выпуске новой версии ОС разработчики добавили трансляцию синтаксиса. Если вы привыкли работать с CentOS, используя yum, синтаксис для вас останется привычным, только в CentOS 8 при указании в терминале yum запускаться будет dnf.
# Установка веб-сервера
Сначала обновим список доступных для установки пакетов:
sudo dnf update
После обновления списка переходим непосредственно к установке Apache:
sudo dnf install httpd
После завершения установки запустим Apache и добавим его в автозагрузку:
sudo systemctl start httpd
sudo systemctl enable httpd
Теперь можно проверить, что Apache установлен и прослушивает 80 порт (по умолчанию).
Установим несколько дополнительных утилит для работы с сетью:
sudo dnf install net-tools
Когда пакет установится, проверим занятые порты командой:
sudo netstat -tulpn | grep httpd
Эта команда выведет в консоль порты, которые прослушивает Apache:
# Output
tcp6 0 0 :::80 :::* LISTEN 29239/httpd
Apache установлен и прослушивает 80 порт.
Можно зайти на свой сервер и проверить стартовую страницу Apache. Для этого в браузере укажите IP или доменное имя своего адреса.
Примечание
Если ваш VPS расположен на Джино, для проверки стартовой страницы Apache можно воспользоваться техническим адресом.
# Создание виртуального хоста Apache
После запуска Apache можно сразу же создать несколько директорий, в которых будет располагаться наш сайт:
sudo mkdir -p /web/sites/example.com/www
sudo mkdir -p /web/sites/example.com/log
Затем передадим права на эти директории веб-серверу:
sudo chown -R apache. /web/sites/
Когда нужные директории созданы, проверим работу конфигурационного файла Apache. Откроем его и проверим, активна ли строка IncludeOptional conf.d/*.conf
:
sudo vi /etc/httpd/conf./httpd.conf
Если строка неактивна, раскомментируем её (уберём # перед ней).
После этого переходим в etc/httpd/conf.d
и создаём там конфигурационный файл с нашим доменным именем:
sudo vi /etc/httpd/conf.d/example.com.conf
Это будет конфигурационный файл виртуального хоста нашего сайта. Его содержимое будет следующим:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
DocumentRoot /web/sites/example.com/www
ErrorLog /web/sites/example.comlog/error.log
CustomLog /web/sites/example.com/log/access.log common
<Directory /web/sites/example.com/www>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Сохраним новый конфигурационный файл и проверим конфигурацию Apache:
apachectl -t
Syntax OK
Теперь нужно перезагрузить Apache, чтобы новый конфигурационный файл вступил в силу:
sudo systemctl restart httpd
Чтобы проверить работу нового виртуального хоста, создадим индексный файл для него:
sudo vi /web/sites/example.com/www/index.html
<h1> Virtual host for example.com is working </h1>
Передадим права на него веб-серверу:
sudo chown apache. /web/sites/example.com/www/index.html
После сохранения изменений и передачи прав на файл веб-серверу можно зайти в браузере на наш адрес и проверить, что индексная страница отображается:
# Установка php
По умолчанию в CentOS устанавливается версия php 7.2. Как правило, её возможностей достаточно для решения большинства задач, поэтому описание обновления версии php 7.4 мы вынесем в отдельную инструкцию.
Установим php и некоторые дополнительные модули, которые могут пригодиться, с помощью dnf:
sudo dnf install php php-cli php-mysqlnd
У каждого администратора свой предпочитаемый набор дополнительных модулей, поэтому список может быть длиннее и включать разные модули.
После завершения установки перезапустим Apache:
sudo systemctl restart httpd
Далее создадим новый индексный файл для проверки работы php:
sudo vi /web/sites/example.com/www/index.php
Его содержимое будет таким:
<?php phpinfo(); ?>
Теперь передадим права на этот файл веб-серверу:
sudo chown -R /web/sites/example.com/www/index.php
Проверим, что скрипт работает. В адресной строке браузера введём example.com/index.php
. Если всё работает правильно, мы увидим страницу с информацией о нашем веб-сервере:
После завершения установки php можно переходить к установке СУБД, которая будет работать с нашими базами данных.
# Установка MySQL
В данном примере мы будем устанавливать MariaDB — это форк MySQL с полной поддержкой.
sudo dnf install mariadb mariadb-server
Команда установит СУБД и дополнительный модуль, поддерживающий сетевую работу СУБД.
После установки MariDB запустим её и добавим в автозагрузку:
sudo systemctl start maridb
sudo systemctl enable mariadb
В MariaDB есть скрипт, помогающий провести первичную настройку MariaDB и сделать работу с ней безопаснее. Он проверяет на устойчивость пароль root-пользователя, удаляет тестовые базы данных и случайных пользователей, которые могли создаться при установке. Запустим этот скрипт, чтобы настроить нашу СУБД:
sudo /usr/bin/mysql-secure-installation
Когда первичная настройка будет выполнена, перейдём к установке phpMyAdmin. Это сделает работу с базами более удобной.
# Установка phpMyAdmin
Перед началом установки создадим необходимые для работы phpMyAdmin директории:
mkdir -p /web/sites/phpma.example.com/www
mkdir -p /web/sites/phpma.example.comlog
Теперь создадим виртуальный хост Apache для размещения phpMyAdmin:
sudo vi /etc/httpd/conf.d/phpma.example.com.conf
Содержимое файла с виртуальным хостом будет следующим:
<VirtualHost *:80>
ServerName phpma.example.com
DocumentRoot /web/sites/phpma.example.com/www
ErrorLog /web/sites/phpma.example.com/log/error.log
CustomLog /web/sites/phpma.example.com/log/access.log common
<Directory /web/sites/phpma.example.com/www>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
После сохранения файла перезапустим веб-сервер:
sudo systemctl restart httpd
Теперь можно скачать ту версию phpMyAdmin, которая нас устраивает. Для этого на официальной странице phpMyAdmin (opens new window) найдём нужную версию, например, последнюю из доступных на данный момент:
Скачаем архив с ней на наш сервер:
cd ~
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip
Архив имеет разрешение .zip. Если на сервере ещё нет архиватора, установим его:
sudo dnf install unzip
Распакуем скачанный архив, переместим его в созданную для него директорию и передадим права на неё веб-серверу:
unzip phpMyAdmin-5.1.3-all-languages.zip
sudo cp -R phpMyAdmin-5.1.3-all-languages.zip/* /web/sites/phpma.ovz39.j65516585.m29on.vps.myjino.ru/www
sudo chown -R apache. /web/sites/phpma.ovz39.j65516585.m29on.vps.myjino.ru/www
Теперь можно зайти на созданный домен в браузере и проверить, что phpMyAdmin запущен и работает:
Наш сервер полностью готов к работе. У нас установлены веб-сервер, интерпретатор, СУБД и phpMyAdmin — это минимальный набор, обеспечивающий высокую гибкость и функциональность при работе с сервером.