ExpressionEngine là một hệ thống quản lý nội dung (CMS) mã nguồn mở, an toàn, linh hoạt, miễn phí, được viết bằng PHP. Mã nguồn của nó được lưu trữ trên Github. Với ExpressionEngine, bạn có thể xây dựng các trang web đầy đủ tính năng, tạo ứng dụng web hoặc cung cấp nội dung cho các ứng dụng di động. Tất cả mà không cần kỹ năng lập trình phức tạp. Hướng dẫn này sẽ hướng dẫn bạn quy trình cài đặt ExpressionEngine trên CentOS 8 mới bằng PHP, MariaDB làm cơ sở dữ liệu và Nginx làm máy chủ web.
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 hệ điều hành CentOS:
Kiểm tra phiên bản PHP:
Để hiển thị PHP được biên dịch trong các mô-đun, bạn có thể chạy:
Khởi động và kích hoạt dịch vụ PHP-FPM:
Kiểm tra phiên bản MariaDB:
Khởi động và kích hoạt dịch vụ MariaDB:
Chạy Tập lệnh
Đăng nhập vào MariaDB với tư cách là người dùng root:
Tạo cơ sở dữ liệu MariaDB và người dùng cơ sở dữ liệu mới, đồng thời ghi nhớ thông tin đăng nhập:
LƯU Ý: Thay thế
Tải xuống và cài đặt acme.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:
Nếu bạn muốn có chứng chỉ giả để thử nghiệm, bạn có thể thêm cờ
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ạo một thư mục để lưu trữ các chứng chỉ của bạn. Chúng tôi sẽ sử dụng thư mục
Cài đặt/sao chép chứng chỉ vào /etc/letsencrypt thư mục:
Tất cả các chứng chỉ sẽ được tự động gia hạn sau mỗi 60 ngày.
Sau khi lấy được chứng chỉ, hãy thoát khỏi người dùng root và quay lại người dùng sudo bình thường:
Bước 4 - Cài đặt Nginx
Cài đặt Nginx webserver:
Kiểm tra phiên bản Nginx:
Khởi động và bật Nginx:
Cấu hình Nginx cho ExpressionEngine. Chạy
Kiểm tra cấu hình NGINX để tìm lỗi cú pháp:
Tải lại dịch vụ NGINX:
Điều hướng đến thư mục gốc của tài liệu:
Tải xuống bản phát hành mới nhất của ExpressionEngine và giải nén các tệp vào một thư mục trên máy chủ của bạn:
Thay đổi quyền sở hữu thư mục
Chạy
Khởi động lại dịch vụ PHP-FPM:
Trỏ trình duyệt của bạn đến URL của tệp
Sau đó, bạn sẽ thấy trang đăng nhập mặc định:
Đây là bảng điều khiển quản trị ExpressionEngine:
Và đây là trang giao diện:
Vậy là xong! Quá trình cài đặt ExpressionEngine đã hoàn tất.
Yêu cầu
ExpressionEngine yêu cầu một máy chủ web chạy PHP và MySQL/MariaDB. Các phiên bản và phần mềm được khuyến nghị là:- PHP phiên bản 7.0 trở lên, chạy với PHP-FPM và các phần mở rộng PHP sau (
gd
,fileinfo
,intl
,mbstring
). - MySQL phiên bản 5.6 trở lên hoặc Percona phiên bản 5.6 trở lên.Hướng dẫn này sẽ sử dụng MariaDB.
- Một máy chủ web như Nginx hoặc Apache. Hướng dẫn này sẽ sử dụng Nginx.
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 8.0.1905 (Core)
Mã:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Mã:
sudo yum update -y
Mã:
sudo yum install -y curl wget vim gitunzip socat bash-completion epel-release
Bước 1 - Cài đặt PHP
Cài đặt PHP cũng như các tiện ích mở rộng PHP cần thiết:
Mã:
sudo yum install -y php-cli php-fpm php-common php-mbstring php-gd php-intl php-mysql php-json php-zip
Mã:
php --version
# PHP 7.2.19 (cli) (được xây dựng: 02/06/2019 09:49:05) ( 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ã:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
Mã:
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Bước 2 - Cài đặt MariaDB
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 10.3.11-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 tính bảo mật cho cài đặt MariaDB của bạn:
Mã:
sudo mysql_secure_installation
Mã:
sudo mysql -u root -p
# Nhập mật khẩu:
Mã:
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
quit
dbname
và username
bằng tên phù hợp với thiết lập của bạn. Thay thế password
bằng một mật khẩu mạnh.Bước 3- Cài đặt Acme.sh client 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ỉ SSL từ Let's Encrypt, chúng ta sẽ sử dụng Acme.sh client. 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 phụ thuộc.Tải xuống và cài đặt acme.sh:
Mã:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail [emailprotected]
source ~/.bashrc
cd ~
Mã:
acme.sh --version
# v2.8.3
Mã:
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
--staging vào các lệnh trê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:
- Đối với RSA: thư mục
/home/username/example.com.
- Đối với ECC/ECDSA: thư mục
/home/username/example.com_ecc.
Mã:
acme.sh --list
/etc/letsencrypt.
Mã:
mkdir -p /etc/letsecnrypt/example.com
[ICODE]sudo mkdir -p /etc/letsencrypt/example.com_ecc[/ICODE]
Mã:
# RSA
acme.sh --install-cert -d example.com --cert-file /etc/letsencrypt/example.com/cert.pem --key-file /etc/letsencrypt/example.com/private.key --fullchain-file /etc/letsencrypt/example.com/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
# ECC/ECDSA
acme.sh --install-cert -d example.com --ecc --cert-file /etc/letsencrypt/example.com_ecc/cert.pem --key-file /etc/letsencrypt/example.com_ecc/private.key --fullchain-file /etc/letsencrypt/example.com_ecc/fullchain.pem --reloadcmd "sudo systemctl reload nginx.service"
Sau khi lấy được chứng chỉ, hãy thoát khỏi người dùng root và quay lại người dùng sudo bình thường:
Mã:
exit
Bước 4 - Cài đặt Nginx
Cài đặt Nginx webserver:
Mã:
sudo yum install -y nginx
Mã:
nginx -v
# phiên bản nginx: nginx/1.12.2
Mã:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
sudo vi /etc/nginx/conf.d/expressionengine.conf
và điền cấu hình sau vào tệp.
Mã:
server { listen 443 ssl; listen 80; server_name example.com; root /var/www/expressionengine;
# RSA
chứng chỉ ssl /etc/letsencrypt/example.com/fullchain.cer;
khóa chứng chỉ ssl /etc/letsencrypt/example.com/example.com.key;
# ECDSA
chứng chỉ ssl /etc/letsencrypt/example.com_ecc/fullchain.cer;
khóa chứng chỉ ssl /etc/letsencrypt/example.com_ecc/example.com.key;
chỉ mục index.php; vị trí / { chỉ mục index.php; try_files $uri $uri/ @ee; } vị trí @ee { viết lại ^(.*) /index.php?$1 cuối cùng; } vị trí ~* \.php$ { fastcgi_pass 127.0.0.1:9000; bao gồm fastcgi_params; fastcgi_index index.php; fastcgi_param TÊN_TỆP_KẾ_CHỈNH $document_root$fastcgi_script_name; }}
Mã:
sudo nginx -t
Mã:
sudo systemctl reload nginx.service
Bước 5 - Cài đặt ExpressionEngine
Tạo thư mục gốc của tài liệu nơi ExpressionEngine sẽ nằm:
Mã:
sudo mkdir -p /var/www/expressionengine
Mã:
cd /var/www/expressionengine
Mã:
sudo wget -O ee.zip --referer https://expressionengine.com/ 'https://expressionengine.com/?ACT=243'
sudo unzip ee.zip
sudo rm ee.zip
/var/www/expressionengine
thành nginx:
Mã:
sudo chown -R nginx:nginx /var/www/expressionengine
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 đặt thành apache:
Mã:
sudo vi /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Mã:
sudo systemctl restart php-fpm.service
admin.php
mà bạn đã tải lên. Ví dụ: http://example.com/admin.php
. Làm theo hướng dẫn trên màn hình để cài đặt ExpressionEngine. Sau khi Trình hướng dẫn cài đặt hoàn tất, bạn nên đổi tên hoặc xóa thư mục system/ee/installer/
khỏi máy chủ của mình.Bước 6 - Hoàn tất thiết lập ExpressionEngine
Hoàn tất cài đặt ExpressionEngine bằng cách nhập thông tin chi tiết về cơ sở dữ liệu và tài khoản quản trị viên:Sau đó, bạn sẽ thấy trang đăng nhập mặc định:
Đây là bảng điều khiển quản trị ExpressionEngine:
Và đây là trang giao diện:
Vậy là xong! Quá trình cài đặt ExpressionEngine đã hoàn tất.