Установка CMS · 16 min read · Oct 23, 2025

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

Craft CMS — это система управления контентом с открытым исходным кодом для создания различных веб-сайтов. Это безопасная и масштабируемая CMS с обширной экосистемой плагинов и качественными бесплатными и платными плагинами. У нее интуитивно понятная, удобная панель управления для создания контента и административных задач. Она построена на фреймворке Yii PHP. Шаблонизатор Twig управляет ее системой шаблонов. Она может работать как с базами данных MySQL, так и PostgreSQL для хранения и использует базу данных Redis для кэширования и хранения сессий.

В этом руководстве вы узнаете, как установить Craft CMS на сервер Debian 12. Вы также узнаете, как включить Redis для работы с ним и как создавать резервные копии и восстанавливать сайт, созданный с помощью Craft CMS.

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

  • Сервер с установленным Debian 12 с минимум 1 ГБ оперативной памяти.
  • Пользователь, не являющийся root, с правами sudo.
  • Простой брандмауэр (UFW) включен и работает.
  • Полностью квалифицированное доменное имя (FQDN), например craftcms.example.com, указывающее на ваш сервер.
  • SMTP-аккаунт с почтовым сервисом, таким как Amazon SES или Mailgun.
  • Все обновлено. $ sudo apt update && sudo apt upgrade
  • Для выполнения учебника и работы Craft CMS требуется несколько основных пакетов. Некоторые из них уже могут быть на вашем сервере. $ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y

Шаг 1 - Настройка брандмауэра

Первый шаг перед установкой любых пакетов — настроить брандмауэр для разрешения HTTP и HTTPS соединений.

Проверьте статус брандмауэра.

$ sudo ufw status

Вы должны увидеть что-то вроде следующего.

Статус: активен

Кому                         Действие      Откуда
--                         ------      ----
OpenSSH                    ALLOW       Везде
OpenSSH (v6)               ALLOW       Везде (v6)

Разрешите порты HTTP и HTTPS.

$ sudo ufw allow http
$ sudo ufw allow https

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

$ sudo ufw status
Статус: активен

Кому                         Действие      Откуда
--                         ------      ----
OpenSSH                    ALLOW       Везде
80/tcp                     ALLOW       Везде
443/tcp                    ALLOW       Везде
OpenSSH (v6)               ALLOW       Везде (v6)
80/tcp (v6)                ALLOW       Везде (v6)
443/tcp (v6)               ALLOW       Везде (v6)

Шаг 2 - Установка Nginx

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

Импортируйте ключ подписи Nginx.

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Добавьте репозиторий для стабильной версии Nginx.

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Обновите системные репозитории.

$ sudo apt update

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

$ sudo apt install nginx

Проверьте установку. На системах Debian следующая команда будет работать только с sudo.

$ sudo nginx -v
nginx version: nginx/1.24.0

Запустите сервер Nginx.

$ sudo systemctl start nginx

Проверьте статус службы.

$ sudo systemctl status nginx
? nginx.service - nginx - высокопроизводительный веб-сервер
     Загружено: загружено (/lib/systemd/system/nginx.service; включено; предустановлено: включено)
     Активно: активно (работает) с Пт 2023-12-01 09:46:46 UTC; 18с назад
       Документы: https://nginx.org/en/docs/
    Процесс: 39483 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (код=вышел, статус=0/УСПЕХ)
   Основной PID: 39484 (nginx)
      Задачи: 2 (лимит: 2315)
     Память: 1.7M
        CPU: 6ms
     CGroup: /system.slice/nginx.service
             ??39484 "nginx: главный процесс /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??39485 "nginx: рабочий процесс"

Шаг 3 - Установка PHP и расширений

Debian 12 по умолчанию поставляется с PHP 8.2. Вы можете установить его и расширения, необходимые для Craft CMS, выполнив следующую команду.

$ sudo apt install php php-cli php-common php-json php-gmp php-fpm php-xmlrpc php-bcmath php-imagick php-curl php-zip php-gd php-mysql php-xml php-mbstring php-xmlrpc php-intl php-pgsql

Чтобы всегда оставаться на последней версии PHP или если вы хотите установить несколько версий PHP, добавьте репозиторий PHP Ondrej.

Сначала импортируйте GPG-ключ репозитория Sury.

$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg

Добавьте репозиторий PHP Ondrej Sury.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/deb.sury.org-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'

Обновите список репозиториев вашей системы.

