Grav là mộtnền tảng webnhanh,đơn giản vàlinh hoạt, dựa trên tệp.Nền tảng này tuân theo các nguyên tắc tương tự như các nền tảng CMS tệp phẳng khác nhưng có triết lý thiết kế khác với hầu hết các nền tảng khác. Grav đi kèm vớiHệ 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 và đã đượ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:
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 Debian:
Cài đặt PHP 7.2, cũng như các tiện ích mở rộng PHP cần thiết:
Kiểm tra phiên bản PHP:
Dịch vụ PHP-FPM được tự động khởi động và bật khi khởi động lại trên hệ thống Debian 9, do đó không cần phải khởi động và bật thủ công. Chúng ta có thể chuyển sang bước tiếp theo, đó là thiết lập SSL.
Tải xuống và cài đặtAcme.sh:
Kiểm traAcme.shversion:
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ẽ là trong:
Kiểm tra phiên bản NGINX:
Chạy
Kích hoạt cấu hình
Kiểm traNGINX cấu hình để tìm lỗi cú pháp:
Tải lạiNGINX dịch vụ:
Thay đổi quyền sở hữu thư mục
Điều hướng đến thư mục gốc của tài liệu:
Tải xuống phiên bản mới nhất từ trang chính thức và giải nén tệp zip:
LƯU Ý: Cập nhật URL tải xuống nếu có bản phát hành mới hơn.
Thay đổi quyền sở hữu thư mục
Vậy là xong. Quá trình cài đặt Grav của bạn đã hoàn tất.
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 và đã đượ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
- 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: để tạo hình ảnh động thao tác
Yêu cầu
- Máy chủ web (Apache, Nginx, LiteSpeed, Lightly hoặc IIS). Trong hướng dẫn này, chúng tôi sẽ sử dụng NGINX.
- PHP 7.1.3 trở lên với các phần mở rộng PHP sau:curl,ctype,dom,gd,json,mbstring,openssl,session,simplexml, xml, zip,apcu(tùy chọn),opcache(tùy chọn).
Điều kiện tiên quyết
- Hệ điều hành chạy Debian 9.
- 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 Debian của bạn:
Mã:
lsb_release -ds
# Debian GNU/Linux 9.9 (stretch)
Mã:
sudo dpkg-reconfigure tzdata
Mã:
sudo apt update && sudo apt upgrade -y
Mã:
sudo apt install -y curl wget vim gitunzip socat apt-transport-https
Bước 1 - Cài đặt PHP và tiện ích mở rộng PHP
GravCMS yêu cầu PHP phiên bản 7.1 trở lên. Debian có phiên bản PHP 7 trong kho lưu trữ mặc định, do đó bạn sẽ cần sử dụng kho lưu trữ của bên thứ ba để cài đặt phiên bản mới hơn.
Mã:
sudo apt install apt-transport-https lsb-release ca-certificates
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list
sudo apt update
Mã:
sudo apt install -y php7.2 php7.2-cli php7.2-fpm php7.2-common php7.2-curl php7.2-gd php7.2-json php7.2-mbstring php7.2-xml php7.2-zip php7.2-opcache php-apcu
Mã:
php --version
#PHP 7.2.18-1+0~20190503103213.21+stretch~1.gbp101320 (cli) (được xây dựng: ngày 3 tháng 5 năm 2019 10:32:13) ( 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.18-1+0~20190503103213.21+stretch~1.gbp101320, Bản quyền (c) 1999-2018, của Zend Technologies
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 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 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 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 3 - Cài đặt và cấu hình NGINX
Cài đặt máy chủ web NGINX:
Mã:
sudo apt install -y nginx
Mã:
nginx -v
# phiên bản nginx: nginx/1.10.3
sudo vim /etc/nginx/sites-available/grav.conf
và điền vào tệp những thông tin sau cấu hình:
Mã:
server { lắng nghe 80; tên_máy_chủ example.com; root /var/www/grav; index index.html index.php; vị trí / { 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í ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { trả về 403; } vị trí ~ \.php$ { fastcgi_pass unix:/var/run/php/php7.2-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; bao gồm fastcgi_params; fastcgi_param TỆP_KẾ_HỆ_TỆP_SCRIPT $document_root/$fastcgi_script_name; }}
grav.conf
mới bằng cách liên kết tệp đến thư mục sites-enabled
.
Mã:
sudo ln -s /etc/nginx/sites-available/grav.conf /etc/nginx/sites-enabled
Mã:
sudo nginx -t
Mã:
sudo systemctl reload nginx.service
Bước 4 -Cài đặt Grav CMS
Tạo thư mục gốc của tài liệu nơi Grav sẽ nằm:
Mã:
sudo mkdir -p /var/www/grav
/var/www/grav
thành {your_user}. Thay thế {your_user} trong lệnh bên dưới bằng tên người dùng mà bạn hiện đang đăng nhập vào Debian.:
Mã:
sudo chown -R {your_user}:{your_user} /var/www/grav
Mã:
cd /var/www/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
Thay đổi quyền sở hữu thư mục
/var/www/grav
thành www-data:
Mã:
sudo chown -R www-data:www-data /var/www/grav
Bước 5 - Hoàn tất thiết lập Grav
Mở trang web của bạn trong trình duyệt web và bạn sẽ thấy một trang yêu cầu bạn tạo tài khoản quản trị Grav. Tạo một tài khoản và tiến hành bằng cách nhấp vào nút "Tạo người dùng":Vậy là xong. Quá trình cài đặt Grav của bạn đã hoàn tất.