如何在 Ubuntu 16.04 上使用 Nginx 安装 Grav CMS如何在 Ubuntu 16.04 上使用 Nginx 安装 Grav CMS如何在 Ubuntu 16.04 上使用 Nginx 安装 Grav CMS如何在 Ubuntu 16.04 上使用 Nginx 安装 Grav CMS
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

如何在 Ubuntu 16.04 上使用 Nginx 安装 Grav CMS

在此页

  1. 先决条件
  2. 我们将做什么:
  3. 第 1 步 - 安装 Nginx Web 服务器
  4. 第 2 步 - 安装和配置 PHP-FPM
  5. 第 3 步 - 安装 PHP Composer
  6. 第 4 步 - 下载并安装 Grav
  7. 第 5 步 - 配置 Grav 虚拟主机
  8. 第 6 步 - 测试
  9. 参考资料

Grav 是一个不需要数据库的现代 Web 应用程序。它是一个基于文件的网络平台,简单、快速且需要零安装。 Grav 使用现代技术,包括用于模板的 Twig Templating、用于内容创建的 Markdown、用于简单配置的 YAML、Parsedown 和用于性能层的 Doctrine 缓存等。该工具是用 PHP 编写的,并带有强大的包管理系统,允许您管理Grav系统,包括安装和升级Grav本身,以及主题和插件。

在本教程中,我将逐步向您展示如何在 Ubuntu 16.04 上安装和配置 Grav CMS。由于 Grav 是基于 PHP web 应用程序的,我们需要在系统上安装 PHP,为了获得更高的性能,我们将使用 PHP-FPM 和 Nginx web 浏览器。

先决条件

  • Ubuntu 16.04
  • 根权限

我们将要做什么:

  1. 安装 Nginx
  2. 安装和配置 PHP-FPM
  3. 安装 PHP 编写器
  4. 下载并安装 Grav CMS
  5. 为 Grav 配置 Nginx 虚拟主机
  6. 测试

第 1 步 - 安装 Nginx Web 服务器

在第一步中,我们将从 Ubuntu 存储库安装 Nginx Web 服务器。在我们这样做之前,我们需要使用以下 apt 命令更新所有包和存储库。

sudo apt update
sudo apt upgrade

现在安装 Nginx Web 服务器。

sudo apt install nginx -y

安装完成后,启动该服务并使其在系统启动时启动,您可以使用以下 systemctl 命令执行此操作。

systemctl start nginx
systemctl enable nginx

Nginx Web服务器已经安装在Ubuntu 16.04上,并运行在默认的HTTP端口80上。使用netstat命令通过以下方式查看。

netstat -plntu

您将得到如下所示的结果。

第 2 步 - 安装和配置 PHP-FPM

现在我们将为我们的 Grav 安装安装和配置 PHP-FPM。使用以下命令安装 PHP 和 PHP-FPM 包(包括所有必需的扩展)。

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

现在我们需要配置 PHP-FPM。

- 安装额外的扩展

这是可选的,但它最适合 Grav 性能。我们将使用 PECL 命令从 PHP 扩展存储库手动安装一些额外的扩展。

使用下面的 pecl 命令安装 apcu 扩展(以提高缓存性能)。

sudo pecl install apcu

现在在/etc/php/7.0/mods-available/ 目录下新建一个扩展配置apcu.ini。

sudo vim /etc/php/7.0/mods-available/apcu.ini

将以下配置粘贴到那里。

extension=apcu.so

保存并退出。

接下来,使用以下命令激活扩展。

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

现在,我们将安装 YAML 扩展以进一步提高 Grav 性能。但在安装扩展之前,我们需要使用以下 apt 命令安装一些包。

sudo apt install libyaml-dev unzip -y

接下来,使用 pecl 命令安装 yaml 扩展。

sudo pecl install yaml-2.0.0

安装完成后,新建yaml.ini配置文件。

sudo vim /etc/php/7.0/mods-available/yaml.ini

将以下配置粘贴到那里。

extension=yaml.so

保存并退出。

现在激活 YAML 扩展。

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

为 Grav 添加了新的附加 PHP 扩展。

- 为 Grav 配置 PHP-FPM 池

在创建新的 PHP-FPM 池配置之前,我们需要向系统添加一个名为 grav 的新用户,您可以使用 useradd 命令来完成此操作。

useradd -m -s /bin/bash grav
passwd grav

现在转到 /etc/php/7.0/fpm/pool.d 目录并备份默认的 www.conf 配置。

cd /etc/php/7.0/fpm/pool.d/
mv www.conf www.conf.bak

接下来,为 Grav 创建新的 PHP-FPM 池配置 - grav.conf。

vim grav.conf

将以下配置粘贴到那里。

[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 = /

保存并退出。

重新启动 PHP-FPM 服务并使其在系统启动时启动。

systemctl restart php7.0-fpm
systemctl enable php7.0-fpm

PHP-FPM 现在正在 php7.0-fpm.sock 文件下运行 - 使用 netstat 命令按以下方式检查它。

netstat -pl | grep php

你应该得到如下所示的结果。

笔记:

如果要检查 apcu 和 yaml 扩展,可以使用以下 php 命令。

sudo php -m | grep apcu
sudo php -m | grep yaml

PHP-FPM 的安装和配置已经完成。

第 3 步 - 安装 PHP Composer

Composer 是 PHP 的应用程序级包管理器。它用于管理 PHP 依赖项。

使用以下命令安装 PHP Composer。

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer

安装完成后,尝试通过以下方式运行composer命令。

composer --version

PHP Composer 已安装。

第 4 步 - 下载并安装 Grav

我们将以 grav 用户身份安装并运行该工具。用户是在前面的步骤之一中创建的。

首先,以 grav 用户身份登录。

su - grav

现在,创建一个新的 www 目录。

mkdir -p ~/www
cd ~/www

使用 wget 下载最新的 grav 版本并为文件名添加 .zip 扩展名。

wget https://getgrav.org/download/core/grav/latest
mv latest latest.zip

提取 latest.zip 文件并将 grav 目录重命名为 html。

unzip latest.zip
mv grav/ html/

现在回到 root 权限并将组所有者更改为 www-data。

exit
cd /home/grav/www
sudo chown -R grav:www-data html/

Grav 现在由 grav 用户下载并安装在 /home/grav/www/html 目录中。

第 5 步 - 配置 Grav 虚拟主机

在这一步中,我们将为 Grav 配置 Nginx 虚拟主机。我们将在 sites-available 目录中创建一个名为 grav 的新虚拟主机文件,然后激活 Grav 虚拟主机。

转到 /etc/nginx 配置目录并使用 vim 编辑器创建一个新文件 grav。

cd /etc/nginx
vim sites-available/grav

将以下 Grav Nginx 虚拟主机配置粘贴到那里。

server {
    ## Define Index
    #listen 80;
    index index.html index.php;

    ## Web root and Domain Name
    root /home/grav/www/html;
    server_name grav.hakase-labs.co;

    ## Begin - Index
    # for subfolders, simply adjust the rewrite:
    # to use `/subfolder/index.php`
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    ## End - Index

    ## Begin - PHP-FPM Configuration
    location ~ \.php$ {
        # Choose either a socket or TCP/IP address
        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 folders
    location ~* /(.git|cache|bin|logs|backups)/.*$ { return 403; }
    # deny running scripts inside core system folders
    location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
    # deny running scripts inside user folder
    location ~* /user/.*\.(txt|md|yaml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
    # deny access to specific files in the root folder
    location ~ /(LICENSE|composer.lock|composer.json|nginx.conf|web.config|htaccess.txt|\.htaccess) { return 403; }
    ## End - Security
}

保存并退出。

接下来,激活虚拟主机并测试 nginx 配置。

ln -s /etc/nginx/sites-available/grav /etc/nginx/sites-enabled/
nginx -t

注意:确保在测试配置后没有出现 Nginx 错误。

现在重启 Nginx 和 PHP-FPM 服务。

systemctl restart nginx
systemctl restart php7.0-fpm

Nginx Grav 虚拟主机的配置已经完成。

第 6 步 - 测试

打开您的网络浏览器并输入您的 Grav 站点域名,我的是 http://grav.hakase-labs.co/

您将获得默认的 Grav 主页,如下所示。

在 Ubuntu 16.04 上使用 PHP-FPM 和 Nginx Web 服务器安装 Grav Flat CMS 已成功完成。

参考

  • https://learn.getgrav.org/

©2015-2025 艾丽卡 support@alaica.com