Настройка Web сервера на Centos 7 от А до Я
Привет, я уже писал статью, как поставить и настроить веб сервер на Ubuntu. Но, я понял, что эта — ОС совсем не предназначена для WEB сервера, самый главный минус, она сильно много жрет оперативной памяти. Поэтому я её снеси и поставил на центос.
Устанавливаем Centos 7 на сервер. Я думаю с этим сложностей не будет, т.к. этим занимается хостер, который вам предоставляет VPS. Затем необходимо обновить все пакеты.
Установка FastVps
yum upgrade
Устанавливаем панель управления сервером fastvps.
wget http://repo.fastpanel.direct/install_fastpanel.sh -O /tmp/install_fastpanel.sh && bash /tmp/install_fastpanel.sh -m mysql8.0
По умолчанию, у меня ставится МарияДБ, по этому я явно указываю, что хочу mysql. Если вы хотите мариюДБ, то строка будет выглядеть так.
wget http://repo.fastpanel.direct/install_fastpanel.sh -O /tmp/install_fastpanel.sh && bash /tmp/install_fastpanel.sh
Установка fail2ban
После этого нужно установить fail2ban. Вначале добавляем репозиторий.
yum install epel-release
После этого устанавливаем сам пакет.
yum install fail2ban
Для запуска службы вводим следующие команды.
systemctl enable fail2ban systemctl start fail2ban
Установка МС
Затем устанавливаем mc.
yum install mc
Настройка fail2ban
Вводим в командную строку mc и переходим в etc/fail2ban, а там есть файл jail.local его и редактируем. Вот мой конфиг.
[DEFAULT] bantime.increment = true bantime.rndtime = 30m bantime.maxtime = 60d bantime.factor = 2 bantime = 3h findtime = 10m maxretry = 5 banaction = iptables-ipset-proto6 ignoreip = 127.0.0.1 [sshd] enabled = true filter = sshd action = iptables[name=SSH, port=ssh, protocol=tcp] logpath = /var/log/auth.log findtime = 600 maxretry = 3 bantime = 43200 [recidive] enabled = true bantime = 9w findtime = 3d [apache-auth] # Ban hosts with password authentication failures enabled = true port = http,https logpath = %(apache_error_log)s [apache-badbots] # Ban spammer robots crawling the web for email addresses. port = http,https logpath = %(apache_access_log)s bantime = 172800 maxretry = 1 [apache-noscript] # Ban hosts searching for scripts on the website to execute and exploit enabled = true port = http,https logpath = %(apache_error_log)s maxretry = 6 [apache-overflows] # Ban hosts attempting to request unusually long and suspicious URLs enabled = true port = http,https logpath = %(apache_error_log)s maxretry = 2 [apache-nohome] # If you do not provide access to web content within users’ home directories enabled = true port = http,https logpath = %(apache_error_log)s maxretry = 2 [exim] enabled = true [exim-spam] enabled = true [postfix] enabled = true [wordpress-hard] enabled = true port = http,https filter = wordpress-hard logpath = /var/log/auth.log bantime = 1h maxretry = 1 [non-standard] enabled = true port = port your app/service uses logpath = where its log file is located
После сохранения нужно перезагрузить fail2ban:
systemctl restart fail2ban
Проверить статус.
systemctl status fail2ban
Если вылезда ошибка, то удалите из фаила jail.local, то на что ругается.
Установка свежего PHP
Теперь пришла пора сменить версию php на сервере. По умолчанию на вашем сервере php 5.4.
php -v
Нужно это исправить, я не советую устанавливать последнюю версию. На сегодняшний день уже вышел php 8. Я буду себе ставить php 7.3. Для этого необходимо ввести команду.
rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
Дальше смотрим, что можно активировать.
ls /etc/yum.repos.d/remi*
Я выбираю это —/etc/yum.repos.d/remi-php73.repo, открываю MC и редактирую этот файл.
Дальше обновим систему и пхп нужной версии автоматически установится.
yum update systemctl restart php-fpm php -v
Дальше нужно исправить ошибку Ioncube, для этого качаем архив с нужной версией.
Wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz //или если 32 Wget http://downloads3.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
Перенесем нужный файл сюда /usr/lib64/php/modules, в моем случае это ioncube_loader_lin_7.3.so.
Дальше необходимо поправить файл ioncube… /etc/php.d/ioncube.ini
Все ошибки на этом кончились.
php -v
Установка php-xml
Этот пакет мне понадобился для роботы воркера во фреймворке laravel.
yum install php-xml
Установка Supervizor
yum install supervisor
Настройка Supervizor
А дальше настраиваем конфигурацию /etc/supervisord.conf в самый конец вставляем это:
;[include] ;files = relative/directory/*.ini [program:laravel-worker] ;process_name=%(program_name)s_%(process_num)02d command=php /var/www/keycheck.ru/data/www/keycheck.ru/artisan queue:work --sleep=3 --tries=1 autostart=true autorestart=true user=keycheck.ru //этот пользователь должен быть создан numprocs=1 redirect_stderr=true stdout_logfile=/var/log/supervisor/worker.log
Затем, выполняем следующие команды.
systemctl enable supervisord //автозапуск при старте systemctl restart supervisord //перезапустить службу supervisorctl reload supervisorctl update supervisorctl start laravel-worker:*
Настройка Mysql
Для того поможет софт — MysqlTuner.
yum install mysqltuner
Запускаем его просто командой:
mysqltuner
Выполняем рекомендации программы.
Подождите сутки перед тем как выполнять её рекомендации, пусть накопится статистика для анализа.
Все теперь можно переносить все файлы на сервер ваших сайтов и настраивать саму fastpanel.
PS: еще раз ознакомьтесь с этой статьёй, там написано более подробно по каждому пункту, плюс есть настройка фаервола.
Предыдущая