Как установить WonderCMS на Debian 12

WonderCMS – это лёгкая система управления контентом (CMS) с открытым исходным кодом, разработанная для простоты и лёгкого использования. В отличие от многих других CMS-платформ, требующих обширной настройки или больших ресурсов, WonderCMS работает на базе одной плоской базы данных, что означает, что ей не нужна традиционная система баз данных, такая как MySQL. Это делает ее очень простой в установке и управлении, зачастую не требуя ничего, кроме загрузки файлов CMS на сервер. Несмотря на небольшой размер, WonderCMS предлагает такие важные функции, как редактирование контента, SEO-опции, настройка тем и поддержка плагинов, что делает ее подходящим вариантом для пользователей, которые хотят получить минималистичное и простое решение для создания и управления веб-сайтами.

В этом руководстве мы покажем вам, как установить WonderCMS на сервер Debian 12 с веб-сервером Apache и PHP 8.x.

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

Перед началом работы убедитесь, что у вас есть все необходимое:

  • Сервер Debian 12.
  • Некорневой пользователь с правами администратора.
  • Доменное имя, указывающее на IP-адрес сервера.

Установка зависимостей

WonderCMS – это система управления контентом с открытым исходным кодом, написанная на PHP. Это плоская CMS, что означает, что для ее установки не требуется база данных типа MySQL/MariaDB. В качестве базы данных она использует текстовые файлы.

В этом руководстве вы установите WonderCMS с помощью веб-сервера Apache и PHP 8.2.

Перед установкой пакетов обновите репозиторий Debian с помощью следующей команды.

sudo apt update

После обновления установите зависимости для WonderCMS, выполнив команду ниже. WonderCMS – это плоская CMS, ей не требуется база данных. Поэтому вы установите только веб-сервер Apache и пакеты PHP.

sudo apt install apache2 php php-common php-mbstring php-curl php-zip unzip

Введите y, чтобы подтвердить установку.

установить deps

После завершения установки проверьте службу Apache с помощью следующей команды. Apache должен быть запущен и включен по умолчанию.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

Ниже показано, что служба Apache включена и работает.

проверить apache

И наконец, проверьте версию PHP и включите расширения с помощью следующей команды.

php -m
php -v

В приведенном ниже выводе видно, что PHP 8.2 установлен.

проверить php

Настройка PHP

После установки зависимостей необходимо настроить PHP для WonderCMS. Вам нужно будет изменить конфигурацию php.ini для веб-сервера Apache и изменить некоторые настройки по умолчанию, такие как часовой пояс, лимит памяти, время выполнения и максимальный размер загружаемых файлов.

Откройте конфигурацию php.ini для веб-сервера Apache с помощью следующей команды редактора nano.

sudo nano /etc/php/8.2/apache2/php.ini

Измените конфигурацию PHP по умолчанию следующим образом – не забудьте настроить часовой пояс и лимит памяти (memory_limit) в соответствии с текущим окружением сервера.

date.timezone = "Europe/Amsterdam"
memory_limit = 512M

upload_max_filesize = 128MB
post_max_size = 128MB

max_execution_time = 300
max_input_vars = 5000

Сохраните и выйдите из файла, когда закончите.

Теперь перезапустите службу Apache, чтобы применить вашу модификацию к PHP.

sudo systemctl restart apache2

Настройка брандмауэра

В этом руководстве вы будете запускать WonderCMS с включенным брандмауэром. В этом примере вы будете использовать UFW. Итак, теперь вам нужно установить UFW и открыть порты для служб SSH, HTTP и HTTPS.

Установите UFW на ваш сервер Debian с помощью следующей команды. Введите y для подтверждения и продолжения.

sudo apt install ufw

установить ufw

После завершения установки включите профиль OpenSSH для открытия порта 22 и профиль “WWW Full” для открытия портов HTTP и HTTPS.

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

Теперь выполните следующую команду, чтобы запустить и включить UFW. Введите y для подтверждения, после чего UFW будет запущен и включен.

sudo ufw enable

настройка ufw

Наконец, проверьте состояние UFW с помощью команды, приведенной ниже. Оба профиля OpenSSH и “WWW Full” включены на UFW.

