Craft là một CMS nguồn mở được viết bằng PHP. Craft cho phép bạn dễ dàng tạo và quản lý nội dung đẹp mắt, cũng như thiết kế và xây dựng chính xác những gì bạn cần. Đây là CMS an toàn và có thể mở rộng với hệ sinh thái plugin lớn và mã nguồn Craft được lưu trữ trên GitHub. Hướng dẫn này sẽ hướng dẫn bạn quy trình cài đặt Craft CMS trên hệ thống CentOS mới sử dụng Nginx làm máy chủ web và chúng tôi sẽ bảo mật trang web bằng chứng chỉ SSL Let's encrypt.
Thiết lập múi giờ:
Cập nhật các gói hệ điều hành (phần mềm) của bạn. Đây là bước đầu tiên quan trọng vì nó đảm bảo bạn có các bản cập nhật và bản sửa lỗi bảo mật mới nhất cho các gói phần mềm mặc định của hệ điều hành:
Cài đặt một số gói thiết yếu cần thiết cho việc quản trị cơ bản của hệ điều hành CentOS:
Cài đặt PHP cũng như các tiện ích mở rộng PHP cần thiết:
Kiểm tra phiên bản PHP:
Khởi động và kích hoạt dịch vụ PHP-FPM:
Chạy
Chúng ta có thể chuyển sang bước tiếp theo, đó là cài đặt và thiết lập cơ sở dữ liệu.
Cài đặt máy chủ cơ sở dữ liệu MariaDB:
Kiểm tra phiên bản MariaDB:
Khởi động và bật dịch vụ MariaDB:
Chạy tập lệnh
Trả lời từng câu hỏi sau:
Kết nối tới shell MariaDB với tư cách là người dùng root:
Tạo một cơ sở dữ liệu MariaDB trống và người dùng cho Craft CMS và ghi nhớ thông tin đăng nhập:
Thoát khỏi MariaDB:
Thay thế
Bước 3 - Cài đặt máy khách
Không nhất thiết phải bảo mật trang web của bạn bằng HTTPS, nhưng đây là một biện pháp tốt để bảo mật lưu lượng truy cập trang web của bạn. Để lấy chứng chỉ TLS từ Let's Encrypt, chúng ta sẽ sử dụng máy khách Acme.sh. Acme.sh là phần mềm shell unix thuần túy để lấy chứng chỉ TLS từ Let's Encrypt mà không cần bất kỳ sự phụ thuộc nào.
Tải xuống và cài đặtAcme.sh:
Kiểm tra phiên bản Acme.sh:
Lấy chứng chỉ RSA và ECC/ECDSA cho tên miền/tên máy chủ của bạn:
Sau khi chạy các lệnh trên, chứng chỉ và khóa của bạn sẽ nằm trong:
Tải xuống và cài đặt bản phát hành chính thức mới nhất của Nginx từ kho lưu trữ Nginx chính thức.
Để kiểm tra chữ ký, cần tải xuốngKhóa ký Nginx và nhập khóa này vào vòng khóa của chương trình
Để thiết lập kho lưu trữ yum cho CentOS, hãy tạo tệp có tên
Cài đặt các gói Nginx chính mới nhất:
Khởi động và kích hoạt dịch vụ Nginx:
Kiểm tra phiên bản Nginx:
Cấu hình Nginx forCraft CMS bằng cách chạy:
Và điền cấu hình sau vào tệp:
Thay example.com bằng tên miền của riêng bạn trong tệp ở trên.
LƯU Ý: Để có cấu hình Nginx hoàn chỉnh và sẵn sàng cho sản xuất cho Craft, hãy truy cậphttps://github.com/nystudio107/nginx-craft. Cấu hình được cố tình đơn giản hóa để giữ cho cấu hình dày đặc và đơn giản.
Cấu hình TestNginx:
Tải lại Nginx:
Kiểm tra phiên bản Composer:
LƯU Ý: Các lệnh cài đặt Composer sẽ thay đổi trong tương lai, vì vậy hãy kiểm tra https://getcomposer.org/download/ để biết các lệnh mới nhất nếu các lệnh trên không hoạt động.
Tạo thư mục gốc của tài liệu nơi Craft CMS sẽ nằm:
Điều hướng đến thư mục gốc của tài liệu:
Thay đổi quyền sở hữu của thư mục
Để tạo một dự án Craft mới, hãy chạy lệnh này:
Thay đổi quyền sở hữu thư mục
Chạy
Tạo thư mục
Trong trình duyệt web của bạn, hãy truy cập
Chấp nhận giấy phép bằng cách nhấp vào nút "Đã hiểu":
Điền thông tin chi tiết về cơ sở dữ liệu và nhấp vào nút "Tiếp theo":
Tạo tài khoản Craft và nhấp vào nút "Tiếp theo":
Thiết lập trang web của bạn và nhấp vào nút "Hoàn tất":
Sau đó, bạn sẽ được chuyển hướng đến trang quản trị Craft:
Yêu cầu
Craft yêu cầu những điều sau:- Phiên bản PHP 7.0 trở lên với các phần mở rộng PHP sau: (ctype, cURL, GD hoặc ImageMagick, iconv, JSON, Multibyte String, OpenSSL, PCRE, Trình điều khiển PDO MySQL hoặc Trình điều khiển PDO PostgreSQL, PDO, Reflection, SPL, Zip, Intl, DOM)
- MySQL 5.5 trở lên với InnoDB, MariaDB 5.5 trở lên hoặc PostgreSQL 9.5 trở lên
- Ít nhất 256MB bộ nhớ được phân bổ cho PHP
- Ít nhất 200MB dung lượng đĩa trống
Điều kiện tiên quyết
- Hệ điều hành chạy CentOS 7.
- Người dùng không phải root có quyền sudo.
Các bước ban đầu
Kiểm tra phiên bản CentOS của bạn:
Mã:
cat /etc/centos-release
# CentOS Linux phát hành 7.6.1810 (Core)
Mã:
timedatectl list-timezones
sudo timedatectl set-timezone 'Khu vực/Thành phố'
Mã:
sudo yum update -y
Mã:
sudo yum install -y curl wget vim gitunzip socat
Bước 1 - Cài đặt PHP và các tiện ích mở rộng PHP cần thiết
Thiết lập kho lưu trữ YUM của Webtatic:
Mã:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Mã:
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-curl php72w-gd php72w-pecl-imagick php72w-json php72w-mbstring php72w-mysql php72w-pgsql php72w-zip php72w-intl php72w-xml php72w-pdo
Mã:
php --version
#PHP 7.2.13 (cli) (xây dựng: 6 tháng 12 năm 2018 23:18:37) (NTS)
# Bản quyền (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Bản quyền (c) 1998-2018 Zend Technologies
Mã:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
sudo vim /etc/php.ini
và đặt memory_limit
thành ít nhất 256MB
:
Mã:
memory_limit = 256M
Bước 2- Cài đặt MariaDB và tạo cơ sở dữ liệu
Craft CMS hỗ trợ cơ sở dữ liệu MySQL/MariaDB và PostgreSQL. Trong hướng dẫn này, chúng ta sẽ sử dụng MariaDB làm máy chủ cơ sở dữ liệu.Cài đặt máy chủ cơ sở dữ liệu MariaDB:
Mã:
sudo yum install -y mariadb-server
Mã:
mysql --version
#mysql Ver 15.1 Distrib 5.5.60-MariaDB, dành cho Linux (x86_64) bằng readline 5.1
Mã:
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
mysql_secure installation
để cải thiện bảo mật MariaDB và đặt mật khẩu cho người dùng root
MariaDB:
Mã:
sudo mysql_secure_installation
Mã:
Mật khẩu mới: [B]your_secure_password[/b]
Nhập lại mật khẩu mới: [B]your_secure_password[/b]
Xóa người dùng ẩn danh? [Y/n] [B]Y[/b]
Không cho phép đăng nhập root từ xa? [Y/n] [B]Y[/b]
Xóa cơ sở dữ liệu thử nghiệm và quyền truy cập vào cơ sở dữ liệu đó? [Y/n] [B]Y[/b]
Tải lại bảng đặc quyền ngay bây giờ? [Y/n] [B]Y[/b]
Mã:
sudo mysql -u root -p
# Nhập mật khẩu
Mã:
mariadb>CREATE DATABASE dbname;
mariadb>GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mariadb>FLUSH PRIVILEGES;
Mã:
mariadb>exit
dbname
, username
và password
bằng tên của riêng bạn.Bước 3 - Cài đặt máy khách acme.sh
và lấy chứng chỉ Let's Encrypt (tùy chọn)
Không nhất thiết phải bảo mật trang web của bạn bằng HTTPS, nhưng đây là một biện pháp tốt để bảo mật lưu lượng truy cập trang web của bạn. Để lấy chứng chỉ TLS từ Let's Encrypt, chúng ta sẽ sử dụng máy khách Acme.sh. Acme.sh là phần mềm shell unix thuần túy để lấy chứng chỉ TLS từ Let's Encrypt mà không cần bất kỳ sự phụ thuộc nào.Tải xuống và cài đặtAcme.sh:
Mã:
sudo mkdir /etc/letsencrypt
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [emailprotected]
cd ~
Mã:
/etc/letsencrypt/acme.sh --version
# v2.8.0
Mã:
# RSA 2048
sudo /etc/letsencrypt/acme.sh --issue--standalone--home /etc/letsencrypt -d example.com --keylength 2048
# ECDSA
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256
- Đối với RSA: thư mục
/etc/letsencrypt/example.com
. - Đối với ECC/ECDSA: thư mục
/etc/letsencrypt/example.com_ecc
.
Bước 4 - Cài đặt và cấu hình Nginx
Craft CMS có thể hoạt động tốt với nhiều phần mềm máy chủ web phổ biến. Trong hướng dẫn này, chúng tôi đã chọn Nginx.Tải xuống và cài đặt bản phát hành chính thức mới nhất của Nginx từ kho lưu trữ Nginx chính thức.
Để kiểm tra chữ ký, cần tải xuốngKhóa ký Nginx và nhập khóa này vào vòng khóa của chương trình
rpm
:
Mã:
wget https://nginx.org/keys/nginx_signing.key
sudo rpm --import nginx_signing.key
/etc/yum.repos.d/nginx_mainline.repo
với nội dung sau:
Mã:
[nginx]name=nginx repobaseurl=http://nginx.org/packages/mainline/centos/7/$basearch/gpgcheck=1enabled=1
Mã:
sudo yum install -y nginx nginx-module-geoip nginx-module-image-filter nginx-module-njs nginx-module-perl nginx-module-xslt
Mã:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Mã:
nginx -v
#nginx phiên bản: nginx/1.15.8
Mã:
sudo vim /etc/nginx/conf.d/craft.conf
Mã:
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com www.example.com;
root /var/www/craft/web;
index index.php;
ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
vị trí / {
try_files $uri/index.html $uri $uri/ /index.php?$query_string;
}
vị trí ~ [^/]\.php(/|$) {
try_files $uri $uri/ /index.php?$query_string;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param HTTP_PROXY "";
}
}
LƯU Ý: Để có cấu hình Nginx hoàn chỉnh và sẵn sàng cho sản xuất cho Craft, hãy truy cậphttps://github.com/nystudio107/nginx-craft. Cấu hình được cố tình đơn giản hóa để giữ cho cấu hình dày đặc và đơn giản.
Cấu hình TestNginx:
Mã:
sudo nginx -t
Mã:
sudo systemctl reload nginx.service
Bước 5 - Cài đặt Composer
Cài đặt Composer, trình quản lý phụ thuộc PHP toàn cầu:
Mã:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '93b54496392c062774670ac18b134c3b3a95e5a5e5c8f1a9f115f203b75bf9a129d5daa8ba6a13e2cc8a1da0806388a8') { echo 'Đã xác minh trình cài đặt'; } else { echo 'Trình cài đặt bị hỏng'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
Mã:
composer --version
#Composer version 1.8.0 2018-12-03 10:31:16
Bước 6 - Cài đặt Craft CMS
Craft CMS có thể được tải xuống bằng Composer hoặc bằng cách tải xuống thủ công.zip
hoặc lưu trữ tar.gz
. Trong hướng dẫn này, chúng ta sẽ sử dụng Composer để tải xuống Craft CMS.Tạo thư mục gốc của tài liệu nơi Craft CMS sẽ nằm:
Mã:
sudo mkdir -p /var/www/craft
Mã:
cd /var/www/craft
/var/www/craft
thành {your_username}.
Mã:
sudo chown -R {your_username}:{your_username} /var/www/craft
Mã:
composer create-project craftcms/craft .
/var/www/craft
thành nginx:
Mã:
sudo chown -R nginx:nginx /var/www/craft
sudo vim /etc/php-fpm.d/www.conf
và đặt người dùng và nhóm thành nginx
. Ban đầu, chúng sẽ được thiết lập thành apache:
Mã:
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
/var/lib/php/session/
và thay đổi quyền sở hữu thành nginx
.
Mã:
sudo mkdir -p /var/lib/php/session && sudo chown -R nginx:nginx /var/lib/php/session
http:///index.php?p=admin/install
(thay thế
bằng tên máy chủ web của bạn). Nếu bạn đã thực hiện mọi thứ đúng cho đến thời điểm này, bạn sẽ thấy Trình hướng dẫn thiết lập của Craft.Bước 7 - Hoàn tất thiết lập Craft CMS
Sau khi mở URL cài đặt của bạn, trang như bên dưới sẽ xuất hiện. Nhấp vào nút "Cài đặt Craft":Chấp nhận giấy phép bằng cách nhấp vào nút "Đã hiểu":
Điền thông tin chi tiết về cơ sở dữ liệu và nhấp vào nút "Tiếp theo":
Tạo tài khoản Craft và nhấp vào nút "Tiếp theo":
Thiết lập trang web của bạn và nhấp vào nút "Hoàn tất":
Sau đó, bạn sẽ được chuyển hướng đến trang quản trị Craft: