Доброго времени суток, уважаемые читатели. Сегодня тема статьи: "Установка LAMP в CentOS 7". Кроме того, для работы с базами данных, будет рассмотрена установка веб-приложения Phpmyadmin.

LAMP – это комплект серверного ПО (Linux, Apache, MySQL, PHP), готовая платформа для работы веб-сайтов или веб-приложений.

Создание инфраструктуры.

  • Для начала создадим директории для нашего веб-сайта или веб-приложения.
  • Будем использовать директорию /var/www, в качестве хранилища наших веб-ресурсов.
  • В директории www создаём первый каталог под веб-сайт, и называем его так же, как и доменное имя нашего сайта, чтобы не было путаницы, если сайтов будет несколько.
  • Для примера создадим каталог test.ru.
  • В основном каталоге создадим две директории: site – для файлов сайта, и log – для логов доступа и ошибок.
# mkdir -p /var/www/test.ru/{site,log}

Установка Apache.

  • Переходим к установке веб-сервера Apache.
# yum install httpd
  • После установки, запускаем Apache, и добавляем его в автозагрузку.
# sudo systemctl start httpd
# sudo systemctl enable httpd
запуск Apache и добавление его в автозагрузку
  • Делаем Apache владельцем директории /var/www/.
# chown -R apache. /var/www/
  • Теперь нужно создать конфигурационный файл для нашего сайта.
  • Идём в директорию /etc/httpd/conf.d/, и создаём файл test.ru.conf с таким содержанием:

<VirtualHost *:80>
ServerName test.ru
ServerAlias www.test.ru
DocumentRoot /var/www/test.ru/site
ErrorLog /var/www/test.ru/log/error.log
CustomLog /var/www/test.ru/log/access.log common
<Directory /var/www/test.ru/site>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
php_admin_value date.timezone 'Europe/Moscow'
php_admin_value max_execution_time 60
php_admin_value upload_max_filesize 30M
</VirtualHost>

настройка виртуального хоста для сайта
  • На этом с Apache, пока мы закончили.

Установка PHP.

  • Переходим к установке PHP.
  • Во внутреннем репозитории старые версии пакетов, поэтому будем подключать сторонний репозиторий Remi.
# rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
  • Теперь нужно установить дополнительные пакеты для пакетного менеджера yum.
# yum install yum-utils
  • По завершении установки, активируем remi-php73.
# yum-config-manager --enable remi-php73
  • Устанавливаем php, и некоторые компоненты.
# yum install php php-cli php-mysqlnd php-json php-gd php-ldap php-odbc php-pdo php-opcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap php-zip

Настройка брандмауэра.

  • Добавляем правило в файл /etc/sysconfig/iptables.
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
открытие 80 порта в брандмауэре
  • Перезапускаем iptables.
# systemctl restart iptables
  • Теперь можно перезагрузить Apache, и проверить его работоспособность.
# systemctl restart httpd
  • Открываем браузер, и заходим по ip-адресу или доменному имени.
  • Открывается страничка заглушка Apache. Правильно, ведь в директории /var/www/test.ru/site/ у нас пусто.
страничка заглушка Apache
  • Для проверки, создадим файл index.html, с текстом "Hello".
# echo "Hello" >> /var/www/test.ru/site/index.html
создание тестовой странички
  • Если теперь зайти через браузер, то вместо заглушки, будет белая страница с надписью Hello.

Установка mariadb.

  • В директории /etc/yum.repos.d/, создаём файл mariadb.repo с таким содержанием:
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
  • Запускаем установку сервера баз данных.
# yum install MariaDB-server MariaDB-client
  • По завершении установки, запускаем mariadb, и добавляем в автозагрузку.
# systemctl start mariadb
# systemctl enable mariadb
  • Открываем скрипт первоначальной настройки, и производим настройку.
# /usr/bin/mysql_secure_installation
  • Создаём пароль для root, и на все вопросы отвечаем Y.
  • На этом настройки сервера баз данных завершены.

Установка Phpmyadmin.

  • Прежде чем заняться phpmyadmin, нам нужно создать необходимые директории.
  • Установку будем производить на поддомен.
  • Создадим поддомен myadmin.test.ru. (Вы можете создать поддомен на своё усмотрение)
# mkdir -p /var/www/myadmin.test.ru/{site,log}
  • Далее нужно создать конфигурационный файл, по аналогии с файлом, который мы создавали для сайта test.ru.
  • Создаём файл /etc/httpd/conf.d/myadmin.test.ru.conf.

<VirtualHost *:80>
ServerName myadmin.test.ru
ServerAlias www.myadmin.test.ru
DocumentRoot /var/www/myadmin.test.ru/site
ErrorLog /var/www/myadmin.test.ru/log/error.log
CustomLog /var/www/myadmin.test.ru/log/access.log common
<Directory /var/www/myadmin.test.ru/site>
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
php_admin_value date.timezone 'Europe/Moscow'
php_admin_value max_execution_time 360
php_admin_value upload_max_filesize 180M
</VirtualHost>

настройка виртуального хоста для phpmyadmin
  • Изменяются только пути к директориям и файлам.
  • Предварительная подготовка завершена. Можно переходить к установке.
  • Заходим на официальный сайт https://www.phpmyadmin.net/, и либо скачиваем архив через браузер, либо копируем ссылку, и скачиваем на сервер при помощи wget.
официальный сайт phpmyadmin
  • Файлы phpmyadmin должны быть добавлены в директорию /var/www/myadmin.test.ru/site.
  • Производим необходимые настройки доступа.
# chown -R apache. /var/www/myadmin.test.ru/site

Проверка работоспособности.

  • Теперь можно проверить работоспособность нашей конфигурации.
  • Если Вы производите установку в локальной сети, и в сети нет DNS-сервера, то можно добавить записи в файл C:\Windows\System32\drivers\etc\hosts.
Ip-адрес       test.ru
Ip-адрес       myadmin.test.ru
настройка файла hosts
  • Открываем браузер, и обращаемся на test.ru.
  • Открывается страничка, созданная нами в директории /var/www/test.ru/site.
проверка конфигурации для сайта
  • Открываем новую вкладку, и обращаемся на myadmin.test.ru.
  • Открывается страница авторизации Phpmyadmin.
проверка конфигурации для Phpmyadmin

Конфигурация работает. Оба наших виртуальных хоста доступны.

Настройка ротации логов.

  • Единственное что нам осталось сделать, это настроить ротацию логов наших виртуальных хостов.
  • Ротация настроенная по умолчанию, не коснётся наших виртуальных хостов, так как мы изменили директории логов.
  • Чтобы поправить дело, нужно найти файл /etc/logrotate.d/httpd, именно он и отвечает за ротацию Apache, и добавить в него одну строчку.
/var/www/*/log/*log
настройка ротации логов виртуальных хостов

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

Сегодня мы рассмотрели тему: "Установка LAMP в CentOS 7". Произвели установку и настройку всех компонентов. Смотрите также видео по теме.

Надеюсь статья была вам полезна. До встречи в новых статьях.

С уважением, Андрей Бондаренко.


Видео на тему "Установка LAMP в CentOS 7":