Grav és un sistema de gestió de continguts (CMS) autoallotjat de programari lliure escrit en el llenguatge de programació PHP i basat en el marc d'aplicacions web Symfony. Utilitza una base de dades de fitxers plans tant per al backend com per al frontend.
És una bona alternativa a WordPress, ofereix un Dashboard, té una API, un gestor de paquets, còpies de seguretat i capacitats de SEO.
També té un sistema d'emmagatzematge en memòria cau sofisticat i automàtic. Compatible amb memcached, redis, xcache, etc. Entre altres funcions interessants.
Enllaços
- Documentació
- Repositori GitHub
- Fòrum per a suport/ajuda.
Prerequisits
Un servidor Ubuntu Server 20.04 LTS amb un usuari root o amb permisos per executar sudo i un registre DNS per obtenir un certificat amb Certbot.
Instal·lació
En aquest article s'explica com instal·lar Grav CMS, però instal·lant i configurant prèviament NGINX amb PHP i un certificat Let's Encrypt obtingut amb Certbot. Segueix els passos següents.
Actualitza el repositori i instal·la les actualitzacions:
# apt update && apt upgradeAccedeix al directori temporal i descarrega Grav del web oficial (inclou el connector admin):
# cd /tmp && wget https://getgrav.org/download/core/grav-admin/latest/grav-admin-v1.7.17.zipDescomprimeix el fitxer descarregat:
# apt install -y unzip && unzip grav-admin-v1.7.17.zipInstal·la NGINX, PHP amb els requisits de Grav (alguns paquets opcionals) i Certbot:
# apt install nginx php-cli php-fpm php-common php-curl php-dompdf php-gd php-zip php-apcu php-yaml php-xdebug php-mbstring php-xml php-json certbot python3-certbot-nginxComprova la instal·lació de PHP i la versió:
# php -vSincronitza el directori descomprimit amb webroot:
# rsync -rtv grav-admin/ /var/www/html/Canvia el propietari i el grup recursivament:
# chown -R www-data:www-data /var/www/html/Modifica també els permisos del directori:
# chmod -R 755 /var/www/html/Després edita el fitxer del lloc:
# vi /etc/nginx/sites-available/defaultCanvia el server_name del fitxer pel registre del subdomini o domini:
server_name grav.ejemplo.com;Afegeix index.php a la línia index:
index index.php;Substitueix la línia try_files per:
try_files $uri $uri/ /index.php?$args;Descomenta també les línies per a l'ús de PHP i denega l'accés a .htaccess (no utilitzat per NGINX). Quedarà així:
# passa els scripts PHP al servidor FastCGI
location ~ \.php$ {
# include snippets/fastcgi-php.conf;
include fastcgi.conf;
# fastcgi_index index.php;
# Amb php-fpm (o altres sòcols unix):
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
# Amb php-cgi (o altres sòcols tcp):
# fastcgi_pass 127.0.0.1:9000;
fastcgi_param HTTPS on;
}
# denega l'accés als fitxers .htaccess, si l'arrel de documents d'Apache
# coincideix amb la de nginx
#
location ~ /\.ht {
deny all;
}
Verifica la configuració modificada amb:
# nginx -tReinicia el servei web per tornar a carregar els canvis:
# systemctl restart nginx.serviceFinalment, obtén un certificat amb Certbot amb redirect:
# certbot --nginx --redirect -d grav.ejemplo.comAmb aquesta última acció, podràs accedir directament per HTTPS a l'admin per finalitzar la instal·lació creant un usuari per a Grav des del navegador (https://grav.ejemplo.com/admin)