Cách cài đặt Grav CMS với Nginx trên Ubuntu 16.04

theanh

Administrator
Nhân viên
Grav là một ứng dụng web hiện đại không yêu cầu cơ sở dữ liệu. Đây là một nền tảng web dựa trên tệp đơn giản, nhanh chóng và không yêu cầu cài đặt. Grav sử dụng các công nghệ hiện đại bao gồm Twig Templating để tạo mẫu, Markdown để tạo nội dung, YAML để cấu hình đơn giản, Parsedown và Doctrine cache cho lớp hiệu suất, v.v. Công cụ này được viết bằng PHP và đi kèm với Hệ thống quản lý gói mạnh mẽ cho phép bạn quản lý hệ thống Grav, bao gồm cài đặt và nâng cấp Grav, cũng như các chủ đề và plugin.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn từng bước cách cài đặt và cấu hình Grav CMS trên Ubuntu 16.04. Vì Grav là ứng dụng web PHP, chúng ta cần cài đặt PHP trên hệ thống và để có hiệu suất cao hơn, chúng ta sẽ sử dụng PHP-FPM với trình duyệt web Nginx.

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

  • Ubuntu 16.04
  • Quyền root

Những gì chúng ta sẽ làm:​

  1. Cài đặt Nginx
  2. Cài đặt và cấu hình PHP-FPM
  3. Cài đặt PHP Composer
  4. Tải xuống và cài đặt Grav CMS
  5. Cấu hình Nginx Virtual Host để thử nghiệm Grav

Bước 1 - Cài đặt Nginx Web Server​

Trong bước đầu tiên này, chúng ta sẽ cài đặt máy chủ web Nginx từ kho lưu trữ Ubuntu. Trước khi thực hiện, chúng ta cần cập nhật tất cả các gói và kho lưu trữ bằng các lệnh apt sau.
Mã:
sudo apt update
sudo apt upgrade
Bây giờ hãy cài đặt máy chủ web Nginx.
Mã:
sudo apt install nginx -y
Sau khi cài đặt hoàn tất, hãy khởi động dịch vụ và cho phép nó khởi chạy khi khởi động hệ thống, bạn có thể thực hiện thao tác này bằng các lệnh systemctl sau.
Mã:
systemctl start nginx
systemctl enable nginx
Máy chủ web Nginx đã được cài đặt trên Ubuntu 16.04 và nó đang chạy trên cổng HTTP mặc định 80. Kiểm tra nó bằng lệnh netstat theo cách sau.
Mã:
netstat -plntu
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.


Bước 2 - Cài đặt và cấu hình PHP-FPM​

Bây giờ chúng ta sẽ cài đặt và cấu hình PHP-FPM cho cài đặt Grav của mình. Cài đặt các gói PHP và PHP-FPM (bao gồm tất cả các tiện ích mở rộng bắt buộc) bằng lệnh sau.
Mã:
sudo apt install -y php7.0 php7.0-fpm php7.0-cli php7.0-gd php7.0-mbstring php-pear php7.0-curl php7.0-dev php7.0-opcache php7.0-xml php7.0-zip
Bây giờ chúng ta cần cấu hình PHP-FPM.

- Cài đặt các tiện ích mở rộng bổ sung

Đây là tùy chọn, nhưng tốt nhất cho hiệu suất của Grav. Chúng tôi sẽ cài đặt một số tiện ích mở rộng bổ sung theo cách thủ công từ kho lưu trữ tiện ích mở rộng PHP bằng lệnh PECL.

Cài đặt tiện ích mở rộng 'apcu' (để tăng hiệu suất bộ nhớ đệm) bằng lệnh 'pecl' bên dưới.
Mã:
sudo pecl install apcu
Bây giờ hãy tạo cấu hình tiện ích mở rộng mới 'apcu.ini' trong thư mục '/etc/php/7.0/mods-available/'.
Mã:
sudo vim /etc/php/7.0/mods-available/apcu.ini
Dán cấu hình sau vào đó.
Mã:
extension=apcu.so
Lưu và thoát.

