Настройка web сервера apache в CentOS 8

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

Введение

В этой статье я расскажу, как настроить web сервер на базе популярного стека технологий — apache и php с модулем prefork. В связи с выходом нового релиза Centos 8, многие статьи на эту тему стали не актуальны, так как версии софта в базовых репозиториях обновились и тот же php нет смысла ставить из стороннего репозитория.

Работать будем на сервере под управлением CentOS 8. Если у вас его еще нет, то читайте мои статьи на тему установки и базовой настройки centos. Не забудьте уделить внимание теме настройки iptables. В данной статье я ее не буду касаться, хотя тема важная для web сервера.

В своей тестовой среде я буду использовать следующие сущности.

имя тестового виртуального хоста и сайта
/web/sites директория для размещения виртуальных хостов
локальный ip адрес сервера
имя виртуального хоста для phpmyadmin

Если вам не хочется настраивать SELinux, то просто отключите его. Если же вы планируете включить и использовать после настройки, то переведите его в режим Permissive. В этом режиме он будет отключен, но все ограничения будут отражаться в лог файле . Это позволит нам в конце статьи сформировать модуль selinux для httpd и php и включить их.

Читайте также:  iOS 12 — дата выхода и самые ожидаемые новые функции

# setenforce 0

Как установить MySQL на MacOS?

brew install mysql

Если Вам по какой-то причине нужно установить определенную версию, то в конце указываем @нужная_версия. Примерно вот так — brew install [email protected]

Чтобы Ваш мак «научился» работать с алиасом – mysql, нужно создать линк. Это нужно чтобы в консоли было удобно управлять через команду mysql. Для этого выполним:

brew link —force mysql

Если был установлен MySQL 5.7, то команда будет такой: brew link —force [email protected]

Если хотите, чтобы MySQL запускался всегда при включении компа, то вот команда для этого:

sudo brew services start mysql

Эта команда не зависит от версией установленного MySQL.

Вот и все! Сервер баз данных MySQL установлен на ваш Mac OS.

Percona Toolkit for MySQL

Штатные инструменты, поставляемые с MySQL, предоставляют лишь базовые возможности по администрированию, в результате многие операции приходится выполнять вручную. Это может быть проблемой, ведь уследить за всем очень сложно, и часто потребуется определенный опыт, да и легко допустить ошибку. Пакет Percona Toolkit for MySQL собрал наработки двух проектов — Maatkit и Aspersa — и предоставляет скрипты, позволяющие производить многие рутинные операции администрирования: проверять состояние репликации, собирать информацию, оптимизировать запросы, производить тюнинг сервера, архивировать/восстанавливать данные и многое другое. Всего более 4000 тестов и настроек. Пакет доступен для основных дистрибутивов Linux (в Ubuntu пакет percona-toolkit). После установки получим 32 утилиты, имя которых начинается с pt-*, назначение часто понятно из названия. При запуске можно задавать различные фильтры и форматировать вывод. Поэтому документацию почитать все равно придется, так как каждая утилита имеет большое количество параметров. Например, скрипт pt-summary выведет всю информацию по серверу, собранную /proc/cpuinfo, /proc/meminfo, mount, df и другими утилитами, pt-show-grants покажет все права пользователей СУБД, pt-query-digest позволяет строить отчеты, основанные на анализе логов, обработанных сервером запросов, а также информации, собранной processlist и tcpdump. Например, просмотр медленных запросов двумя способами:

Читайте также:  Горячие клавиши для Терминала на Mac (macOS)

$ pt-query-digest

$ pt-query-digest —user=user —password=password —processlist —host=

Еще один популярный пакет — openark kit предлагает 14 утилит, позволяющих провести тестирование СУБД: проверять установки, проверять пароли (пустые, одинаковые, слабые), блокировать аккаунты, прерывать запросы, фильтровать записи в журнале, выводить статус репликации, исправлять кодировки и многое другое. Распространяется по лицензии BSD. Написан на Python и требует python-mysqldb. Для установки предлагаются deb- и rpm-пакеты и сырцы, процесс стандартный и проблем не вызывает.

Наиболее популярен скрипт комплекта oak-security-audit, предназначенный для периодического аудита аккаунтов, паролей, привилегий и прочих настроек сервера. В общем случае его можно запустить без параметров. По умолчанию используется режим наибольшего уровня контроля системы (соответствует —audit-level=strict):

Percona Toolkit for MySQL

$ oak-security-audit —socket=/var/run/mysqld/ —user=user —password=password

В результате получим отчет, все, что не помечено как Passed, требует пристального внимания. По умолчанию утилиты из openark kit (включая и mycheckpoint, о котором выше, того же разработчика) используют для подключения к СУБД сокет /var/run/mysqld/ (это вшито в сам скрипт), в Ubuntu файл называется Чтобы не задавать каждый раз путь, можно использовать заранее подготовленный файл с настройками подключения и указывать при помощи —defaults-file. Как вариант: изменить настройки MySQL в Править скрипты неудобно, так как при обновлении они работать не будут. Следующий скрипт, oak-block-account, очень популярен у разного рода хостеров для временного отключения доступа к СУБД. Дело в том, что стандартный механизм СУБД не позволяет отключать временно аккаунт (что-то вроде REVOKE login ON .), то есть если учетная запись есть, пользователь всегда может подключаться к базе данных. Можно, конечно, использовать что-то вроде

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM ‘USER’@’%’;

но в случае восстановления прав придется помнить все настройки. И главное, если посмотреть права при помощи

Читайте также:  Linux: как добавить пользователя в группу

mysql> SHOW GRANTS FOR ‘USER’;

GRANT USAGE ON *.* TO ‘USER’@’%’ IDENTIFIED BY PASSWORD …..

мы убедимся, что такая команда не сбрасывает USAGE. Использование REVOKE USAGE фактически означает DROP USER. Проще изменить логин и пароль, но восстановление может быть проблемой. В общем, возни и рисков много. В случае использования oak-block-account учетная запись остается неизменной, ей просто задается временный пароль, поэтому подключиться с этой учетной записью нельзя.

$ oak-block-account —block —account-user=USER —account-host=

Дополнительный параметр —kill позволит сбросить сразу все активные подключения. Восстановить работоспособность учетки также просто. Смотрим список аккаунтов и их статус:

$ oak-block-account —list

Percona Toolkit for MySQL

И включаем учетную запись:

$ oak-block-account —release —account-user=USER —account-host=

Другие скрипты из openark kit позволяют упростить некоторые операции. Например, oak-chunk-update дает возможность выполнить большие операции UPDATE/DELETE без длительных блокировок, разбив задачу на небольшие куски. Скрипт oak-show-replication-status выводит состояние репликации, oak-kill-slow-queries удаляет запросы, выполняющиеся уже долгое время, oak-repeat-query выполняет запрос, пока не достигнет определенного условия (количество итераций, время).

Шаг 5: Тестирование обработки PHP

Прежде чем приступить к работе со стеком FAMP, рекомендуется проверить, нет ли проблем с PHP. Настройка PHP может облегчить для нас эту ситуацию.

Вы можете легко выполнить настройку с помощью простого скрипта PHP. Используйте команду ниже:

$ sudo nano /usr/local/www/apache24/data/

Скопируйте строку ниже и вставьте ее в файл конфигурации:

Шаг 5: Тестирование обработки PHP

<?php phpinfo(); ?>

Перейдите по адресу http://your_server_IP/, и вы будете перенаправлены на эту страницу:

Сделайте детали сервера приватными, удалив файл

$ sudo rm /usr/local/www/apache24/data/