Craft CMS là một hệ thống quản lý nội dung nguồn mở để tạo ra mọi loại trang web. Đây là một CMS an toàn và có thể mở rộng với hệ sinh thái plugin mở rộng và các plugin miễn phí và trả phí chất lượng cao. Nó có bảng điều khiển trực quan, thân thiện với người dùng để tạo nội dung và các tác vụ quản trị. Nó được xây dựng trên nền tảng Yii PHP. Công cụ tạo mẫu Twig cung cấp năng lượng cho hệ thống tạo mẫu của nó. Nó có thể hoạt động với cả cơ sở dữ liệu MySQL và PostgreSQL để lưu trữ và sử dụng cơ sở dữ liệu Redis để lưu trữ đệm và lưu trữ phiên.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Craft CMS trên máy chủ Debian 12. Bạn cũng sẽ học cách bật Redis để làm việc với nó và cách sao lưu và khôi phục trang web được tạo bằng Craft CMS.
[*]
Cần có một số gói thiết yếu để chạy hướng dẫn và Craft CMS. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Kiểm tra trạng thái của tường lửa.
Bạn sẽ thấy nội dung tương tự như sau.
Cho phép các cổng HTTP và HTTPs.
Kiểm tra lại trạng thái để xác nhận.
Nhập khóa ký của Nginx.
Thêm kho lưu trữ cho phiên bản ổn định của Nginx.
Cập nhật hệ thống kho lưu trữ.
Cài đặt Nginx.
Xác minh cài đặt. Trên hệ thống Debian, lệnh sau chỉ hoạt động với
Khởi động Nginx máy chủ.
Kiểm tra trạng thái dịch vụ.
Để luôn sử dụng phiên bản PHP mới nhất hoặc nếu bạn muốn cài đặt nhiều phiên bản PHP, hãy thêm kho lưu trữ PHP của Ondrej.
Đầu tiên, hãy nhập khóa GPG PHP của kho lưu trữ Sury.
Thêm kho lưu trữ PHP của Ondrej Sury.
Cập nhật danh sách kho lưu trữ hệ thống của bạn.
Bạn có thể sẽ nhận được thông tin về các bản nâng cấp đang chờ xử lý. Chạy chúng.
Cài đặt PHP và các tiện ích mở rộng của nó.
Kiểm tra phiên bản PHP đã cài đặt.
Kiểm tra trạng thái của dịch vụ PHP.
Để đặt kích thước tải tệp lên, hãy thay đổi các giá trị của
Cấu hình giới hạn bộ nhớ của PHP tùy thuộc vào tài nguyên máy chủ và yêu cầu của bạn.
Mở tệp
Chúng ta cần đặt người dùng/nhóm Unix của các quy trình PHP thành nginx. Tìm các dòng
Ngoài ra, hãy tìm các dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại quy trình PHP-fpm. Hãy đảm bảo bạn đã cài đặt Nginx trước khi khởi động lại dịch vụ PHP, nếu không, dịch vụ sẽ không hoạt động vì không tìm thấy nhóm
Tải xuống tập lệnh cài đặt Composer.
Xác minh trình cài đặt đã tải xuống.
Bạn sẽ nhận được thông báo sau đầu ra.
Chạy tập lệnh cài đặt để tải xuống phiên bản mới nhất của Composer.
Xóa cài đặt script.
Di chuyển tệp nhị phân đã tải xuống đến
Xác nhận cài đặt.
Chạy lệnh sau để thêm khóa GPG PostgreSQL.
Thêm kho lưu trữ APT vào danh sách nguồn của bạn.
Cập nhật hệ thống kho lưu trữ.
Bây giờ, bạn có thể cài đặt PostgreSQL bằng lệnh bên dưới.
Gói
Xác minh phiên bản.
Kiểm tra trạng thái của PostgreSQL dịch vụ.
Bạn có thể thấy dịch vụ được bật và chạy theo mặc định.
Khởi chạy shell PostgreSQL.
Tạo Craft CMS cơ sở dữ liệu.
Tạo người dùng Craft CMS và chọn mật khẩu mạnh.
Đổi chủ sở hữu cơ sở dữ liệu thành Craft CMS người dùng.
Cấp tất cả các quyền trên cơ sở dữ liệu cho người dùng Craft CMS.
Thoát khỏi shell.
Xác minh rằng thông tin đăng nhập của bạn hoạt động.
Thoát khỏi shell bằng cách nhập
Xác minh phiên bản.
Tuy nhiên, nếu bạn muốn cài đặt phiên bản mới nhất, bạn có thể thực hiện bằng cách sử dụng kho lưu trữ chính thức của Redis bằng cách phát hành lệnh sau lệnh.
Bước tiếp theo là thêm xác thực vào máy chủ Redis. Kể từ Redis v6.0, cách tốt nhất để thêm xác thực là sử dụng ACL (Danh sách kiểm soát truy cập). Mở tệp
Tìm dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tiếp theo, tạo và mở tệp
Thêm dòng sau vào đó.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Khởi động lại máy chủ Redis để triển khai thay đổi.
Mở shell Redis.
Sử dụng Lệnh
Sử dụng lệnh
Sử dụng lệnh
Thoát khỏi shell.
Bạn cũng sẽ cần cài đặt PHP Redis phần mở rộng.
Bạn sẽ nhận được thông báo sau đầu ra.
Khi mọi thứ ổn thỏa, bạn có thể tiếp tục. Tạo thư mục gốc của web.
Đặt người dùng hiện đang đăng nhập làm chủ sở hữu của thư mục này.
Chuyển sang thư mục.
Tải xuống và cài đặt Craft CMS bằng Composer. Dấu chấm (
Trong quá trình cài đặt, bạn sẽ được yêu cầu cung cấp một số thông tin chi tiết liên quan đến cơ sở dữ liệu và tài khoản quản trị viên. URL trang web và ngôn ngữ của trang web như được hiển thị bên dưới.
Mở tệp
Bạn sẽ thấy nội dung sau trong đó.
Thay đổi thành theo sau.
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc. Thao tác này kích hoạt Redis làm bộ nhớ đệm cho Craft CMS. Bạn cũng có thể sử dụng Redis để lưu trữ dữ liệu phiên PHP, hàng đợi công việc và làm trình điều khiển mutex. Bạn có thể tìm thấy cấu hình cho nó trong tài liệu của Craft CMS.
Bạn cũng cần thêm cấu hình Redis vào tệp
Thêm mã sau vào cuối file.
Chọn các tùy chọn như hiển thị ở trên. Sau khi hoàn tất, hãy đổi nhóm thư mục thành
Cấp cho nhóm
Từ đây trở đi, bạn sẽ không cần phải thay đổi quyền nữa và có thể thực hiện mọi thao tác mà không cần sử dụng quyền root.
Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Chạy các lệnh sau để đảm bảo phiên bản Snapd của bạn được cập nhật.
Cài đặt Certbot.
Sử dụng lệnh sau để đảm bảo lệnh Certbot có thể chạy được bằng cách tạo liên kết tượng trưng đến
Kiểm tra xem Certbot có hoạt động bình thường không.
Chạy lệnh sau để tạo SSL Chứng chỉ.
Lệnh trên sẽ tải chứng chỉ xuống thư mục
Tạo nhóm Diffie-Hellman chứng chỉ.
Kiểm tra dịch vụ lập lịch gia hạn Certbot.
Bạn sẽ tìm thấy
Thực hiện chạy thử quy trình để kiểm tra xem việc gia hạn SSL có hoạt động không tốt.
Nếu bạn không thấy lỗi nào, bạn đã hoàn tất. Chứng chỉ của bạn sẽ tự động gia hạn.
Thêm dòng sau vào trước dòng
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Tạo và mở tệp
Dán mã sau vào đó. Thay thế
Lưu tệp bằng cách nhấn Ctrl + X và nhập Y khi được nhắc.
Xác minh cấu hình Nginx của bạn.
Khởi động lại Nginx máy chủ.
Để truy cập trang quản trị, hãy truy cập URL
Nhập thông tin đăng nhập quản trị của bạn và nhấp vào phím Đăng nhập để đăng nhập. Bạn sẽ được đưa đến bảng điều khiển sau.
Bây giờ bạn có thể bắt đầu sử dụng Craft CMS để xây dựng trang web của mình.
Nhấp vào nút Sao lưu để tải xuống bản sao lưu cơ sở dữ liệu của bạn. Bạn cũng có thể tạo bản sao lưu bằng thiết bị đầu cuối. Chạy lệnh sau để tạo bản sao lưu. Nhập mật khẩu của bạn khi được nhắc.
Bạn cũng có thể tạo bản sao lưu cơ sở dữ liệu bằng tiện ích dòng lệnh Craft CMS. Ưu điểm của tiện ích này là bạn không cần phải truyền thông tin xác thực cơ sở dữ liệu của mình. Đọc thêm về Tiện ích bảng điều khiển lệnh Craft CMS tại đây.
Nếu bạn không chỉ định bất kỳ vị trí nào trong lệnh trên, tệp sao lưu sẽ được ghi vào thư mục
Để sao lưu tệp, chỉ cần sao chép và lưu toàn bộ thư mục
Để khôi phục trên máy chủ mới, hãy giải nén các tệp vào
Tạo cơ sở dữ liệu có cùng thông tin đăng nhập trên máy chủ mới và khôi phục cơ sở dữ liệu bằng lệnh sau. Nhập mật khẩu khi được nhắc.
Bạn cũng có thể cập nhật thông qua thiết bị đầu cuối.
Để kiểm tra tất cả các bản cập nhật khả dụng, hãy chạy lệnh sau.
Nếu có bản cập nhật khả dụng, hãy chạy lệnh sau để áp dụng bản cập nhật đó.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Craft CMS trên máy chủ Debian 12. Bạn cũng sẽ học cách bật Redis để làm việc với nó và cách sao lưu và khôi phục trang web được tạo bằng Craft CMS.
Điều kiện tiên quyết
-
Máy chủ chạy Debian 12 với tối thiểu 1 GB RAM.
-
Người dùng không phải root có quyền sudo.
-
Tường lửa đơn giản (UFW) được bật và đang chạy.
-
Tên miền đủ điều kiện (FQDN) nhưcraftcms.example.com
trỏ đến máy chủ của bạn.
-
Tài khoản SMTP có dịch vụ email như Amazon SES hoặc Mailgun.
-
Mọi thứ đều được cập nhật.
Mã:
$ sudo apt update && sudo apt upgrade
Cần có một số gói thiết yếu để chạy hướng dẫn và Craft CMS. Một số trong số này sẽ có sẵn trên máy chủ của bạn.
Mã:
$ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
Bước 1 - Cấu hình Tường lửa
Bước đầu tiên trước khi cài đặt bất kỳ gói nào là cấu hình tường lửa để cho phép kết nối HTTP và HTTPS.Kiểm tra trạng thái của tường lửa.
Mã:
$ sudo ufw status
Mã:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Mã:
$ sudo ufw allow http
$ sudo ufw allow https
Mã:
$ 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)
Bước 2 - Cài đặt Nginx
Debian 12 đi kèm với phiên bản cũ hơn của Nginx. Bạn cần tải xuống kho lưu trữ Nginx chính thức để cài đặt phiên bản mới nhất.Nhập khóa ký của Nginx.
Mã:
$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \ | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Mã:
$ 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
Mã:
$ sudo apt update
Mã:
$ sudo apt install nginx
sudo
.
Mã:
$ sudo nginx -v
nginx version: nginx/1.24.0
Mã:
$ sudo systemctl start nginx
Mã:
$ 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"
Bước 3 - Cài đặt PHP và tiện ích mở rộng
Debian 12 mặc định đi kèm với PHP 8.2. Bạn có thể cài đặt nó và các tiện ích mở rộng mà Craft CMS yêu cầu bằng cách chạy lệnh sau.
Mã:
$ 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
Đầu tiên, hãy nhập khóa GPG PHP của kho lưu trữ Sury.
Mã:
$ sudo curl -sSLo /usr/share/keyrings/deb.sury.org-php.gpg https://packages.sury.org/php/apt.gpg
Mã:
$ 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'
Mã:
$ sudo apt update
Mã:
$ sudo apt upgrade
Mã:
$ 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
Mã:
$ 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
Mã:
$ 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"
Bước 4 - Cấu hình PHP-FPM
Mởphp.ini
để chỉnh sửa.
Mã:
$ sudo nano /etc/php/8.2/fpm/php.ini
upload_max_filesize
và post_max_size
biến. Giá trị này quyết định kích thước tệp bạn có thể tải lên Craft CMS. Đối với mục đích của chúng tôi, chúng tôi đang đặt ở mức 128 MB. Bạn có thể thiết lập theo ý thích của mình.
Mã:
$ 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
Mã:
$ 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
.
Mã:
$ sudo nano /etc/php/8.2/fpm/pool.d/www.conf
user=www-data
và group=www-data
trong tệp và thay đổi chúng thành nginx
.
Mã:
...
; 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
và listen.group=www-data
trong tệp và thay đổi chúng thành nginx
.
Mã:
listen.owner = nginx
listen.group = nginx
Khởi động lại quy trình PHP-fpm. Hãy đảm bảo bạn đã cài đặt Nginx trước khi khởi động lại dịch vụ PHP, nếu không, dịch vụ sẽ không hoạt động vì không tìm thấy nhóm
nginx
.
Mã:
$ sudo systemctl restart php8.2-fpm
Bước 5 - Cài đặt Composer
Composer hoạt động như một trình quản lý phụ thuộc cho PHP. Đây cũng là trình quản lý phụ thuộc của khung Laravel PHP, là thứ cung cấp sức mạnh cho Craft CMS.Tải xuống tập lệnh cài đặt Composer.
Mã:
$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
Mã:
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'e21205b207c3ff031906575712edab6f13eb0b361f2085f1f1237b7126d785e826a450292b6cfd1d64d92e6563bbde02') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
Mã:
Installer verified
Mã:
$ php composer-setup.php
Mã:
$ php -r "unlink('composer-setup.php');"
/usr/local/bin
thư mục.
Mã:
$ sudo mv composer.phar /usr/local/bin/composer
Mã:
$ composer --version
Composer version 2.6.5 2023-10-06 10:11:52
Bước 6 - Cài đặt và cấu hình PostgreSQL
Debian 12 mặc định đi kèm với PostgreSQL 15. Thay vào đó, chúng tôi sẽ sử dụng PostgreSQL 16.Chạy lệnh sau để thêm khóa GPG PostgreSQL.
Mã:
$ curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor | sudo tee /usr/share/keyrings/postgresql-key.gpg >/dev/null
Mã:
$ 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'
Mã:
$ sudo apt update
Mã:
$ sudo apt install postgresql postgresql-contrib
postgresql-contrib
chứa một số tiện ích bổ sung.Xác minh phiên bản.
Mã:
$ psql --version
psql (PostgreSQL) 16.1 (Debian 16.1-1.pgdg120+1)
Mã:
$ 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.
Khởi chạy shell PostgreSQL.
Mã:
$ sudo -i -u postgres psql
Mã:
postgres=# CREATE DATABASE craftcms;
Mã:
postgres-# CREATE USER craftuser WITH PASSWORD 'Your_Password';
Mã:
postgres-# ALTER DATABASE craftcms OWNER TO craftuser;
Mã:
postgres-# GRANT ALL PRIVILEGES ON DATABASE craftcms TO craftuser;
Mã:
postgres-# \q
Mã:
$ 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
.Bước 7 - Cài đặt và cấu hình Redis
Debian 12 mặc định đi kèm Redis 7.0, đây là phiên bản chúng ta sẽ sử dụng. Cài đặt Redis.
Mã:
$ sudo apt install redis
Mã:
$ redis-server --version
Redis server v=7.0.11 sha=00000000:0 malloc=jemalloc-5.3.0 bits=64 build=c4e7f6bf175a885b
Mã:
$ 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
/etc/redis/redis.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/redis/redis.conf
# aclfile /etc/redis/users.acl
mục nhập và bỏ chú thích bằng cách xóa dấu thăng (#
) ở phía trước nó.
Mã:
aclfile /etc/redis/users.acl
Tiếp theo, tạo và mở tệp
/etc/redis/users.acl
cho chỉnh sửa.
Mã:
$ sudo nano /etc/redis/users.acl
Mã:
user navjot on +@all ~* >yourpassword
Khởi động lại máy chủ Redis để triển khai thay đổi.
Mã:
$ sudo systemctl restart redis
Mã:
$ redis-cli
PING
. Nó sẽ đưa ra lỗi xác thực.
Mã:
127.0.0.1:6379> PING
(error) NOAUTH Authentication required.
AUTH
để đăng nhập.
Mã:
127.0.0.1:6379> AUTH navjot yourpassword
OK
PING
một lần nữa.
Mã:
127.0.0.1:6379> PING
OK
Mã:
127.0.0.1:6379> exit
Mã:
$ sudo apt install php-redis
Bước 8 - Cài đặt Craft CMS
Trước khi cài đặt Craft CMS, bạn có thể kiểm tra xem mình có đáp ứng tất cả các yêu cầu của máy chủ để chạy nó hay không bằng lệnh sau.
Mã:
$ curl -Lsf https://raw.githubusercontent.com/craftcms/server-check/HEAD/check.sh | bash
Mã:
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
Mã:
$ sudo mkdir /var/www/html/craftcms -p
Mã:
$ sudo chown -R $USER:$USER /var/www/html/craftcms
Mã:
$ cd /var/www/html/craftcms
.
) ở cuối lệnh có nghĩa là quá trình cài đặt sẽ được thực hiện trong thư mục hiện tại.
Mã:
$ composer create-project craftcms/craft .
Mã:
> @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: [emailprotected]
Password:
Confirm:
Site name: Howtoforge Tutorials
Site URL: https://craftcms.example.com
Site language: [en-US]
*** installing Craft
Làm cho Redis hoạt động với Craft CMS
Cài đặtyiisoft/yii2-redis
gói.
Mã:
$ composer require --prefer-dist yiisoft/yii2-redis:"~2.0.0"
/var/www/html/craftcms/config/app.php
để chỉnh sửa.
Mã:
$ nano config/app.php
Mã:
use craft\helpers\App;
return [ 'id' => App::env('CRAFT_APP_ID') ?: 'CraftCMS',
];
Mã:
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); }, ],
];
Bạn cũng cần thêm cấu hình Redis vào tệp
.env
.
Mã:
$ nano .env
Mã:
REDIS_HOSTNAME=localhost
REDIS_USERNAME=navjot
REDIS_PASSWORD=yourpassword
nginx
. Bằng cách này, cả người dùng hiện đang đăng nhập và Nginx đều có thể truy cập vào Craft CMS.
Mã:
$ sudo chgrp -R nginx /var/www/html/craftcms
nginx
quyền ghi vào thư mục.
Mã:
$ sudo chmod -R g+w /var/www/html/craftcms
Bước 9 - Cài đặt SSL
Chúng ta cần cài đặt Certbot để tạo chứng chỉ SSL. Bạn có thể cài đặt Certbot bằng kho lưu trữ của Debian hoặc tải phiên bản mới nhất bằng công cụ Snapd. Chúng ta sẽ sử dụng phiên bản Snapd.Debian 12 không đi kèm Snapd đã cài đặt. Cài đặt gói Snapd.
Mã:
$ sudo apt install snapd
Mã:
$ sudo snap install core && sudo snap refresh core
Mã:
$ sudo snap install --classic certbot
/usr/bin
thư mục.
Mã:
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Mã:
$ certbot --version
certbot 2.7.4
Mã:
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [emailprotected] -d craftcms.example.com
/etc/letsencrypt/live/craftcms.example.com
trên máy chủ của bạn.Tạo nhóm Diffie-Hellman chứng chỉ.
Mã:
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Mã:
$ sudo systemctl list-timers
snap.certbot.renew.service
là một trong những dịch vụ được lên lịch chạy.
Mã:
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
Mã:
$ sudo certbot renew --dry-run
Bước 10 - Cấu hình Nginx
Mở tệp/etc/nginx/nginx.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf;
.
Mã:
server_names_hash_bucket_size 64;
Tạo và mở tệp
/etc/nginx/conf.d/craftcms.conf
để chỉnh sửa.
Mã:
$ sudo nano /etc/nginx/conf.d/craftcms.conf
craftcms.example.com
bằng tên miền của bạn. Đảm bảo giá trị của client_max_body_size
được đặt thành 128MB, đây là giá trị chúng tôi đặt cho Craft CMS khi cấu hình PHP trước đó.
Mã:
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;
}
Xác minh cấu hình Nginx của bạn.
Mã:
$ sudo nginx -t
Mã:
$ sudo systemctl restart nginx
Bước 11 - Truy cập Craft CMS
Mở URLhttps://craftcms.example.com
trong trình duyệt của bạn và bạn sẽ được đưa đến trang sau.
Để truy cập trang quản trị, hãy truy cập URL
https://craftcms.example.com/admin
và bạn sẽ được đưa đến trang đăng nhập.
Nhập thông tin đăng nhập quản trị của bạn và nhấp vào phím Đăng nhập để đăng nhập. Bạn sẽ được đưa đến bảng điều khiển sau.