Tiếp theo, kích hoạt tiện ích mở rộng bằng các lệnh bên dưới.
Mã:
sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/fpm/conf.d/20-apcu.ini
sudo ln -s /etc/php/7.0/mods-available/apcu.ini /etc/php/7.0/cli/conf.d/20-apcu.ini


Bây giờ, chúng ta sẽ cài đặt tiện ích mở rộng 'YAML' để cải thiện hiệu suất Grav hơn nữa. Nhưng trước khi cài đặt tiện ích mở rộng, chúng ta cần cài đặt một số gói bằng lệnh apt sau.
Mã:
sudo apt install libyaml-dev unzip -y
Tiếp theo, cài đặt tiện ích mở rộng yaml bằng lệnh pecl.
Mã:
sudo pecl install yaml-2.0.0
Sau khi cài đặt hoàn tất, hãy tạo tệp cấu hình 'yaml.ini' mới.
Mã:
sudo vim /etc/php/7.0/mods-available/yaml.ini
Dán cấu hình sau vào đó.
Mã:
extension=yaml.so
Lưu và thoát.

Bây giờ hãy kích hoạt tiện ích mở rộng YAML.
Mã:
sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/fpm/conf.d/20-yaml.ini
sudo ln -s /etc/php/7.0/mods-available/yaml.ini /etc/php/7.0/cli/conf.d/20-yaml.ini


Các tiện ích mở rộng PHP bổ sung mới cho Grav đã được thêm vào.

- Cấu hình nhóm PHP-FPM cho Grav

Trước khi tạo cấu hình nhóm PHP-FPM mới, chúng ta cần thêm một người dùng mới có tên 'grav' vào hệ thống, bạn có thể thực hiện việc này bằng lệnh useradd.
Mã:
useradd -m -s /bin/bash grav
passwd grav
Bây giờ hãy vào thư mục '/etc/php/7.0/fpm/pool.d' và sao lưu cấu hình 'www.conf' mặc định.
Mã:
cd /etc/php/7.0/fpm/pool.d/
mv www.conf www.conf.bak
Tiếp theo, tạo cấu hình nhóm PHP-FPM mới - 'grav.conf' - cho Grav.
Mã:
vim grav.conf
Dán cấu hình sau vào đó.
Mã:
[grav]
 
 user = grav
 group = grav
 
 listen = /run/php/php7.0-fpm.sock
 
 listen.owner = www-data
 listen.group = www-data
 
 pm = dynamic
 pm.max_children = 5
 pm.start_servers = 2
 pm.min_spare_servers = 1
 pm.max_spare_servers = 3
 
 chdir = /
Lưu và thoát.



Khởi động lại dịch vụ PHP-FPM và cho phép nó khởi chạy khi khởi động hệ thống.
Mã:
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
PHP-FPM hiện đang chạy trong tệp 'php7.0-fpm.sock' - hãy kiểm tra tệp này bằng lệnh netstat theo cách sau.
Mã:
netstat -pl | grep php
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.



Lưu ý:

Nếu bạn muốn kiểm tra phần mở rộng apcu và yaml, bạn có thể sử dụng các lệnh php sau.
Mã:
sudo php -m | grep apcu
sudo php -m | grep yaml


Quá trình cài đặt và cấu hình cho PHP-FPM đã hoàn tất.

Bước 3 - Cài đặt PHP Composer​

Composer là trình quản lý gói cấp ứng dụng cho PHP. Trình này được sử dụng để quản lý các phụ thuộc của PHP.

Cài đặt PHP Composer bằng lệnh sau.
Mã:
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
Sau khi cài đặt hoàn tất, hãy thử chạy lệnh composer theo cách sau.
Mã:
composer --version
PHP Composer đã được cài đặt.


Bước 4 - Tải xuống và cài đặt Grav​

Chúng tôi sẽ cài đặt và chạy công cụ với tư cách là người dùng 'grav'. Người dùng đã được tạo ở một trong các bước trước đó.

