Grav là một CMS miễn phí, mã nguồn mở và dạng tệp phẳng, không yêu cầu bất kỳ cơ sở dữ liệu nào. Nó dựa trên PHP và cung cấp một số tính năng mà các CMS khác như WordPress, Joomla, v.v. có thể không có. Nó đơn giản, dễ sử dụng và đi kèm với một số công nghệ chính bao gồm Twig Templating, Markdown, YAML, Parsedown, Doctrine Cache, Gregwar Image Library và Symfony Console.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Grav CMS với Nginx và Let's Encrypt SSL trên máy chủ Ubuntu 20.04.
Sau khi tất cả các gói được cập nhật, bạn có thể tiến hành bước tiếp theo.
Sau khi tất cả các gói được cài đặt, hãy xác minh phiên bản PHP bằng lệnh sau:
Bạn sẽ nhận được kết quả sau:
Tiếp theo, hãy chỉnh sửa tệp php.ini và thực hiện một số thay đổi:
Thay đổi các dòng sau:
Lưu và đóng tệp, sau đó khởi động lại dịch vụ PHP-FPM để áp dụng các thay đổi:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Sau khi tải xuống hoàn tất, hãy giải nén tệp đã tải xuống bằng lệnh sau:
Tiếp theo, đổi tên thư mục đã giải nén thành grav bằng lệnh sau:
Tiếp theo, đặt quyền sở hữu thích hợp cho thư mục grav:
Sau khi hoàn tất, bạn có thể tiến hành bước tiếp theo.
Thêm các dòng sau:
Lưu và đóng tệp khi bạn hoàn tất, sau đó xác minh Nginx xem có lỗi cú pháp nào không:
Bạn sẽ nhận được kết quả sau:
Cuối cùng, khởi động lại dịch vụ Nginx để áp dụng các thay đổi:
Bạn cũng có thể xác minh trạng thái của Nginx bằng lệnh sau:
Bạn sẽ thấy kết quả sau:
Khi mọi thứ ổn thỏa, bạn có thể tiến hành bước tiếp theo.
Đặt tên người dùng, mật khẩu quản trị viên và nhấp vào nút Tạo người dùng. Bạn sẽ được chuyển hướng đến bảng điều khiển Grav CMS:
Trang cấu hình
Trang tài khoản
Trang plugin
Trang công cụ
Đầu tiên, hãy cài đặt Certbot bằng lệnh sau:
Sau khi cài đặt hoàn tất, hãy chạy lệnh sau để cài đặt Let's Encrypt SSL trên trang web của bạn:
Bạn sẽ được yêu cầu cung cấp địa chỉ email hợp lệ và chấp nhận điều khoản dịch vụ như hiển thị bên dưới:
Tiếp theo, chọn có chuyển hướng lưu lượng HTTP sang HTTPS hay không như hiển thị bên dưới:
Nhập 2 và nhấn Enter để hoàn tất cài đặt. Bạn sẽ thấy đầu ra sau:
Bây giờ bạn có thể truy cập Grav CMS một cách an toàn bằng giao thức HTTPS.
Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách cài đặt Grav CMS với Nginx và Let's Encrypt SSL trên máy chủ Ubuntu 20.04.
Điều kiện tiên quyết
- Một máy chủ chạy Ubuntu 20.04.
- Một tên miền hợp lệ được trỏ bằng IP máy chủ của bạn.
- Một mật khẩu gốc được cấu hình trên máy chủ.
Bắt đầu
Đầu tiên, hãy cập nhật các gói hệ thống lên phiên bản đã cập nhật bằng cách chạy lệnh sau:
Mã:
apt-get update -y
Cài đặt Nginx và PHP
Đầu tiên, bạn sẽ cần cài đặt máy chủ web Nginx, PHP và các tiện ích mở rộng PHP khác vào hệ thống của mình. Bạn có thể cài đặt tất cả chúng bằng lệnh sau:
Mã:
apt-get install nginx php php-cli php-fpm php-common php-curl php-gd php-json php-mbstring php-xml php-zip php-opcache php-apcu unzip -y
Mã:
php --version
Mã:
PHP 7.4.3 (cli) (được xây dựng: 5 tháng 7 năm 2021 15:13:35) (NTS)Bản quyền (c) The PHP GroupZend Engine v3.4.0, Bản quyền (c) Zend Technologies với Zend OPcache v7.4.3, Bản quyền (c), của Zend Technologies
Mã:
nano /etc/php/7.4/fpm/php.ini
Mã:
memory_limit = 256Mupload_max_filesize = 100Mmax_execution_time = 360max_input_vars = 1500date.timezone = America/Chicago
Mã:
systemctl restart php7.4-fpm
Cài đặt Grav CMS
Tiếp theo, bạn sẽ cần tải Grav CMS xuống thư mục gốc web Nginx. Bạn có thể tải xuống từ trang tải xuống Grav bằng lệnh sau:
Mã:
cd /var/www/html
wget https://getgrav.org/download/core/grav-admin/1.7.17
Mã:
unzip 1.7.17
Mã:
mv grav-admin grav
Mã:
chown -R www-data:www-data /var/www/html/grav
Cấu hình Nginx cho Grav CMS
Tiếp theo, bạn sẽ cần tạo tệp cấu hình máy chủ ảo Nginx để lưu trữ Grav CMS. Bạn có thể tạo tệp này bằng lệnh sau:
Mã:
nano /etc/nginx/conf.d/grav.conf
Mã:
server {listen 80;server_name grav.example.com;root /var/www/html/grav;index index.html index.php;location / { try_files $uri $uri/ /index.php?$query_string; } location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; } location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 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.4-fpm.sock; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name; }}
Mã:
nginx -t
Mã:
nginx: cú pháp tệp cấu hình /etc/nginx/nginx.conf là oknginx: kiểm tra tệp cấu hình /etc/nginx/nginx.conf thành công
Mã:
systemctl restart nginx
Mã:
systemctl status nginx
Mã:
? nginx.service - Một máy chủ web hiệu suất cao và một máy chủ proxy ngược Đã tải: đã tải (/lib/systemd/system/nginx.service; đã bật; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ Thứ sáu 2021-07-09 06:45:28 UTC; 3 giây trước Tài liệu: man:nginx(8) Tiến trình: 33099 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS) Tiến trình: 33110 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS) PID chính: 33111 (nginx) Nhiệm vụ: 2 (giới hạn: 2353) Bộ nhớ: 2,6M CGroup: /system.slice/nginx.service ??33111 nginx: tiến trình chính /usr/sbin/nginx -g daemon on; master_process on; ??33112 nginx: quy trình công nhân09/07 06:45:28 node1 systemd[1]: Đang khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược...09/07 06:45:28 node1 systemd[1]: Đã khởi động Một máy chủ web hiệu suất cao và một máy chủ proxy ngược.
Truy cập Grav CMS
Bây giờ bạn có thể truy cập giao diện người dùng web Grav CMS bằng URL . Bạn sẽ thấy màn hình sau:Đặt tên người dùng, mật khẩu quản trị viên và nhấp vào nút Tạo người dùng. Bạn sẽ được chuyển hướng đến bảng điều khiển Grav CMS:
Trang cấu hình
Trang tài khoản
Trang plugin
Trang công cụ
Bảo mật Grav CMS với Let's Encrypt SSL
Tiếp theo, bạn sẽ cần cài đặt gói máy khách Certbot để cài đặt và quản lý Let's Encrypt SSL.Đầu tiên, hãy cài đặt Certbot bằng lệnh sau:
Mã:
apt-get install python3-certbot-nginx -y
Mã:
certbot --nginx -d grav.example.com
Mã:
Lưu nhật ký gỡ lỗi vào /var/log/letsencrypt/letsencrypt.logCác plugin đã chọn: Authenticator nginx, Installer nginxNhập địa chỉ email (dùng để gia hạn khẩn cấp và thông báo bảo mật) (Nhập 'c' đểhủy): [emailprotected]- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Vui lòng đọc Điều khoản dịch vụ tạihttps://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. Bạn phảiđồng ý để đăng ký với máy chủ ACME tạihttps://acme-v02.api.letsencrypt.org/directory- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(A)gree/(C)ancel: A- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Bạn có sẵn lòng chia sẻ địa chỉ email của mình với Electronic Frontier Foundation, đối tác sáng lập của dự án Let's Encrypt và tổ chức phi lợi nhuận phát triển Certbot không? Chúng tôi muốn gửi cho bạn email về công việc của chúng tôimã hóa web, tin tức EFF, các chiến dịch và các cách hỗ trợ tự do kỹ thuật số.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -(C)ó/(K)o: CNhận chứng chỉ mớiThực hiện các thử thách sau:Thử thách http-01 cho grav.example.comĐang chờ xác minh...Dọn dẹp các thử tháchTriển khai chứng chỉ cho VirtualHost /etc/nginx/conf.d/grav.conf
Mã:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -1: Không chuyển hướng - Không thực hiện thêm bất kỳ thay đổi nào đối với cấu hình máy chủ web.2: Chuyển hướng - Chuyển hướng tất cả các yêu cầu đến quyền truy cập HTTPS an toàn. Chọn tùy chọn này chocác trang web mới hoặc nếu bạn tin chắc rằng trang web của mình hoạt động trên HTTPS. Bạn có thể hoàn tác thay đổi nàybằng cách chỉnh sửa cấu hình máy chủ web của bạn.- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Chọn số thích hợp [1-2] sau đó [enter] (nhấn 'c' để hủy): 2
Mã:
Chuyển hướng tất cả lưu lượng truy cập trên cổng 80 sang ssl trong /etc/nginx/conf.d/grav.conf- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -Xin chúc mừng! Bạn đã bật thành công https://grav.example.comBạn nên kiểm tra cấu hình của mình tại:https://www.ssllabs.com/ssltest/analyze.html?d=grav.example.com- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -LƯU Ý QUAN TRỌNG: - Xin chúc mừng! Chứng chỉ và chuỗi của bạn đã được lưu tại: /etc/letsencrypt/live/grav.example.com/fullchain.pem Tệp khóa của bạn đã được lưu tại: /etc/letsencrypt/live/grav.example.com/privkey.pem Chứng chỉ của bạn sẽ hết hạn vào ngày 30-12-2021. Để có phiên bản mới hoặc đã chỉnh sửa của chứng chỉ này trong tương lai, chỉ cần chạy lại certbot với tùy chọn "certonly". Để gia hạn không tương tác *tất cả* các chứng chỉ của bạn, hãy chạy "certbot renew" - Thông tin đăng nhập tài khoản của bạn đã được lưu trong thư mục cấu hình Certbot tại /etc/letsencrypt. Bây giờ bạn nên sao lưu an toàn thư mục này. Thư mục cấu hình này cũng sẽ chứa các chứng chỉ và khóa riêng do Certbot thu được, do đó, việc sao lưu thường xuyên thư mục này là lý tưởng. - Nếu bạn thích Certbot, vui lòng cân nhắc hỗ trợ công việc của chúng tôi bằng cách: Quyên góp cho ISRG / Let's Encrypt: https://letsencrypt.org/donate Quyên góp cho EFF: https://eff.org/donate-le - Chúng tôi không thể đăng ký cho bạn danh sách gửi thư EFF vì địa chỉ email của bạn có vẻ không hợp lệ. Bạn có thể thử lại sau bằng cách truy cập https://act.eff.org.