GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Grav CMS con Nginx en Ubuntu 16.04

Grav es una aplicación web moderna que no requiere base de datos. Es una plataforma web basada en archivos que es simple, rápida y no requiere instalación. Grav utiliza tecnologías modernas que incluyen Twig Templating para plantillas, Markdown para creación de contenido, YAML para configuración simple, Parsedown y caché de Doctrine para capa de rendimiento, etc. La herramienta está escrita en PHP y viene con el poderoso Sistema de administración de paquetes que le permite administrar el Sistema Grav, incluida la instalación y actualización de Grav, así como temas y complementos.

En este tutorial, le mostraré paso a paso cómo instalar y configurar Grav CMS en Ubuntu 16.04. Como Grav está basado en una aplicación web PHP, necesitamos instalar PHP en el sistema y, para obtener un mayor rendimiento, usaremos PHP-FPM con el navegador web Nginx.

Requisitos

  • Ubuntu 16.04
  • Privilegios de raíz

Lo que haremos:

  1. Instalar Nginx
  2. Instalar y configurar PHP-FPM
  3. Instalar PHP Composer
  4. Descargar e Instalar Grav CMS
  5. Configurar host virtual Nginx para Grav
  6. Pruebas

Paso 1:instalar el servidor web Nginx

En este primer paso, instalaremos el servidor web Nginx desde el repositorio de Ubuntu. Antes de hacer eso, necesitamos actualizar todos los paquetes y el repositorio usando los siguientes comandos apt.

sudo apt update
sudo apt upgrade

Ahora instale el servidor web Nginx.

sudo apt install nginx -y

Una vez completada la instalación, inicie el servicio y habilítelo para que se inicie en el arranque del sistema, algo que puede hacer con los siguientes comandos systemctl.

systemctl start nginx
systemctl enable nginx

El servidor web Nginx se instaló en Ubuntu 16.04 y se ejecuta en el puerto HTTP predeterminado 80. Verifíquelo con el comando netstat de la siguiente manera.

netstat -plntu

Y obtendrá el resultado como se muestra a continuación.

Paso 2:instalar y configurar PHP-FPM

Ahora instalaremos y configuraremos PHP-FPM para nuestra instalación de Grav. Instale los paquetes PHP y PHP-FPM (incluidas todas las extensiones necesarias) con el siguiente comando.

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

Ahora necesitamos configurar PHP-FPM.

- Instalar extensiones adicionales

Esto es opcional, pero es mejor para el rendimiento de Grav. Instalaremos algunas extensiones adicionales manualmente desde el repositorio de extensiones PHP usando el comando PECL.

Instale la extensión 'apcu' (para un mayor rendimiento de la caché) usando el comando 'pecl' a continuación.

sudo pecl install apcu

Ahora cree una nueva configuración de extensión 'apcu.ini' en el directorio '/etc/php/7.0/mods-disponible/'.

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

Pegue la siguiente configuración allí.

extension=apcu.so

Guardar y salir.

A continuación, active la extensión con los siguientes comandos.

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

Ahora, instalaremos la extensión 'YAML' para mejorar aún más el rendimiento de Grav. Pero antes de instalar la extensión, necesitamos instalar algunos paquetes usando el siguiente comando apt.

sudo apt install libyaml-dev unzip -y

Luego, instala las extensiones yaml usando el comando pecl.

sudo pecl install yaml-2.0.0

Una vez completada la instalación, cree un nuevo archivo de configuración 'yaml.ini'.

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

Pegue la siguiente configuración allí.

extension=yaml.so

Guardar y salir.

Ahora activa la extensión 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

Se han agregado nuevas extensiones PHP adicionales para Grav.

- Configurar grupo PHP-FPM para Grav

Antes de crear una nueva configuración de grupo PHP-FPM, debemos agregar un nuevo usuario llamado 'grav' al sistema, algo que puede hacer con el comando useradd.

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

Ahora vaya al directorio '/etc/php/7.0/fpm/pool.d' y haga una copia de seguridad de la configuración predeterminada de 'www.conf'.

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

A continuación, cree una nueva configuración de grupo PHP-FPM - 'grav.conf' - para Grav.

vim grav.conf

Pegue la siguiente configuración allí.

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

Guardar y salir.

Reinicie el servicio PHP-FPM y permita que se inicie en el arranque del sistema.

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

PHP-FPM ahora se ejecuta en el archivo 'php7.0-fpm.sock'; verifíquelo con el comando netstat de la siguiente manera.

netstat -pl | grep php

Y debería obtener el resultado como se muestra a continuación.

Nota:

Si desea verificar las extensiones apcu y yaml, puede usar los siguientes comandos php.

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

Se completó la instalación y configuración de PHP-FPM.

Paso 3 - Instalar PHP Composer

El compositor es un administrador de paquetes a nivel de aplicación para PHP. Se usa para administrar las dependencias de PHP.

Instale PHP Composer usando el siguiente comando.

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

Una vez completada la instalación, intente ejecutar el comando composer de la siguiente manera.

composer --version

Se ha instalado PHP Composer.

Paso 4:descarga e instalación de Grav

Instalaremos y ejecutaremos la herramienta como usuario 'grav'. El usuario fue creado en uno de los pasos anteriores.

Primero, inicie sesión como usuario 'grav'.

su - grav

Ahora, cree un nuevo directorio 'www'.

mkdir -p ~/www
cd ~/www

Descargue la última versión de grav usando wget y agregue una extensión '.zip' al nombre del archivo.

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

Extraiga el archivo 'latest.zip' y cambie el nombre del directorio 'grav' a 'html'.

unzip latest.zip
mv grav/ html/

Ahora regrese a los privilegios de raíz y cambie el propietario del grupo a 'www-data'.

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

Grav ahora es descargado e instalado por el usuario 'grav' en el directorio '/home/grav/www/html'.

Paso 5:configurar el host virtual Grav

En este paso, configuraremos el host virtual Nginx para Grav. Crearemos un nuevo archivo de host virtual llamado "grav" dentro del directorio "sitios disponibles" y luego activaremos el host virtual Grav.

Vaya al directorio de configuración '/etc/nginx' y cree un nuevo archivo 'grav' usando el editor vim.

cd /etc/nginx
vim sites-available/grav

Pegue la siguiente configuración de host virtual de Grav Nginx allí.

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
}

Guardar y salir.

A continuación, active el host virtual y pruebe la configuración de nginx.

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

Nota: Asegúrese de no obtener ningún error de Nginx después de probar la configuración.

Ahora reinicie los servicios Nginx y PHP-FPM.

systemctl restart nginx
systemctl restart php7.0-fpm

Se ha completado la configuración del host virtual Nginx Grav.

Paso 6 - Prueba

Abra su navegador web y escriba el nombre de dominio de su sitio Grav, el mío es http://grav.hakase-labs.co/

Y obtendrá la página de inicio predeterminada de Grav, como se muestra a continuación.

La instalación de Grav Flat CMS utilizando PHP-FPM y el servidor web Nginx en Ubuntu 16.04 se completó con éxito.


Ubuntu
  1. Cómo instalar WordPress con Nginx en Ubuntu 18.04

  2. Cómo instalar MediaWiki con Nginx en Ubuntu 16.04

  3. Cómo instalar Magento con Nginx en Ubuntu 15.10

  4. Cómo instalar Grav CMS en Ubuntu 15.04

  5. Cómo instalar Grav CMS en Ubuntu 18.04

Cómo instalar Craft CMS con Nginx en Ubuntu 20.04

Cómo instalar Nginx con ModSecurity en Ubuntu 15.04

Cómo instalar Grav CMS con Nginx en Ubuntu 20.04

Cómo instalar Nextcloud 13 en Ubuntu 16.04 con Nginx

Cómo instalar Nginx en Ubuntu 15.04

Cómo instalar Bludit CMS con NGINX en Ubuntu 20.04