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:
- Instalar Nginx
- Instalar y configurar PHP-FPM
- Instalar PHP Composer
- Descargar e Instalar Grav CMS
- Configurar host virtual Nginx para Grav
- 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.
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
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.