Гид по технологиям

Установка WonderCMS на Debian 9 с Nginx и Let's Encrypt

• 4 min read • Серверы • Обновлено 23 Nov 2025
Установка WonderCMS на Debian 9 с Nginx и SSL
Установка WonderCMS на Debian 9 с Nginx и SSL

Скриншот или логотип WonderCMS

TL;DR

Краткое руководство по быстрой установке WonderCMS на Debian 9 с веб‑сервером Nginx и опциональным HTTPS через acme.sh и Let’s Encrypt. Покрыты требования, команды установки PHP/FPM, пример конфигурации Nginx, перенос файлов, базовые меры безопасности и проверочный чек‑лист.

WonderCMS — лёгкая открытая flat‑file CMS на PHP, удобная для простых сайтов и блогов. Она не требует реляционной СУБД: все данные хранятся в одном текстовом файле database.js (JSON). В этом руководстве показана установка на Debian 9 с Nginx и опцией защиты TLS через acme.sh и Let’s Encrypt.

Ключевые требования

  • PHP 7.1+ с расширениями curl, mbstring и zip. Рекомендуется PHP 7.2 для Debian 9.
  • Веб‑сервер: Nginx (в примере), также поддерживаются Apache (с mod_rewrite) и IIS.

Предварительные условия

  • Сервер с Debian 9 (stretch).
  • Непривилегированный пользователь с sudo.

Первые шаги (обновление и базовые утилиты)

Проверьте версию Debian:

lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)

Настройте часовой пояс:

sudo dpkg-reconfigure tzdata

Обновите пакеты и установите вспомогательные утилиты:

sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget vim git unzip socat bash-completion apt-transport-https

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

Шаг 1 — Установка PHP и необходимых расширений

Добавьте репозиторий Ondřej Surý для современных версий PHP в Debian 9 и установите PHP 7.2 с FPM:

sudo apt install apt-transport-https lsb-release ca-certificates
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update

Установите PHP и расширения:

sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-curl php7.2-zip php7.2-mbstring

Убедитесь, что нужные модули загружены:

php -m

ctype
curl
exif
fileinfo
mbstring
zip
...

Проверьте версию PHP:

php --version

# Пример вывода:
# PHP 7.2.x (cli) (built: ...)

На Debian 9 systemd автоматически запускает php7.2-fpm; при необходимости проверьте статус:

systemctl status php7.2-fpm

Шаг 2 — Установка acme.sh и получение сертификата (опционально)

HTTPS не обязателен, но рекомендуется. acme.sh — лёгкий клиент на shell для получения сертификатов от Let’s Encrypt.

Установка acme.sh:

sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [email protected]
source ~/.bashrc
cd ~

Проверка версии:

acme.sh --version
# пример: v2.8.0

Получение сертификатов (пример для example.com):

# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA (ECC)
acme.sh --issue --standalone -d example.com --keylength ec-256

Для тестовой выдачи используйте флаг –staging.

Файлы с сертификатами будут в домашней папке пользователя, например:

  • /home/username/example.com
  • /home/username/example.com_ecc

Скопируйте сертификаты в /etc/letsencrypt (или другой каталог для удобства управления):

sudo mkdir -p /etc/letsencrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc

Установите (скопируйте) сертификаты и укажите команду перезагрузки Nginx при обновлении сертификата:

# RSA
acme.sh --install-cert -d example.com \
  --cert-file /etc/letsencrypt/example.com/cert.pem \
  --key-file /etc/letsencrypt/example.com/private.key \
  --fullchain-file /etc/letsencrypt/example.com/fullchain.pem \
  --reloadcmd "sudo systemctl reload nginx.service"

# ECC
acme.sh --install-cert -d example.com --ecc \
  --cert-file /etc/letsencrypt/example.com_ecc/cert.pem \
  --key-file /etc/letsencrypt/example.com_ecc/private.key \
  --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem \
  --reloadcmd "sudo systemctl reload nginx.service"

acme.sh настроит автоматическое обновление сертификатов. После завершения выйдите из root:

exit

Шаг 3 — Установка и настройка Nginx

Установите Nginx:

sudo apt install -y nginx

Проверьте версию:

sudo nginx -v
# nginx version: nginx/1.10.3 (пример)

Создайте файл конфигурации сайта: /etc/nginx/sites-available/wondercms.conf и поместите туда следующее (адаптируйте пути к сертификатам и корню сайта):

