Установка 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 в вашем браузере, и вы попадете на следующую страницу.

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

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

Теперь вы можете начать использовать Craft CMS для создания своего веб-сайта.
Шаг 12 - Резервное копирование и восстановление 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. Если у вас есть какие-либо вопросы, оставьте их в комментариях ниже.
Get new posts in your inbox
No spam. Unsubscribe anytime.