$ sudo apt update

Вы, вероятно, получите информацию о ожидающих обновлениях. Выполните их.

$ sudo apt upgrade

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

$ sudo apt install php8.2 php8.2-cli php8.2-common php8.2-gmp php8.2-fpm php8.2-xmlrpc php8.2-bcmath php8.2-imagick php8.2-curl php8.2-zip php8.2-gd php8.2-mysql php8.2-xml php8.2-mbstring php8.2-xmlrpc php8.2-intl php8.2-pgsql

Проверьте установленную версию PHP.

$ php --version
PHP 8.2.13 (cli) (собран: 24 ноября 2023 13:10:42) (NTS)
Copyright (c) Группа PHP
Zend Engine v4.2.13, Copyright (c) Технологии Zend
    с Zend OPcache v8.2.13, Copyright (c), Технологии Zend

Проверьте статус службы PHP.

$ sudo systemctl status php8.2-fpm
? php8.2-fpm.service - Менеджер процессов PHP 8.2 FastCGI
     Загружено: загружено (/lib/systemd/system/php8.2-fpm.service; включено; предустановлено: включено)
     Активно: активно (работает) с Пт 2023-12-01 10:29:53 UTC; 34мин назад
       Документы: man:php-fpm8.2(8)
    Процесс: 65825 ExecStartPost=/usr/lib/php/php-fpm-socket-helper install /run/php/php-fpm.sock /etc/php/8.2/fpm/pool.d/www.conf 82 (код=вышел, статус=0/УСПЕХ)
   Основной PID: 65821 (php-fpm8.2)
     Статус: "Активные процессы: 0, бездействующие: 3, Запросы: 208, медленные: 0, Трафик: 0.2req/sec"
      Задачи: 4 (лимит: 2315)
     Память: 83.4M
        CPU: 6.456s
     CGroup: /system.slice/php8.2-fpm.service
             ??65821 "php-fpm: главный процесс (/etc/php/8.2/fpm/php-fpm.conf)"
             ??65823 "php-fpm: пул www"
             ??65824 "php-fpm: пул www"
             ??65843 "php-fpm: пул www"

Шаг 4 - Настройка PHP-FPM

Откройте php.ini для редактирования.

$ sudo nano /etc/php/8.2/fpm/php.ini

Чтобы установить размеры загружаемых файлов, измените значения переменных upload_max_filesize и post_max_size. Это значение определяет размер файла, который вы можете загрузить в Craft CMS. Для наших целей мы устанавливаем его на 128 МБ. Вы можете установить его по своему усмотрению.

$ sudo sed -i 's/upload_max_filesize = 2M/upload_max_filesize = 128M/' /etc/php/8.2/fpm/php.ini
$ sudo sed -i 's/post_max_size = 8M/post_max_size = 128M/' /etc/php/8.2/fpm/php.ini

Настройте лимит памяти PHP в зависимости от ресурсов и требований вашего сервера.

$ sudo sed -i 's/memory_limit = 128M/memory_limit = 256M/' /etc/php/8.2/fpm/php.ini

Откройте файл /etc/php/8.2/fpm/pool.d/www.conf.

$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf

Нам нужно установить Unix пользователя/группу процессов PHP на nginx. Найдите строки user=www-data и group=www-data в файле и измените их на nginx.

...
; Unix пользователь/группа процессов
; Примечание: пользователь обязателен. Если группа не установлена, будет использована группа пользователя по умолчанию
;       будет использована.
user = nginx
group = nginx
...

Также найдите строки listen.owner=www-data и listen.group=www-data в файле и измените их на nginx.

listen.owner = nginx
listen.group = nginx

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Перезапустите процесс PHP-fpm. Убедитесь, что у вас установлен Nginx перед перезапуском службы PHP, иначе она не сможет найти группу nginx.

$ sudo systemctl restart php8.2-fpm

Шаг 5 - Установка Composer

Composer выступает в качестве менеджера зависимостей для PHP. Он также является менеджером зависимостей фреймворка Laravel PHP, который управляет Craft CMS.

Скачайте скрипт установки Composer.

$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

Проверьте загруженный установщик.

$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Установщик проверен'; } else { echo 'Установщик поврежден'; unlink('composer-setup.php'); } echo PHP_EOL;"

Вы получите следующий вывод.

Установщик проверен

Запустите скрипт установки, чтобы загрузить последнюю версию Composer.

$ php composer-setup.php

Удалите скрипт установки.

$ php -r "unlink('composer-setup.php');"

Переместите загруженный бинарный файл в директорию /usr/local/bin.

$ sudo mv composer.phar /usr/local/bin/composer

Подтвердите установку.

$ composer --version
Версия Composer 2.6.5 2023-10-06 10:11:52

Шаг 6 - Установка и настройка PostgreSQL

Debian 12 по умолчанию поставляется с PostgreSQL 15. Мы будем использовать PostgreSQL 16 вместо этого.

Выполните следующую команду, чтобы добавить GPG-ключ PostgreSQL.

$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null

Добавьте репозиторий APT в список источников.

$ sudo sh -c 'echo "deb [signed-by=/usr/share/keyrings/postgresql-key.gpg arch=amd64] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Обновите системный репозиторий.

$ sudo apt update

Теперь вы можете установить PostgreSQL, используя следующую команду.

$ sudo apt install postgresql postgresql-contrib

Пакет postgresql-contrib содержит некоторые дополнительные утилиты.

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

$ psql --version
psql (PostgreSQL) 16.1 (Debian 16.1-1.pgdg120+1)

Проверьте статус службы PostgreSQL.

$ sudo systemctl status postgresql
? postgresql.service - PostgreSQL RDBMS
     Загружено: загружено (/lib/systemd/system/postgresql.service; включено; предустановлено: включено)
     Активно: активно (вышел) с Ср 2023-11-29 05:54:03 UTC; 11с назад
   Основной PID: 20170 (код=вышел, статус=0/УСПЕХ)
        CPU: 1ms

29 ноя 05:54:03 craftcms systemd[1]: Запуск postgresql.service - PostgreSQL RDBMS...
29 ноя 05:54:03 craftcms systemd[1]: Завершено postgresql.service - PostgreSQL RDBMS.

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

Запустите оболочку PostgreSQL.

$ sudo -i -u postgres psql

Создайте базу данных Craft CMS.

postgres=# CREATE DATABASE craftcms;

Создайте пользователя Craft CMS и выберите надежный пароль.

postgres-# CREATE USER craftuser WITH PASSWORD 'Ваш_Пароль';

Измените владельца базы данных на пользователя Craft CMS.

postgres-# ALTER DATABASE craftcms OWNER TO craftuser;

Предоставьте все привилегии на базу данных пользователю Craft CMS.

postgres-# GRANT ALL PRIVILEGES ON DATABASE craftcms TO craftuser;

Выйдите из оболочки.

postgres-# \q

Проверьте, что ваши учетные данные работают.

$ psql --username craftuser --password --host localhost craftcms
Пароль:
psql (16.1 (Debian 16.1-1.pgdg120+1))
SSL-соединение (протокол: TLSv1.3, шифр: TLS_AES_256_GCM_SHA384, сжатие: отключено)
Введите "help" для помощи.

craftcms=>

Выйдите из оболочки, набрав \q.

Шаг 7 - Установка и настройка Redis

Debian 12 по умолчанию поставляется с Redis 7.0, который мы будем использовать. Установите Redis.

$ sudo apt install redis

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

$ redis-server --version
Redis server v=7.0.11 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=c4e7f6bf175a885b

Если вы хотите установить последнюю версию, вы можете сделать это, используя официальный репозиторий Redis, выполнив следующие команды.

$ curl -fsSL https://packages.redis.io/gpg | sudo gpg --dearmor -o /usr/share/keyrings/redis-archive-keyring.gpg
$ echo "deb [signed-by=/usr/share/keyrings/redis-archive-keyring.gpg] https://packages.redis.io/deb $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/redis.list
$ sudo apt update
$ sudo apt install redis

Следующий шаг — добавить аутентификацию на сервер Redis. Начиная с Redis v6.0, лучший способ добавить аутентификацию — использовать ACL (Списки управления доступом). Откройте файл /etc/redis/redis.conf для редактирования.

$ sudo nano /etc/redis/redis.conf

Найдите строку # aclfile /etc/redis/users.acl и раскомментируйте ее, удалив хеш (#) перед ней.

aclfile /etc/redis/users.acl

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Затем создайте и откройте файл /etc/redis/users.acl для редактирования.

$ sudo nano /etc/redis/users.acl

Добавьте в него следующую строку.

user navjot on +@all ~* >вашпароль

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Перезапустите сервер Redis, чтобы применить изменения.

$ sudo systemctl restart redis

Откройте оболочку Redis.

$ redis-cli

Используйте команду PING. Она выдаст ошибку аутентификации.

127.0.0.1:6379> PING
(ошибка) NOAUTH Требуется аутентификация.

Используйте команду AUTH, чтобы войти.

127.0.0.1:6379> AUTH navjot вашпароль
OK

Используйте команду PING снова.

127.0.0.1:6379> PING
OK

Выйдите из оболочки.

127.0.0.1:6379> exit

Вам также нужно установить расширение PHP Redis.

$ sudo apt install php-redis

Шаг 8 - Установка Craft CMS

Перед установкой Craft CMS вы можете проверить, соответствуете ли вы всем требованиям сервера для его работы, используя следующую команду.

$ curl -Lsf https://raw.githubusercontent.com/craftcms/server-check/HEAD/check.sh | bash

Вы получите следующий вывод.

Запуск проверки сервера Craft…

Проверка требований Craft CMS

Этот скрипт проверяет, соответствует ли конфигурация вашего веб-сервера требованиям для запуска установки Craft CMS.
Он проверяет, работает ли сервер на правильной версии PHP, загружены ли соответствующие расширения PHP,
и правильны ли настройки файла php.ini.

Результаты:
--------

PHP 8.2+: OK

Расширение BCMath: OK

Расширение ctype: OK

Расширение cURL: OK

Расширение DOM: OK

Расширение Fileinfo: OK

Расширение GD или расширение ImageMagick: OK

Расширение iconv: OK

Расширение Intl: OK

Расширение JSON: OK

Расширение Multibyte String (с отключенной перегрузкой функций): OK

Расширение OPcache (с save_comments): OK

Расширение OpenSSL: OK

Расширение PCRE (с поддержкой UTF-8): OK

Расширение PDO: OK

Расширение Reflection: OK

Расширение SPL: OK

Расширение Zip: OK

ignore_user_abort(): OK

password_hash(): OK

proc_close(): OK

proc_get_status(): OK

proc_open(): OK

proc_terminate(): OK

allow_url_fopen: OK

ini_set вызовы: OK

Лимит памяти: OK

------------------------------------------
Ошибки: 0   Предупреждения: 0   Всего проверок: 27

Как только все будет в порядке, вы можете продолжить. Создайте корневую директорию веб-сайта.

$ sudo mkdir /var/www/html/craftcms -p

Установите текущего вошедшего пользователя владельцем этой директории.

$ sudo chown -R $USER:$USER /var/www/html/craftcms

Перейдите в директорию.

$ cd /var/www/html/craftcms

Скачайте и установите Craft CMS с помощью Composer. Точка ( .) в конце команды означает, что установка должна быть выполнена в текущей директории.

$ composer create-project craftcms/craft .

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

