Установка и защита WonderCMS на CentOS 8 с Let's Encrypt

TL;DR
Кратко: пошаговое руководство по установке WonderCMS на CentOS 8 — Apache + PHP, загрузка из Git, настройка виртуального хоста, получение SSL через Certbot (Let’s Encrypt), настройка брандмауэра и SELinux. Включены советы по безопасности, резервному копированию и устранению распространённых ошибок.
О чём эта инструкция
WonderCMS — лёгкая flat-file CMS без базы данных. Это руководство ведёт от установки Apache/PHP до получения бесплатного сертификата Let’s Encrypt и базовой жёсткой настройки сервера.
Важно: команды и конфигурационные файлы сохранены из оригинальной инструкции. Замените доменное имя wonder.linuxbuz.com и значения, например timezone, на свои.
Предварительные требования
- Сервер с CentOS 8.
- Доступ root или sudo.
- Делегированное DNS‑имя (пример: wonder.example.com), указывающее на IP сервера.
Установка Apache и PHP
Установите Apache, PHP и нужные модули:
dnf install httpd php php-mysqlnd php-curl php-opcache php-xml php-xmlrpc php-gd php-mbstring php-zip php-json wget unzip git -yОткройте php.ini для правок:
nano /etc/php.iniВ файле можно изменить параметры под нагрузку и ограничения. Пример в исходной инструкции:
memory_limit = 128M
post_max_size = 32M
upload_max_filesize = 16M
max_execution_time = 300
date.timezone = Asia/KolkataСовет: замените date.timezone на ваш часовой пояс (например, Europe/Moscow).
Запустите и включите Apache:
systemctl start httpd
systemctl enable httpdПроверьте статус:
systemctl status httpdЗагрузка WonderCMS
Клонируйте репозиторий в корень веб-контента:
cd /var/www/html
git clone https://github.com/robiso/wondercms.gitУстановите права и владельца:
chown -R apache:apache /var/www/html/wondercms
chmod -R 775 /var/www/html/wondercmsПримечание: в некоторых инсталляциях веб‑сервер использует пользователя www-data или nginx; подставьте актуального пользователя.
Настройка Apache для WonderCMS
Создайте виртуальный хост:
nano /etc/httpd/conf.d/wondercms.confДобавьте блок (сохранён из источника — замените ServerName на ваш домен):
ServerName wonder.linuxbuz.com
DirectoryIndex index.php
DocumentRoot /var/www/html/wondercms
Redirect /wondercms/loginURL /loginURL
ErrorLog /var/log/httpd/linuxbuz.com-error.log
CustomLog /var/log/httpd/linuxbuz.com-access.log combined
Options FollowSymLinks
AllowOverride All
Require all granted
Перезапустите Apache:
systemctl restart httpdПроверьте доступность сайта по HTTP перед получением сертификата.
Получение и установка SSL (Let’s Encrypt)
Установите certbot (в инструкции используется certbot-auto):
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoЗапустите certbot для Apache:
certbot-auto --apache -d wonder.linuxbuz.com- При первом запуске certbot-auto установит зависимости и попросит ваш e‑mail и согласие с TOU.
- Если certbot обнаружит другой веб‑сервер (nginx), он может показывать путь к nginx-конфигу в выводе. Убедитесь, что certbot управляет именно вашим сервером или используйте плагин –apache/–nginx, соответствующий вашей среде.
В конце certbot предложит выбрать редирект с HTTP на HTTPS — для новых сайтов рекомендован редирект (опция 2).
Важно: сертификаты Let’s Encrypt действуют 90 дней. Настройте автоматическое обновление через cron или systemd (см. раздел «Обновление сертификатов»).
Конфигурация брандмауэра и SELinux
Разрешите HTTP и HTTPS в firewalld:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reloadНастройте SELinux для записи веб‑контента:
setsebool httpd_can_network_connect on -P
chcon -R -u system_u -t httpd_sys_rw_content_t -r object_r /var/www/html/wondercmsПерезапустите Apache после изменений:
systemctl restart httpdДоступ к WonderCMS и первые шаги
Откройте https://wonder.linuxbuz.com и вы увидите страницу установки. На странице появится временный пароль — скопируйте его и нажмите “Click to login”.


Вставьте пароль и войдите:

Перейдите в Settings → Security и измените URL входа, пароль, затем нажмите CHANGE PASSWORD.

Безопасность и надёжность (рекомендации)
- Сразу измените автоматически сгенерированный пароль и URL для входа.
- Включите двухфакторную аутентификацию, если CMS или внешний слой авторизации её поддерживает.
- Ограничьте доступ к /var/www/html/wondercms только нужным пользователям и сервисам.
- Настройте регулярное резервное копирование каталога /var/www/html/wondercms. Для flat-file CMS достаточно резервировать файлы и конфигурацию.
Резервное копирование и восстановление (мини‑SOP)
- Создавайте архив каталога и сохраняйте его вне сервера (S3, удалённый NAS):
tar -czf wondercms-$(date +%F).tar.gz /var/www/html/wondercms- Проверяйте целостность архива и права доступа.
- Для восстановления распакуйте архив в /var/www/html и восстановите права владельца apache:apache.
Обновление сертификатов Let’s Encrypt
- Сертификаты действительны 90 дней. Для автоматического продления используйте:
certbot-auto renew --quiet- Добавьте cron/systemd таймер для регулярной проверки (ежедневно).
Устранение распространённых проблем
- Ошибка при получении сертификата: проверьте, что домен указывает на сервер и HTTP доступен (80). Certbot использует http-01 challenge.
- Certbot пишет конфиг nginx: значит на сервере есть nginx. Остановите либо перенастройте nginx/Apache перед запуском certbot.
- Проблемы с правами: убедитесь, что владелец и права каталога правильно выставлены.
Чек‑лист для продакшн‑запуска (роль‑ориентированный)
Админ:
- Домен указывает корректно на сервер
- Установлен и включён HTTP/HTTPS в firewall
- SELinux настроен на запись каталога сайта
- Certbot настроен и автопродление включено
Разработчик:
- Права на файлы минимизированы
- Все плагины/расширения проверены на совместимость
Операции:
- Настроено резервное копирование
- План восстановления протестирован
Факто‑бокс
- Let’s Encrypt: бесплатный CA, срок сертификата 90 дней.
- WonderCMS: flat-file CMS — все данные хранятся в файлах, база данных не требуется.
Краткая 1‑строчная глоссарий
- Flat-file CMS — система управления сайтом, хранящая контент в файлах вместо СУБД.
- Certbot — клиент для получения сертификатов Let’s Encrypt.
- SELinux — механизм мандатного контроля доступа в Linux.
Критерии приёмки
- Сайт доступен по HTTPS без предупреждений браузера.
- Certbot сообщил о сохранении cert и privkey, автопродление настроено.
- Админ может войти и изменить пароль/URL входа.
Частые вопросы (FAQ)
Q: Нужна ли база данных для WonderCMS? A: Нет. WonderCMS — flat-file CMS, все данные хранятся в файлах.
Q: Сколько действует сертификат Let’s Encrypt? A: 90 дней; рекомендуется автоматическое обновление.
Q: Можно ли использовать Nginx вместо Apache? A: Да, конфигурация и команды получения certbot меняются на –nginx или ручной способ.
Заключение
Вы успешно установили WonderCMS на CentOS 8, настроили Apache/PHP, получили SSL от Let’s Encrypt и выполнили базовую жёсткую настройку сервера. Дальше — настроить резервные копии, мониторинг и регулярные обновления.
Краткое резюме
- Установите Apache/PHP, клонируйте репозиторий WonderCMS.
- Настройте виртуальный хост и права доступа.
- Получите SSL через certbot и настройте редирект на HTTPS.
- Настройте firewall, SELinux и резервное копирование.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента