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

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

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

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

先决条件

  • Ubuntu 16.04
  • 根特权

我们将要做什么:

  1. 安装Nginx
  2. 安装和配置PHP-FPM
  3. 安装PHP Composer
  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/

现在回到根本原则,并将组织所有者更改为“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安装已成功完成。

参考

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