Cách cài đặt Grav CMS trên CentOS 7

theanh

Administrator
Nhân viên
Grav là một nền tảng CMS dựa trên tệpnhanhnhanh,đơngiản và linh hoạt. Grav đi kèm với mộtHệ thống quản lý góimạnh mẽcho phép cài đặt và nâng cấp plugin và chủ đề một cách đơn giản, cũng như cập nhật Grav một cách đơn giản.

Kiến trúc cơ bản của Grav được thiết kế để sử dụng các công nghệtốt nhất trong cùng loạiđã được thiết lập tốt để đảm bảo Grav dễ sử dụng và dễ mở rộng. Một số công nghệ chính bao gồm:
  • Twig Templating: để kiểm soát mạnh mẽ giao diện người dùng
  • Markdown: để tạo nội dung dễ dàng
  • YAML: để cấu hình đơn giản
  • Parsedown: để hỗ trợ Markdown và Markdown Extra nhanh chóng
  • Doctrine Cache: lớp để tăng hiệu suất
  • Pimple Dependency Injection Container: để mở rộng và bảo trì
  • Symfony Event Dispatcher: để xử lý sự kiện plugin
  • Symfony Console: để giao diện CLI
  • Gregwar Image Library: để thao tác hình ảnh động

Yêu cầu​

Grav được thiết kế có chủ đích với ít yêu cầu.Grav được xây dựng bằng các tệp văn bản thuần túy cho nội dung của bạn. Không cần cơ sở dữ liệu.

Đảm bảo hệ thống của bạn đáp ứng các yêu cầu sau:
  • Máy chủ web (Apache, Nginx, LiteSpeed, Lightly, IIS, v.v.) Chúng tôi sẽ sử dụng NGINX.
  • Phiên bản PHP 7.1.3 trở lên

Đ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.

Ban đầu các bước​

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)
Thiết lập múi giờ:
Mã:
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
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:
Mã:
sudo yum update -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 CentOS:
Mã:
sudo yum install -y curl wget vim gitunzip socat bash-completion epel-release

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
Cài đặt PHP cũng như các tiện ích mở rộng PHP cần thiết phần mở rộng:
Mã:
sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-curl php72w-gd php72w-json php72w-mbstring php72w-xml php72w-zip php72w-opcache php72w-pecl-apcu
Để 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.17 (cli) (xây dựng: 13 tháng 5 năm 2019 18:03:04) (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
# với Zend OPcache v7.2.17, 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 systemctl start php-fpm.service
sudo systemctl enable php-fpm.service

Bước 2 - 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 diễn đàn 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 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 phụ thuộc vào bất kỳ thứ gì.

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 ~
Kiểm tra phiên bản acme.sh:
Mã:
acme.sh --version
# v2.8.0
Lấy chứng chỉRSAECC/ECDSAcho 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ờ vào 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ẽ là trong:
  • Đối vớiRSA:/home/username/example.comthư mục.
  • Đối vớiECC/ECDSA:/home/username/example.com_eccthư mục.
Để 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à trở lại người dùng sudo bình thường:
Mã:
exit

Bước 3 - Cài đặt và cấu hình NGINX​

Cài đặt NGINX:
Mã:
sudo yum install -y nginx
Kiểm tra phiên bản NGINX:
Mã:
nginx -v
#nginx version: nginx/1.12.2
Khởi động và kích hoạt dịch vụ NGINX:
Mã:
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Cấu hìnhNGINXcho Grav. Chạy sudo vim /etc/nginx/conf.d/grav.conf[/ICODE]và thêm cấu hình sau.
Mã:
server { listen 80; listen 443 ssl;
 server_name example.com; root /var/www/grav;
 ssl_certificate /etc/letsencrypt/example.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/example.com/private.key;
 ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/example.com_ecc/private.key;
 index index.html index.php; location / { try_files $uri $uri/ /index.php?$query_string; } vị trí ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { trả về 403; } vị trí ~* /(hệ thống|nhà cung cấp)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { trả về 403; } vị trí ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { trả về 403; } vị trí ~ /(GIẤY PHÉP\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { trả về 403; } vị trí ~ \.php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; bao gồm fastcgi_params; fastcgi_param TÊN_TỆP_SCRIPT $document_root/$fastcgi_script_name; }}
Kiểm traNGINXcấu hình để tìm lỗi cú pháp:
Mã:
sudo nginx -t
Tải lạiNGINXdịch vụ:
Mã:
sudo systemctl reload nginx.service

Bước 4 - InstallGrav CMS​

Tạo thư mục gốc của tài liệu:
Mã:
sudo mkdir -p /var/www/grav
Thay đổi quyền sở hữu của thư mục/var/www/grav tojohndoe:
Mã:
sudo chown -R johndoe:johndoe /var/www/grav
Điều hướng đến thư mục gốc của tài liệu:
Mã:
cd /var/www/grav
Tải xuống và giải nén Grav:
Mã:
wget https://getgrav.org/download/core/grav-admin/1.6.9
unzip 1.6.9
mv grav-admin/* . && mv grav-admin/.* .
rm -rf grav-admin 1.6.9
LƯU Ý:Phiên bản 1.6.9 là phiên bản hiện tại và có thể khác vào thời điểm bạn đọc bài viết này. Vui lòng kiểm tra trang web Grav để biết thông tin mới nhất.

Thay đổi quyền sở hữu thư mục/var/www/gravthànhnginx:
Mã:
sudo chown -R nginx:nginx /var/www/grav
Chạysudo vim /etc/php-fpm.d/www.confvà đặt người dùng và nhóm thànhnginx. Ban đầu, nó sẽ được thiết lập thành người dùng và nhómapache:
Mã:
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Khởi động lại dịch vụ PHP-FPM.
Mã:
sudo systemctl restart php-fpm.service
Tạo thư mục/var/lib/php/session/và thay đổi quyền sở hữu thànhnginx:
Mã:
sudo mkdir -p /var/lib/php/session/ && sudo chown -R nginx:nginx /var/lib/php/session/
Mởhttp://example.comtrong trình duyệt web của bạn và làm theo hướng dẫn trên màn hình. Để truy cập Grav admin, hãy thêm /adminvào URL của bạn.

Bước 5 - Hoàn tất Gravsetup​

Tạo người dùng quản trị Grav:



Sau khi tạo, bạn sẽ được chuyển hướng đến bảng điều khiển quản trị:


Liên kết​

 
Back
Bên trên