Настройка Web сервера на Centos 7 от А до Я

Привет, я уже писал статью, как поставить и настроить веб сервер на Ubuntu. Но, я понял, что эта — ОС совсем не предназначена для WEB сервера, самый главный минус, она сильно много жрет оперативной памяти. Поэтому я её снеси и поставил на центос.

Устанавливаем Centos 7 на сервер. Я думаю с этим сложностей не будет, т.к. этим занимается хостер, который вам предоставляет VPS. Затем необходимо обновить все пакеты.

Contents

Установка 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 и редактирую этот файл.

Настройка Web сервера на Centos 7 от А до Я

Дальше обновим систему и пхп нужной версии автоматически установится.

yum update
systemctl restart php-fpm
php -v

Настройка Web сервера на Centos 7 от А до Я

Дальше нужно исправить ошибку 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

Настройка Web сервера на Centos 7 от А до Я

Все ошибки на этом кончились.

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: еще раз ознакомьтесь с этой статьёй, там написано более подробно по каждому пункту, плюс есть настройка фаервола.

Предыдущая
ПрограммированиеНастройка Web сервера на Ubuntu 20.04
Следующая
ПрограммированиеLaravel 8 установка OpenAPI (Swagger)
Помогла статья? Оцените её
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд
Оценок: 2
Загрузка...
Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.