server {
  listen 80;
  listen 443 ssl;

  ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com/private.key;
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;

  server_name example.com;
  root /var/www/wondercms;

  index index.php;

  location / {
    if (!-e $request_filename) {
      rewrite ^/(.+)$ /index.php?page=$1 last;
    }
  }

  location ~ database.js {
    return 403;
  }

  location ~ \.php(/|$) {
    include snippets/fastcgi-php.conf;
    fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
  }
}

Активируйте конфигурацию и проверьте синтаксис:

sudo ln -s /etc/nginx/sites-available/wondercms.conf /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx.service

Советы:

  • Если вы используете другой сокет php-fpm (напр., php7.2-fpm.sock), скорректируйте путь в fastcgi_pass.
  • Проверяйте логи: /var/log/nginx/error.log и /var/log/nginx/access.log.

Шаг 4 — Установка WonderCMS

Создайте корневую директорию и назначьте владельца:

sudo mkdir -p /var/www/wondercms
sudo chown -R your_username:your_username /var/www/wondercms
cd /var/www/wondercms

Скачайте и распакуйте WonderCMS (пример для версии 2.7.0):

wget https://github.com/robiso/wondercms/releases/download/2.7.0/WonderCMS-2.7.0.zip
unzip WonderCMS-2.7.0.zip
rm WonderCMS-2.7.0.zip

Перенесите файлы в корень и удалите временную папку. Безопасный вариант с rsync:

rsync -av wondercms/ ./
rm -rf wondercms

Назначьте владельца веб‑процесса:

sudo chown -R www-data:www-data /var/www/wondercms

Откройте сайт в браузере, выполните вход: по умолчанию логин admin и смените пароль.

Интерфейс WonderCMS на Debian

Безопасность и эксплуатация (рекомендации)

  • Доступ к файлу database.js должен быть запрещён в конфигурации веб‑сервера (как в примере Nginx).
  • Ограничьте права: файлы 644, директории 755; каталогу с данными — владелец www-data.
  • Резервные копии: копируйте /var/www/wondercms/database.js и конфигурацию Nginx. Частота: еженедельно или перед обновлениями.
  • Firewall: откройте порты 80 и 443, закройте лишние.
  • Обновления: регулярно обновляйте Debian, PHP и саму CMS (скачивайте релизы из официального репозитория).
  • Логи и мониторинг: настраивайте ротацию логов и оповещения по ошибкам 5xx.

Критерии приёмки

  • Сайт открывается по HTTPS (если включён) без ошибок сертификата.
  • Страницы корректно отображаются, ссылки работают, административная панель доступна после входа.
  • Файл database.js недоступен извне (HTTP 403).
  • Nginx и php-fpm запускаются и не генерируют ошибок в логах.

Чек‑листы

Чек‑лист администратора:

  • PHP и расширения установлены
  • Nginx конфиг проверен (nginx -t)
  • SSL сертификат установлен и автоматическое обновление настроено
  • Права файлов проверены
  • Настроены резервные копии

Чек‑лист разработчика/интегратора:

  • Переписанные (rewrite) URL корректно работают
  • Формы и сохранение контента работают (проверить админку)
  • Скрипты и CSS загружаются без ошибок 4xx/5xx

Устранение неполадок (быстрые решения)

  • 502 Bad Gateway: проверьте статус php7.2-fpm и путь сокета в fastcgi_pass.
  • 403 при обращении к сайту: проверьте права на /var/www/wondercms и блоки location в Nginx.
  • SSL ошибки: убедитесь, что в Nginx указаны корректные пути к fullchain.pem и private.key и файлы читаемы нужным пользователем.
  • Неправильные перенаправления: проверьте правило rewrite и переменную $request_filename.

Откат (rollback) — кратко

  1. Восстановите резервную копию /var/www/wondercms/database.js.
  2. Восстановите конфигурацию Nginx из сохранённой копии и выполните nginx -t; systemctl reload nginx.
  3. При проблемах с PHP верните предыдущую версию пакета через apt (если хранится в кэше) или восстановите образ VM.

Быстрые подсказки и соответствие версий

  • Целевая платформа: Debian 9 (stretch)
  • Рекомендуемая версия PHP: 7.2
  • Веб‑сервер: Nginx 1.10+ (возможны отличия в старых версиях)

Полезные ссылки

Итог

WonderCMS подходит для лёгких сайтов: установка занимает несколько шагов — подготовка системы, PHP/FPM, настройка Nginx, развёртывание файлов и (опционально) получение TLS‑сертификата через acme.sh. После установки выполните базовую безопасность: права, резервные копии и мониторинг.

Важно: перед применением на production протестируйте конфигурацию в staging‑окружении и создайте резервные копии.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро