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.
Bây giờ hãy cài đặt máy chủ web Nginx.
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á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.
Và bạn sẽ nhận được kết quả như hiển thị bên dưới.
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.
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/'.
Dán cấu hình sau vào đó.
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.
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.
Tiếp theo, cài đặt tiện ích mở rộng yaml bằng lệnh pecl.
Sau khi cài đặt hoàn tất, hãy tạo tệp cấu hình 'yaml.ini' mới.
Dán cấu hình sau vào đó.
Lưu và thoát.
Bây giờ hãy kích hoạt tiện ích mở rộng YAML.
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.
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.
Tiếp theo, tạo cấu hình nhóm PHP-FPM mới - 'grav.conf' - cho Grav.
Dán cấu hình sau vào đó.
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.
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.
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.
Quá trình cài đặt và cấu hình cho PHP-FPM đã hoàn tất.
Cài đặt PHP Composer bằng lệnh sau.
Sau khi cài đặt hoàn tất, hãy thử chạy lệnh composer theo cách sau.
PHP Composer đã được cài đặt.
Đầu tiên, hãy đăng nhập với tư cách là người dùng 'grav'.
Bây giờ, hãy tạo một thư mục 'www' mới.
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.
Giải nén tệp 'latest.zip' và đổi tên thư mục 'grav' thành 'html'.
Bây giờ hãy quay lại quyền root và đổi chủ sở hữu nhóm thành 'www-data'.
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'.
Đ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.
Dán cấu hình máy chủ ảo Grav Nginx sau vào đó.
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.
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.
Cấu hình cho máy chủ ảo Nginx Grav đã hoàn tất.
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.
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:
- Cài đặt Nginx
- Cài đặt và cấu hình PHP-FPM
- Cài đặt PHP Composer
- Tải xuống và cài đặt Grav CMS
- 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
Mã:
sudo apt install nginx -y
Mã:
systemctl start nginx
systemctl enable nginx
Mã:
netstat -plntu
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
- 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
Mã:
sudo vim /etc/php/7.0/mods-available/apcu.ini
Mã:
extension=apcu.so
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
Mã:
sudo pecl install yaml-2.0.0
Mã:
sudo vim /etc/php/7.0/mods-available/yaml.ini
Mã:
extension=yaml.so
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
Mã:
cd /etc/php/7.0/fpm/pool.d/
mv www.conf www.conf.bak
Mã:
vim grav.conf
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 = /
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
Mã:
netstat -pl | grep php
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
Mã:
composer --version
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
Mã:
mkdir -p ~/www
cd ~/www
Mã:
wget https://getgrav.org/download/core/grav/latest
mv latest latest.zip
Mã:
giải nén latest.zip
mv grav/ html/
Mã:
thoát
cd /home/grav/www
sudo chown -R grav:www-data 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
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
}
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
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.