> @php craft setup/welcome

   ______ .______          ___       _______ .___________.
  /      ||   _  \        /   \     |   ____||           |
 |  ,----'|  |_)  |      /  ^  \    |  |__   `---|  |----`
 |  |     |      /      /  /_\  \   |   __|      |  |
 |  `----.|  |\  \----./  _____  \  |  |         |  |
  \______|| _| `._____/__/     \__\ |__|         |__|

     A       N   E   W       I   N   S   T   A   L   L
               ______ .___  ___.      _______.
              /      ||   \/   |     /       |
             |  ,----'|  \  /  |    |   (----`
             |  |     |  |\/|  |     \   \
             |  `----.|  |  |  | .----)   |
              \______||__|  |__| |_______|


Генерация идентификатора приложения ... готово (CraftCMS--923f03f1-9bea-4c3d-a7ca-1466645ce75d)
Генерация ключа безопасности ... готово (iMdcUi6wQyf9MshEda__vZcCwILbclxz)

Добро пожаловать в Craft CMS!

Вы готовы начать настройку? (да|нет) [нет]:да
Какой драйвер базы данных вы используете? (mysql или pgsql) [mysql] pgsql
Имя или IP-адрес сервера базы данных: [127.0.0.1]
Порт базы данных: [5432]
Имя пользователя базы данных: [root] craftuser
Пароль базы данных:
Имя базы данных: craftcms
Префикс таблицы базы данных:
Проверка учетных данных базы данных ... успех!
Использование схемы по умолчанию "public".
Сохранение учетных данных базы данных в вашем .env файле ... готово

Установить Craft сейчас? (да|нет) [да]:да

Имя пользователя: [admin] navjot
Электронная почта: [email protected]
Пароль:
Подтвердить:
Имя сайта: Howtoforge Tutorials
URL сайта: https://craftcms.example.com
Язык сайта: [en-US]
*** установка Craft

Настройка Redis для работы с Craft CMS

Установите пакет yiisoft/yii2-redis.

$ composer require --prefer-dist yiisoft/yii2-redis:"~2.0.0"

Откройте файл /var/www/html/craftcms/config/app.php для редактирования.

$ nano config/app.php

Вы увидите следующее содержимое в нем.

use craft\helpers\App;

return [
    'id' => App::env('CRAFT_APP_ID') ?: 'CraftCMS',
];

Измените его следующим образом.

use craft\helpers\App;

return [
    'id' => App::env('CRAFT_APP_ID') ?: 'CraftCMS',
    'components' => [
        'cache' => function() {
            $config = [
                'class' => yii\redis\Cache::class,
                'keyPrefix' => Craft::$app->id,
                'defaultDuration' => Craft::$app->config->general->cacheDuration,

                // Полные данные подключения к Redis:
                'redis' => [
                    'hostname' => App::env('REDIS_HOSTNAME') ?: 'localhost',
                    'port' => 6379,
                    'username' => App::env('REDIS_USERNAME') ?: null,
                    'password' => App::env('REDIS_PASSWORD') ?: null,
                ],
            ];

            return Craft::createObject($config);
        },
    ],
];

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено. Это включает Redis в качестве хранилища кэша для Craft CMS. Вы также можете использовать Redis для хранения данных сессий PHP, очереди задач и в качестве драйвера мьютекса. Вы можете найти конфигурацию для этого в документации Craft CMS.

Вам также нужно добавить конфигурацию Redis в файл .env.

$ nano .env

Добавьте следующий код в конец файла.

REDIS_HOSTNAME=localhost
REDIS_USERNAME=navjot
REDIS_PASSWORD=вашпароль

Выберите параметры, как показано выше. Как только закончите, измените группу директории на nginx. Таким образом, как текущий вошедший пользователь, так и Nginx получат доступ к Craft CMS.

$ sudo chgrp -R nginx /var/www/html/craftcms

Дайте группе nginx разрешение на запись в директорию.

$ sudo chmod -R g+w /var/www/html/craftcms

С этого момента вам не нужно будет снова изменять разрешения, и вы сможете выполнять все операции без использования прав root.

Шаг 9 - Установка SSL

Нам нужно установить Certbot для генерации SSL-сертификата. Вы можете либо установить Certbot, используя репозиторий Debian, либо взять последнюю версию, используя инструмент Snapd. Мы будем использовать версию Snapd.

Debian 12 не поставляется с установленным Snapd. Установите пакет Snapd.

$ sudo apt install snapd

Выполните следующие команды, чтобы убедиться, что ваша версия Snapd обновлена.

$ sudo snap install core && sudo snap refresh core

Установите Certbot.

$ sudo snap install --classic certbot

Используйте следующую команду, чтобы убедиться, что команду Certbot можно запустить, создав символическую ссылку в директории /usr/bin.

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Проверьте, работает ли Certbot правильно.

$ certbot --version
certbot 2.7.4

Выполните следующую команду для генерации SSL-сертификата.

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d craftcms.example.com

Вышеуказанная команда загрузит сертификат в директорию /etc/letsencrypt/live/craftcms.example.com на вашем сервере.

Сгенерируйте сертификат группы Диффи-Хеллмана.

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Проверьте службу планировщика обновления Certbot.

$ sudo systemctl list-timers

Вы найдете snap.certbot.renew.service как одну из служб, запланированных для выполнения.

NEXT                        LEFT         LAST                        PASSED     UNIT                      ACTIVATES     
---------------------------------------------------------------------------------------------------------------------------               
Пт 2023-12-01 10:39:00 UTC 12мин осталось   Пт 2023-12-01 10:09:01 UTC 17мин назад  phpsessionclean.timer    phpsessionclean.service
Пт 2023-12-01 17:01:47 UTC 6ч осталось      Чт 2023-11-30 17:01:47 UTC 17ч назад    systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Пт 2023-12-01 18:34:00 UTC 8ч осталось      -                           -          snap.certbot.renew.timer snap.certbot.renew.service

Выполните пробный запуск процесса, чтобы проверить, работает ли обновление SSL.

$ sudo certbot renew --dry-run

Если вы не видите ошибок, вы готовы. Ваш сертификат будет автоматически обновляться.

Шаг 10 - Настройка Nginx

Откройте файл /etc/nginx/nginx.conf для редактирования.

$ sudo nano /etc/nginx/nginx.conf

Добавьте следующую строку перед строкой include /etc/nginx/conf.d/*.conf;.

server_names_hash_bucket_size 64;

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Создайте и откройте файл /etc/nginx/conf.d/craftcms.conf для редактирования.

$ sudo nano /etc/nginx/conf.d/craftcms.conf

Вставьте в него следующий код. Замените craftcms.example.com на ваше доменное имя. Убедитесь, что значение client_max_body_size установлено на 128 МБ, что мы установили для Craft CMS при настройке PHP ранее.

server {

    listen 443 ssl http2;
    listen [::]:443 ssl http2;

    server_name craftcms.example.com;
    root /var/www/html/craftcms/web;

    index index.php;
    client_max_body_size 128M;

    access_log  /var/log/nginx/craftcms.access.log;
    error_log   /var/log/nginx/craftcms.error.log;

    ssl_certificate      /etc/letsencrypt/live/craftcms.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/craftcms.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/craftcms.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        try_files $uri/index.html $uri $uri/ /index.php?$query_string;
    }

    location ~ [^/]\.php(/|$) {
        try_files $uri $uri/ /index.php?$query_string;
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_keep_conn on;
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        fastcgi_param HTTP_PROXY "";
    }
}
# принудить HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  craftcms.example.com;
    return 301   https://$host$request_uri;
}

Сохраните файл, нажав Ctrl + X и введя Y, когда будет предложено.

Проверьте конфигурацию Nginx.

$ sudo nginx -t

Перезапустите сервер Nginx.

$ sudo systemctl restart nginx

Шаг 11 - Доступ к Craft CMS

Откройте URL https://craftcms.example.com в вашем браузере, и вы попадете на следующую страницу.

Главная страница Craft CMS

Чтобы получить доступ к административной странице, посетите URL https://craftcms.example.com/admin, и вы попадете на страницу входа.

Страница входа Craft CMS

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

Панель управления администратора Craft CMS

Теперь вы можете начать использовать Craft CMS для создания своего веб-сайта.

Шаг 12 - Резервное копирование и восстановление Craft CMS

Вы можете создать резервную копию базы данных Craft CMS из панели администратора, посетив Панель администратора >> Утилиты >> Резервное копирование базы данных.

Резервное копирование базы данных Craft CMS

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

$ mysqldump -u craftcmsuser -p craftcms > ~/craftcms.database.sql

Вы также можете создать резервную копию базы данных, используя утилиту командной строки Craft CMS. Преимущество этой утилиты в том, что вам не нужно передавать свои учетные данные базы данных. Узнайте больше о командной утилите Craft CMS здесь.

$ cd /var/www/html/craftcms
$ php craft db/backup ~/
Резервное копирование базы данных ... готово
Файл резервной копии: /home/navjot/howtoforge-tutorials--2023-12-03-065138--v4.5.11.1.sql (200.019 КБ)

Если вы не укажете никакое местоположение в вышеуказанной команде, файл резервной копии будет записан в директорию /var/www/html/craftcms/storage/backups.

Чтобы создать резервную копию файлов, просто скопируйте и сохраните всю папку /var/www/html/craftcms.

$ cd /var/www/html
$ tar -zcf ~/craftcms.tar.gz craftcms

Чтобы восстановить его на новом сервере, извлеките файлы в папку /var/www/html.

$ tar -xzf craftcms.tar.gz -C /var/www/html/

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

$ mysqlimport -u craftcmsuser -p craftcms craftcms.database.sql

Шаг 13 - Обновление Craft CMS

Существует два способа обновления Craft CMS. Один из них — из панели администратора. Когда обновление доступно, вы получите уведомление. Нажмите на уведомление, чтобы обновить. Craft CMS автоматически создаст резервную копию базы данных перед выполнением обновления.

Вы также можете обновить его через терминал.

Чтобы проверить все доступные обновления, выполните следующую команду.

$ cd /var/www/html/craftcms/
$ php craft update

Если обновление доступно, выполните следующую команду, чтобы применить его.

$ php craft update all

Заключение

Это завершает наше руководство, в котором вы узнали, как установить программное обеспечение Craft CMS на сервер Debian 12. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.