Bây giờ bạn có thể bắt đầu sử dụng Craft CMS để xây dựng trang web của mình.
Bước 12 - Sao lưu và khôi phục Craft CMS
Bạn có thể sao lưu cơ sở dữ liệu của Craft CMS từ bên trong bảng quản trị bằng cách truy cập Bảng điều khiển quản trị >> Tiện ích >> Sao lưu cơ sở dữ liệu.
Nhấp vào nút Sao lưu để tải xuống bản sao lưu cơ sở dữ liệu của bạn. Bạn cũng có thể tạo bản sao lưu bằng thiết bị đầu cuối. Chạy lệnh sau để tạo bản sao lưu. Nhập mật khẩu của bạn khi được nhắc.
Mã:
$ mysqldump -u craftcmsuser -p craftcms > ~/craftcms.database.sql
Mã:
$ 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
.Để sao lưu tệp, chỉ cần sao chép và lưu toàn bộ thư mục
/var/www/html/craftcms
.
Mã:
$ cd /var/www/html
$ tar -zcf ~/craftcms.tar.gz craftcms
/var/www/html
thư mục.
Mã:
$ tar -xzf craftcms.tar.gz -C /var/www/html/
Mã:
$ mysqlimport -u craftcmsuser -p craftcms craftcms.database.sql
Bước 13 - Cập nhật Craft CMS
Có hai cách để cập nhật Craft CMS. Một là từ bên trong bảng quản trị. Khi có bản cập nhật, bạn sẽ nhận được thông báo. Nhấp vào thông báo để nâng cấp. Craft CMS sẽ tự động sao lưu cơ sở dữ liệu trước khi thực hiện cập nhật.Bạn cũng có thể cập nhật thông qua thiết bị đầu cuối.
Để kiểm tra tất cả các bản cập nhật khả dụng, hãy chạy lệnh sau.
Mã:
$ cd /var/www/html/craftcms/
$ php craft update
Mã:
$ php craft update all