Cách cài đặt ExpressionEngine CMS với Nginx trên FreeBSD 12

theanh

Administrator
Nhân viên
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í, trưởng thành đượ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 yêu cầu các 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 freshFreeBSD 12 bằng cách sử dụng PHP, MariaDB làm cơ sở dữ liệu và Nginx làm máy chủ web.

Yêu cầu​

ExpressionEngine yêu cầu một máy chủ web chạy PHP và MySQL/MariaDB. Phần mềm và phiên bản được đề xuất là:
  • Phiên bản PHP 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.

Điều kiện tiên quyết​

  • Một hệ điều hành chạy FreeBSD12.
  • Một người dùng không phải root có quyền sudo.
Tôi sẽ sử dụng tên miền example.com trong hướng dẫn này. Vui lòng thay thế từ example.com bằng tên miền của riêng bạn bất cứ khi nào nó xuất hiện trong các lệnh và tệp cấu hình bên dưới (đặc biệt là trong tệp cấu hình Nginx và các lệnh Let's encrypt).

Các bước ban đầu​

Kiểm tra phiên bản FreeBSD của bạn:
Mã:
uname -ro
# FreeBSD 12.0-RELEASE
Thiết lập múi giờ:
Mã:
tzsetup
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ó 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:
Mã:
freebsd-update fetch install
pkg update && pkg upgrade -y
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 FreeBSD 12.0:
Mã:
pkg install -y sudo vim unzip wget bash socat

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 pkg install -y php72 php72-mbstring php72-tokenizer php72-pdo php72-pdo_mysql php72-openssl php72-hash php72-json php72-phar php72-filter php72-zlib php72-dom php72-xml php72-xmlwriter php72-xmlreader php72-curl php72-session php72-ctype php72-iconv php72-gd php72-simplexml php72-zip php72-filter php72-tokenizer php72-calendar php72-fileinfo php72-intl php72-phar php72-soap php72-xmlrpc
Để hiển thị PHP đã biên dịch trong các mô-đun, bạn có thể chạy:
Mã:
php -m

ctype
curl
exif
fileinfo
. . .
. . .
Kiểm tra phiên bản PHP:
Mã:
php --version

#PHP 7.2.16 (cli) (được xây dựng: 30 tháng 4 năm 2019 08:37:17) (NTS)
# Bản quyền (c) 1997-2018 The PHP Group
# Zend Engine v3.3.5, Bản quyền (c) 1998-2018 Zend Technologies
# với Zend OPcache v7.3.5, Bản quyền (c) 1999-2018, của Zend Technologies
Khởi động và kích hoạt dịch vụ PHP-FPM:
Mã:
sudo sysrc php_fpm_enable=yes
sudo service php-fpm start

Cài đặt MariaDB​

Cài đặt máy chủ cơ sở dữ liệu MariaDB:
Mã:
sudo pkg install -y mariadb102-client mariadb102-server
Kiểm tra phiên bản MariaDB:
Mã:
mysql --version
#mysql Ver 15.1 Distrib 10.2.23-MariaDB, dành cho Linux (x86_64) bằng readline 5.1
Khởi động và bật dịch vụ MariaDB:
Mã:
sudo sysrc mysql_enable="yes"
sudo service mysql-server start
Chạy mysql_secure installation script để cải thiện bảo mật MariaDB và đặt mật khẩu cho MariaDB rootuser:
Mã:
sudo mysql_secure_installation
Trả lời từng câu hỏi sau:
Mã:
Bạn có muốn thiết lập plugin VALIDATE PASSWORD không? [B]N[/b]
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]
Kết nối đến shell MariaDB với tư cách là người dùng root:
Mã:
sudo mysql -u root -p
# Nhập mật khẩu
Tạo một cơ sở dữ liệu MariaDB trống và người dùng cho Shopware và ghi nhớ thông tin đăng nhập:
Mã:
mysql>CREATE DATABASE dbname;
mysql>GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
mysql>FLUSH PRIVILEGES;
Thoát khỏiMariaDB:
Mã:
mysql>exit
Thay thế dbname, usernamepassword bằng tên của riêng bạn.

Cài đặt ứng dụng 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 vệ lưu lượng truy cập trang web của bạn. Để có được 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 phụ thuộc vào bất kỳ thứ gì.

Tải xuống và cài đặt acme.sh:
Mã:
sudo pkg install -y acme.sh
Kiểm tra phiên bản acme.sh:
Mã:
acme.sh --version
# v2.8.2
Lấy chứng chỉ RSAECC/ECDSA cho tên miền/tên máy chủ của bạn:
Mã:
# RSA 2048
acme.sh --issue--standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
Nếu bạn muốn có chứng chỉ giả để thử nghiệm, bạn có thể thêm --stagingcờ cho các lệnh trên.

Sau khi chạy các lệnh trên, chứng chỉkhóacủ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.
Để liệt kê các chứng chỉ đã cấp, bạn có thể chạy:
Mã:
acme.sh --list
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 /etc/letsencrypt.
Mã:
mkdir -p /etc/letsecnrypt/example.com
[ICODE]sudo mkdir -p /etc/letsencrypt/example.com_ecc
Cài đặt/sao chép chứng chỉ vào/etc/letsencryptthư mục.
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"
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:
Mã:
exit

Cài đặt Nginx​

Cài đặt web NGINX máy chủ:
Mã:
sudo pkg install -y nginx
Kiểm tra phiên bản NGINX:
Mã:
nginx -v
#nginx version: nginx/1.14.2
Khởi động và kích hoạt dịch vụ NGINX:
Mã:
sudo sysrc nginx_enable=yes
sudo service nginx start
Cấu hình Nginx cho ExpressionEngine bằng cách chạy:
Mã:
sudo vim /usr/local/etc/nginx/expressionengine.conf
Và điền cấu hình sau vào tệp:
Mã:
máy chủ {
 lắng nghe 443 ssl; lắng nghe 80; tên máy chủ example.com; root /usr/local/www/expressionengine; # RSA
 ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;
 ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;
 # ECDSA
 ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;
 ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;
 index index.php; vị trí / { index 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.php5; fastcgi_param TÊN_TỆP_KẾ_CHỈNH $document_root$fastcgi_script_name; }}
Chạy sudo vim /usr/local/etc/nginx/nginx.conf[/ICODE] và thêm dòng bên dưới vào khối http {} để includeShopware config.
Mã:
include expressionEngine.conf;
Kiểm tra cấu hình Nginx xem có lỗi cú pháp không:
Mã:
sudo nginx -t
Tải lại dịch vụ Nginx:
Mã:
sudo service nginx reload

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 /usr/local/www/expressionengine
Điều hướng đến thư mục gốc của tài liệu:
Mã:
cd /usr/local/www/expressionengine
Tải xuống phiên bản 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:
Mã:
sudo wget -O ee.zip --referer https://expressionengine.com/ 'https://expressionengine.com/?ACT=243'
sudo unzip ee.zip
sudo rm ee.zip
Thay đổi quyền sở hữu thư mục /usr/local/www/expressionengine thành www:
Mã:
sudo chown -R www:www /usr/local/www/expressionengine
Trỏ trình duyệt của bạn đến URL của tệp 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.

Hoàn tất quá trình thiết lập ExpressionEngine​

Hoàn tất quá trình 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.

Liên kết​

 
Back
Bên trên