sudo ufw status

проверить ufw

Загрузка исходного кода WonderCMS

В этом разделе вы загрузите исходный код WonderCMS и настроите корневую директорию document-root с соответствующими правами и правами собственности. Прежде чем начать, обязательно посетите страницу WonderCMS на GitHub и возьмите последнюю ссылку на скачивание.

Перейдите в каталог /var/www и загрузите исходный код WonderCMS с помощью команды wget, приведенной ниже.

cd /var/www/
wget https://github.com/WonderCMS/wondercms/releases/download/3.4.3/wondercms-343.zip

После загрузки распакуйте исходный код WonderCMS в каталог /var/www/wondercms с помощью команды unzip.

unzip wondercms-343.zip -d /var/www/wondercms

Наконец, измените права собственности на каталог /var/www/wondercms на пользователя www-data. Таким образом, вы разрешите Apache читать, писать и выполнять в корневом каталоге документа WonderCMS.

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

Настройка виртуального хоста Apache

В этом примере вы будете запускать WonderCMS с Apache, поэтому вам нужно создать конфигурацию виртуального хоста для этого. Убедитесь, что ваше доменное имя указывает на IP-адрес вашего сервера Debian.

Во-первых, используйте приведённую ниже команду для включения модуля перезаписи на Apache. WonderCMS требует включения mod_rewrite.

sudo a2enmod rewrite

включить перезапись

После включения создайте новую конфигурацию виртуального хоста /etc/apache2/sites-available/wondercms.conf с помощью команды редактора nano.

sudo nano /etc/apache2/sites-available/wondercms.conf

Вставьте следующую конфигурацию. Обязательно измените имя домена, путь к корневому каталогу документа и файлы журнала на свои.

ServerName cms.local
DirectoryIndex index.php
DocumentRoot /var/www/wondercms
Redirect /wondercms/loginURL /loginURL

ErrorLog /var/log/apache2/cms.local-error.log
CustomLog /var/log/apache2/cms.local-access.log combined

Options FollowSymLinks
AllowOverride All
Require all granted

Сохраните и выйдите из файла, когда закончите.

Далее выполните следующую команду, чтобы включить файл виртуального хоста wondercms.conf. Затем проверьте Apache и убедитесь в правильности синтаксиса.

sudo a2ensite wondercms.conf
sudo apachectl configtest

Вы должны получить сообщение Syntax OK, если у вас правильный синтаксис Apache.

настройка vhost

И наконец, выполните приведенную ниже команду, чтобы перезапустить службу Apache и применить внесенные изменения. После этого установка WonderCMS должна быть готова.

sudo systemctl restart apache2

Защита WonderCMS с помощью Letsencrypt

После настройки виртуального хоста Apache защитите установку WonderCMS с помощью HTTPS. В этом случае вы будете использовать Certbot и Letsencrypt.

Вы можете сгенерировать самоподписанные сертификаты для локальных доменных имен или внутренних сетей, чтобы защитить установку WonderCMS.

Установите Certbot и плагин Certbot Apache с помощью команды ниже. Введите y, чтобы подтвердить установку.

sudo apt install certbot python3-certbot-apache

После завершения установки сгенерируйте SSL-сертификаты для вашего доменного имени WonderCMS. Также не забудьте изменить доменное имя и адрес электронной почты, чтобы они соответствовали вашей информации.

sudo certbot --apache --agree-tos --no-eff-email --redirect --hsts --staple-oscp --email [email protected] -d cms.local

После завершения процесса ваш сертификат должен быть доступен в каталоге /etc/letsencrypt/live/cms.local. Ваша установка WonderCMS должна быть автоматически защищена HTTPS.

Доступ к установке WonderCMS

Откройте веб-браузер и зайдите на доменное имя WonderCMS, например https://cms.local/. На главной странице WonderCMS вы должны увидеть сгенерированный пароль. Скопируйте пароль и сохраните его в секретном месте.

 

Заключение

Поздравляем! Вы успешно установили WonderCMS на сервер Debian 12 вместе с веб-сервером Apache и PHP 8.2. Вы также защитили WonderCMS с помощью UFW и SSL-сертификатов от Letsencrypt.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *