如何在 Ubuntu 18.04 LTS 上使用 Nginx 和 Lets Encrypt 安装 Grav CMS
本教程适用于这些操作系统版本
- Ubuntu 20.04(Focal Fossa)
- Ubuntu 18.04(仿生海狸)
在此页
- 要求
- 先决条件
- 初始步骤
- 第 1 步 - 安装 PHP 和所需的 PHP 扩展
- 第 2 步 - 安装 acme.sh 客户端并获取 Lets Encrypt 证书(可选)
- 第 3 步 - 安装和配置 Nginx
- 第 4 步 - 安装 Grav CMS
- 第 5 步 - 完成 Grav CMS 设置
- 链接
Grav 是一种快速、简单且灵活的基于文件的 CMS 和平台。 Grav 是用纯文本文件为您的内容构建的。不需要数据库。 Grav 的底层架构旨在使用成熟的技术来确保 Grav 易于使用且易于扩展。其中一些关键技术包括 - 用于强大的用户界面控制的 Twig 模板、用于内容创建的 Markdown、用于简单配置的 YAML、用于快速 Markdown 和 Markdown Extra 支持的 Parsedown、用于性能的 Doctrine 缓存层、用于动态图像处理的 Gregwar Image Library,和 CLI 界面的 Symfony 控制台。本教程将引导您使用 Nginx 作为 Web 服务器在新的 Ubuntu 18.04 服务器上完成 Grav CMS 安装过程,我们将使用 Lets encrypt SSL 证书保护网站。
要求
确保您的系统满足以下 Grav 系统要求:
- 网络服务器(Apache、Nginx、LiteSpeed、Lightly、IIS 等)
- PHP 版本 7.1.3 或更高版本,具有以下 PHP 扩展:
curl、
ctype、
dom、
gd、
json,
mbstring,
openssl,
session,
simplexml
,xml、
zip、apcu、opcache、yaml
先决条件
- 运行 Ubuntu 18.04 LTS 的操作系统。
- 具有 sudo 权限的非根用户。
初始步骤
检查您的 Ubuntu 版本:
lsb_release -ds
# Ubuntu 18.04.2 LTS
设置时区:
sudo dpkg-reconfigure tzdata
更新您的操作系统包(软件)。这是重要的第一步,因为它确保您拥有操作系统默认软件包的最新更新和安全修复程序:
sudo apt update && sudo apt upgrade -y
安装 Ubuntu 操作系统基本管理所需的一些基本软件包:
sudo apt install -y curl wget vim git unzip socat bash-completion
第 1 步 - 安装 PHP 和所需的 PHP 扩展
安装 PHP 以及必要的 PHP 扩展:
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
要显示在模块中编译的 PHP,您可以运行:
php -m
ctype
curl
exif
fileinfo
. . .
. . .
检查 PHP 版本:
php --version
# PHP 7.2.17-0ubuntu0.18.04.1 (cli) (built: Apr 18 2019 14:12:38) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
# with Zend OPcache v7.2.17-0ubuntu0.18.04.1, Copyright (c) 1999-2018, by Zend Technologies
PHP-FPM服务在Ubuntu 18.04系统重启时自动启动启用,无需手动启动启用。我们可以继续下一步,即数据库安装和设置。
第 2 步 - 安装 acme.sh 客户端并获取 Lets Encrypt 证书(可选)
没有必要使用 HTTPS 保护您的网站,但这是保护您的网站流量的好习惯。为了从 Lets Encrypt 获得 TLS 证书,我们将使用 acme.sh 客户端。 Acme.sh 是一款纯 UNIX shell 软件,用于从 Lets Encrypt 以零依赖方式获取 TLS 证书。
下载并安装 acme.sh:
sudo su - root
git clone https://github.com/Neilpang/acme.sh.git
cd acme.sh
./acme.sh --install --accountemail
source ~/.bashrc
cd ~
检查 acme.sh 版本:
acme.sh --version
# v2.8.1
为您的域/主机名获取 RSA 和 ECC/ECDSA 证书:<br>
# RSA 2048
acme.sh --issue --standalone -d example.com --keylength 2048
# ECDSA
acme.sh --issue --standalone -d example.com --keylength ec-256
如果您想要伪造的证书进行测试,您可以将 --staging
标记添加到上述命令中。
运行上述命令后,您的证书和密钥将位于:
- 对于 RSA:
/home/username/example.com
目录。 - 对于 ECC/ECDSA:
/home/username/example.com_ecc
目录。
要列出您颁发的证书,您可以运行:
acme.sh --list
创建一个目录来存储您的证书。我们将使用 /etc/letsencrypt
目录。
mkdir -p /etc/letsecnrypt/example.com
sudo mkdir -p /etc/letsencrypt/example.com_ecc
安装/复制证书到 /etc/letsencrypt 目录。
# 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"
所有证书将每 60 天自动更新一次。
获得证书后退出 root 用户并返回普通 sudo 用户:
exit
第 3 步 - 安装和配置 Nginx
Grav CMS 可以很好地与许多网络服务器一起工作。在本教程中,我们选择了 Nginx。
安装 Nginx:
sudo apt install -y nginx
检查 Nginx 版本:
sudo nginx -v
# nginx version: nginx/1.14.0 (Ubuntu)
通过运行以下命令为 Grav 配置 Nginx:
sudo vim /etc/nginx/sites-available/grav.conf
并使用以下配置填充文件:
server {
listen 80;
listen [::]:80;
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com;
root /var/www/grav;
index index.php;
ssl_certificate /etc/letsencrypt/status.example.com/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/status.example.com/status.example.com.key;
ssl_certificate /etc/letsencrypt/status.example.com_ecc/fullchain.cer;
ssl_certificate_key /etc/letsencrypt/status.example.com_ecc/status.example.com.key;
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; }
location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
}
}
通过将文件链接到 sites-enabled
目录来激活新的 grav.conf
配置:
sudo ln -s /etc/nginx/sites-available/grav.conf /etc/nginx/sites-enabled/
测试 NGINX 配置:
sudo nginx -t
重新加载 Nginx:
sudo systemctl reload nginx.service
第 4 步 - 安装 Grav CMS
创建 Grav 所在的文档根目录:
sudo mkdir -p /var/www/grav
将 /var/www/grav
目录的所有权更改为 {jour_user}
:
sudo chown -R {your_user}:{your_user} /var/www/grav
注意:将 {jour_user}
替换为您最初创建的非根用户用户名。
导航到文档根目录:
cd /var/www/grav
通过 wget 下载 Grav 源代码并解压:
wget https://getgrav.org/download/core/grav-admin/1.6.8
unzip 1.6.8
mv grav-admin/* . && mv grav-admin/.* .
rm -rf grav-admin 1.6.8
将 /var/www/grav
目录的所有权更改为 www-data:
sudo chown -R www-data:www-data /var/www/grav
在网络浏览器中打开您的站点,然后按照屏幕上的说明完成 Grav 安装。
第 5 步 - 完成 Grav CMS 设置
创建一个管理员帐户:

创建管理员帐户后,您将被重定向到 Grav 管理仪表板:

就这样。 Grav CMS 安装完成。
链接
- https://getgrav.org/
- https://github.com/getgrav/grav