Đầu tiên, hãy đăng nhập với tư cách là người dùng 'grav'.
Mã:
su - grav
Bây giờ, hãy tạo một thư mục 'www' mới.
Mã:
mkdir -p ~/www
cd ~/www
Tải xuống phiên bản grav mới nhất bằng wget và thêm phần mở rộng '.zip' vào tên tệp.
Mã:
wget https://getgrav.org/download/core/grav/latest
mv latest latest.zip
Giải nén tệp 'latest.zip' và đổi tên thư mục 'grav' thành 'html'.
Mã:
giải nén latest.zip
mv grav/ html/
Bây giờ hãy quay lại quyền root và đổi chủ sở hữu nhóm thành 'www-data'.
Mã:
thoát
cd /home/grav/www
sudo chown -R grav:www-data html/
Grav hiện đã được người dùng 'grav' tải xuống và cài đặt trong thư mục '/home/grav/www/html'.

Bước 5 - Cấu hình máy chủ ảo Grav​

Trong bước này, chúng ta sẽ cấu hình máy chủ ảo Nginx cho Grav. Chúng tôi sẽ tạo một tệp máy chủ ảo mới có tên 'grav' bên trong thư mục 'sites-available', sau đó kích hoạt máy chủ ảo Grav.

Đi đến thư mục cấu hình '/etc/nginx' và tạo một tệp mới 'grav' bằng trình soạn thảo vim.
Mã:
cd /etc/nginx
vim sites-available/grav
Dán cấu hình máy chủ ảo Grav Nginx sau vào đó.
Mã:
server {
 ## Định nghĩa chỉ mục
 #listen 80;
 index index.html index.php;
 
 ## Gốc web và Tên miền
 root /home/grav/www/html;
 server_name grav.hakase-labs.co;
 
 ## Bắt đầu - Chỉ mục
 # đối với các thư mục con, chỉ cần điều chỉnh lệnh viết lại:
 # để sử dụng vị trí `/subfolder/index.php`
 / {
 try_files $uri $uri/ /index.php?$query_string;
 }
 ## End - Index
 
 ## Begin - PHP-FPM Configuration
 location ~ \.php$ {
 # Chọn một socket hoặc địa chỉ TCP/IP
 fastcgi_pass unix:/run/php/php7.0-fpm.sock;
 # fastcgi_pass 127.0.0.1:9000;
 
 fastcgi_split_path_info ^(.+\.php)(/.+)$;
 fastcgi_index index.php;
 include fastcgi_params;
 fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
 }
 ## End - PHP
 
 ## Begin - Security
 # deny all direct access for these thư mục
 vị trí ~* /(.git|cache|bin|logs|backups)/.*$ { trả về 403; }
 # từ chối chạy các tập lệnh bên trong hệ thống lõi thư mục
 vị trí ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|php|pl|py|cgi|twig|sh|bat)$ { trả về 403; }
 # từ chối chạy các tập lệnh bên trong thư mục người dùng
 vị trí ~* /user/.*\.(txt|md|yaml|php|pl|py|cgi|twig|sh|bat)$ { trả về 403; }
 # từ chối truy cập vào các tệp cụ thể trong thư mục gốc
 vị trí ~ /(LICENSE|composer.lock|composer.json|nginx.conf|web.config|htaccess.txt|\.htaccess) { trả về 403; }
 ## Kết thúc - Bảo mật
 }
Lưu và thoát.

Tiếp theo, kích hoạt máy chủ ảo và kiểm tra cấu hình nginx.
Mã:
ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enabled/
nginx -t
Lưu ý: Đảm bảo bạn không gặp lỗi Nginx sau khi kiểm tra cấu hình.

Bây giờ hãy khởi động lại dịch vụ Nginx và PHP-FPM.
Mã:
systemctl restart nginx
systemctl restart php7.0-fpm


Cấu hình cho máy chủ ảo Nginx Grav đã hoàn tất.

Bước 6 - Kiểm tra​

Mở trình duyệt web của bạn và nhập tên miền trang web Grav của bạn, của tôi là http://grav.hakase-labs.co/

Và bạn sẽ nhận được trang chủ Grav mặc định, như được hiển thị bên dưới.



Cài đặt Grav Flat CMS bằng PHP-FPM và máy chủ web Nginx trên Ubuntu 16.04 đã hoàn tất thành công.

Tham khảo​

 
Back
Bên trên