如何在 Debian 12 上安装 Craft CMS
本教程适用于这些操作系统版本
- Debian 12(书虫)
- Debian 11(靶心)
- Debian 9(延伸)
在此页面上
- 先决条件
- 第 1 步 - 配置防火墙
- 第 2 步 - 安装 Nginx
- 第 3 步 - 安装 PHP 和扩展
- 第 4 步 - 配置 PHP-FPM
- 第 5 步 - 安装 Composer
- 第 6 步 - 安装和配置 PostgreSQL
- 第 7 步 - 安装和配置 Redis
第 8 步 - 安装 Craft CMS
- 让 Redis 与 Craft CMS 配合使用
Craft CMS 是一个开源内容管理系统,用于创建各种网站。它是一个安全且可扩展的 CMS,具有广泛的插件生态系统以及高质量的免费和付费插件。它具有直观、用户友好的控制面板,用于内容创建和管理任务。它建立在 Yii PHP 框架之上。 Twig 模板引擎为其模板系统提供支持。它可以使用MySQL和PostgreSQL数据库进行存储,并使用Redis数据库进行缓存和会话存储。
在本教程中,您将学习如何在 Debian 12 服务器上安装 Craft CMS。您还将了解如何使 Redis 与其配合使用,以及如何备份和恢复使用 Craft CMS 制作的网站。
先决条件
运行 Debian 12 且至少具有 1 GB RAM 的服务器。
具有 sudo 权限的非 root 用户。
简单防火墙 (UFW) 已启用并正在运行。
完全合格的域名 (FQDN),例如指向您的服务器的craftcms.example.com
。
具有 Amazon SES 或 Mailgun 等电子邮件服务的 SMTP 账户。
一切都更新了。
$ 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
您应该看到类似以下内容。
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
允许 HTTP 和 HTTPs 端口。
$ sudo ufw allow http
$ sudo ufw allow https
再次检查状态以确认。
$ sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (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 - high performance web server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Fri 2023-12-01 09:46:46 UTC; 18s ago
Docs: https://nginx.org/en/docs/
Process: 39483 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 39484 (nginx)
Tasks: 2 (limit: 2315)
Memory: 1.7M
CPU: 6ms
CGroup: /system.slice/nginx.service
??39484 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
??39485 "nginx: worker process"
第 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,请添加 Ondrej 的 PHP 存储库。
首先,导入 Sury 的存储库 PHP GPG 密钥。
$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
添加 Ondrej Sury 的 PHP 存储库。
$ 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) (built: Nov 24 2023 13:10:42) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.13, Copyright (c) Zend Technologies
with Zend OPcache v8.2.13, Copyright (c), by Zend Technologies
检查 PHP 服务的状态。
$ sudo systemctl status php8.2-fpm
? php8.2-fpm.service - The PHP 8.2 FastCGI Process Manager
Loaded: loaded (/lib/systemd/system/php8.2-fpm.service; enabled; preset: enabled)
Active: active (running) since Fri 2023-12-01 10:29:53 UTC; 34min ago
Docs: man:php-fpm8.2(8)
Process: 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 (code=exited, status=0/SUCCESS)
Main PID: 65821 (php-fpm8.2)
Status: "Processes active: 0, idle: 3, Requests: 208, slow: 0, Traffic: 0.2req/sec"
Tasks: 4 (limit: 2315)
Memory: 83.4M
CPU: 6.456s
CGroup: /system.slice/php8.2-fpm.service
??65821 "php-fpm: master process (/etc/php/8.2/fpm/php-fpm.conf)"
??65823 "php-fpm: pool www"
??65824 "php-fpm: pool www"
??65843 "php-fpm: pool www"
第 4 步 - 配置 PHP-FPM
打开 php.ini 进行编辑。
$ sudo nano /etc/php/8.2/fpm/php.ini
要设置文件上传大小,请更改 upload_max_filesize
和 post_max_size
变量的值。该值决定您可以上传到 Craft CMS 的文件大小。出于我们的目的,我们将其设置为 128 MB。您可以根据自己的喜好进行设置。
$ 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
我们需要将 PHP 进程的 Unix 用户/组设置为 nginx。在文件中找到 user=www-data
和 group=www-data
行,并将其更改为 nginx
。
...
; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
user = nginx
group = nginx
...
另外,在文件中找到 listen.owner=www-data
和 listen.group=www-data
行,并将其更改为 nginx
。
listen.owner = nginx
listen.group = nginx
按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
重新启动 PHP-fpm 进程。在重新启动 PHP 服务之前,请确保您已经安装了 Nginx,否则,它将失败,因为它将无法找到 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 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
您将收到以下输出。
Installer verified
运行安装脚本以下载最新版本的 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 version 2.6.5 2023-10-06 10:11:52
第 6 步 - 安装和配置 PostgreSQL
Debian 12 默认附带 PostgreSQL 15。我们将改用 PostgreSQL 16。
运行以下命令添加 PostgreSQL GPG 密钥。
$ 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
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; preset: enabled)
Active: active (exited) since Wed 2023-11-29 05:54:03 UTC; 11s ago
Main PID: 20170 (code=exited, status=0/SUCCESS)
CPU: 1ms
Nov 29 05:54:03 craftcms systemd[1]: Starting postgresql.service - PostgreSQL RDBMS...
Nov 29 05:54:03 craftcms systemd[1]: Finished postgresql.service - PostgreSQL RDBMS.
您可以看到该服务默认已启用并正在运行。
启动 PostgreSQL shell。
$ sudo -i -u postgres psql
创建 Craft CMS 数据库。
postgres=# CREATE DATABASE craftcms;
创建 Craft CMS 用户并选择一个强密码。
postgres-# CREATE USER craftuser WITH PASSWORD 'Your_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
Password:
psql (16.1 (Debian 16.1-1.pgdg120+1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, compression: off)
Type "help" for help.
craftcms=>
输入 \q
退出 shell。
第 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 ~* >yourpassword
按 Ctrl + X 并在出现提示时输入 Y 来保存文件。
重新启动 Redis 服务器以实施更改。
$ sudo systemctl restart redis
打开 Redis 外壳。
$ redis-cli
使用PING
命令。它将给出身份验证错误。
127.0.0.1:6379> PING
(error) NOAUTH Authentication required.
使用AUTH
命令登录。
127.0.0.1:6379> AUTH navjot yourpassword
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
您将得到以下输出。
Running Craft Server Check…
Craft CMS Requirement Checker
This script checks if your web server configuration meets the requirements for running a Craft CMS installation.
It checks if the server is running the right version of PHP, if appropriate PHP extensions have been loaded,
and if php.ini file settings are correct.
Results:
--------
PHP 8.2+: OK
BCMath extension: OK
ctype extension: OK
cURL extension: OK
DOM extension: OK
Fileinfo extension: OK
GD extension or ImageMagick extension: OK
iconv extension: OK
Intl extension: OK
JSON extension: OK
Multibyte String extension (with Function Overloading disabled): OK
OPcache extension (with save_comments): OK
OpenSSL extension: OK
PCRE extension (with UTF-8 support): OK
PDO extension: OK
Reflection extension: OK
SPL extension: OK
Zip extension: 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 calls: OK
Memory Limit: OK
------------------------------------------
Errors: 0 Warnings: 0 Total checks: 27
一旦一切正常,您就可以继续。创建网站根目录。
$ sudo mkdir /var/www/html/craftcms -p
将当前登录的用户设置为该目录的所有者。
$ sudo chown -R $USER:$USER /var/www/html/craftcms
切换到目录。
$ cd /var/www/html/craftcms
使用 Composer 下载并安装 Craft CMS。命令末尾的点 (.
) 表示安装应在当前目录中执行。
$ composer create-project craftcms/craft .
在安装过程中,系统会要求您提供有关数据库和管理员帐户的一些详细信息。站点 URL 及其语言如下所示。
> @php craft setup/welcome
______ .______ ___ _______ .___________.
/ || _ \ / \ | ____|| |
| ,----'| |_) | / ^ \ | |__ `---| |----`
| | | / / /_\ \ | __| | |
| `----.| |\ \----./ _____ \ | | | |
\______|| _| `._____/__/ \__\ |__| |__|
A N E W I N S T A L L
______ .___ ___. _______.
/ || \/ | / |
| ,----'| \ / | | (----`
| | | |\/| | \ \
| `----.| | | | .----) |
\______||__| |__| |_______/
Generating an application ID ... done (CraftCMS--923f03f1-9bea-4c3d-a7ca-1466645ce75d)
Generating a security key ... done (iMdcUi6wQyf9MshEda__vZcCwILbclxz)
Welcome to Craft CMS!
Are you ready to begin the setup? (yes|no) [no]:yes
Which database driver are you using? (mysql or pgsql) [mysql] pgsql
Database server name or IP address: [127.0.0.1]
Database port: [5432]
Database username: [root] craftuser
Database password:
Database name: craftcms
Database table prefix:
Testing database credentials ... success!
Using default schema "public".
Saving database credentials to your .env file ... done
Install Craft now? (yes|no) [yes]:yes
Username: [admin] navjot
Email: [email
Password:
Confirm:
Site name: Howtoforge Tutorials
Site URL: https://craftcms.example.com
Site language: [en-US]
*** installing 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,
// Full Redis connection details:
'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=yourpassword
选择如上所示的选项。完成后,将目录组更改为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 证书。您可以使用 Debian 的存储库安装 Certbot,也可以使用 Snapd 工具获取最新版本。我们将使用 Snapd 版本。
Debian 12 并未安装 Snapd。安装 Snapd 软件包。
$ sudo apt install snapd
运行以下命令以确保您的 Snapd 版本是最新的。
$ sudo snap install core && sudo snap refresh core
安装证书机器人。
$ sudo snap install --classic certbot
使用以下命令确保可以通过创建到 /usr/bin
目录的符号链接来运行 Certbot 命令。
$ 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 -d craftcms.example.com
上述命令会将证书下载到服务器上的 /etc/letsencrypt/live/craftcms.example.com
目录中。
生成 Diffie-Hellman 组证书。
$ 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
---------------------------------------------------------------------------------------------------------------------------
Fri 2023-12-01 10:39:00 UTC 12min left Fri 2023-12-01 10:09:01 UTC 17min ago phpsessionclean.timer phpsessionclean.service
Fri 2023-12-01 17:01:47 UTC 6h left Thu 2023-11-30 17:01:47 UTC 17h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
Fri 2023-12-01 18:34:00 UTC 8h left - - 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
的值设置为 128MB,这是我们之前配置 PHP 时为 Craft CMS 设置的值。
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 "";
}
}
# enforce 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 ~/
Backing up the database ... done
Backup file: /home/navjot/howtoforge-tutorials--2023-12-03-065138--v4.5.11.1.sql (200.019 KB)
如果您在上述命令中未指定任何位置,备份文件将写入 /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
结论
我们的教程到此结束,您学习了如何在 Debian 12 服务器上安装 Craft CMS 软件。如果您有任何疑问,请在下面的评论中发表。