# Установка программного стека 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 Start»

# Создание виртуального хоста 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

После сохранения изменений и передачи прав на файл веб-серверу можно зайти в браузере на наш адрес и проверить, что индексная страница отображается:

«Apache index»

# Установка 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 info»

После завершения установки 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) найдём нужную версию, например, последнюю из доступных на данный момент:

«phpMyAdmin_of»

Скачаем архив с ней на наш сервер:

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_of»

Наш сервер полностью готов к работе. У нас установлены веб-сервер, интерпретатор, СУБД и phpMyAdmin — это минимальный набор, обеспечивающий высокую гибкость и функциональность при работе с сервером.