Skip to content
Installare tema Sage per WordPress [guida tecnica]

Installare tema Sage per WordPress [guida tecnica]

By Pier Luigi Papeschi

Per usare il tema Sage di Roots, dobbiamo installare un WordPress strutturato in maniera diversa chiamato Bedrock: https://roots.io/bedrock/

Essendo uno strumento avanzato, utilizza comandi di console Linux che si presume si conoscano (un minimo), quindi devi avere accesso alla console del server, non occorre avere i privilegi di amministratore, ma almeno dell’utente web con potere di scrittura ed esecuzione. Se non sei questo utente diventalo con questo comando:

# su - nome_utente

Se il gestore dell’hosting non da la possibilità di avere una shell interattiva (sicuramente per problemi legati alla sicurezza), possiamo abilitare la shell temporaneamente:

# chsh -s /bin/bash nome_utente
# su - nome_utente

Cosa sono Bedrock e Sage?

Bedrock è un progetto open source strutturato in una certa maniera che unisce la sua versatilità, estrema diffusione (il 60% dei siti al mondo si basa su WordPress), completezza di WordPress alla straordinaria potenza, efficienza, pulizia e sicurezza di Laravel. Tramite un plugin interno chiamato Acorn, si rende il “vecchio amicone dei siti web: WordPress” potente e agile grazie alla struttura ingegneristica e all’avanguardia di Laravel.

Sage invece è un tema che completa questa trasformazione andando ad introdurre i template Blade di Laravel in WordPress… provare per credere 🙂 Per chi non conosce Blade, si tratta di un sistema di scrittura dei template non più in PHP puro, ma con una nomenclatura che rende il codice sicuro, più leggibile e quindi meno soggetto a errori.

Inoltre è possibile separare la “logica” dalla visualizzazione, cioè le “view” si andranno ad occupare SOLO di come si visualizzeranno i dati, mentre un file separato si occuperà di recuperare i dati e passarli alla view: figata!

Installazione di WordPress – Bedrock

Portati nella root web del progetto e inizia:

# composer create-project roots/bedrock .
# mv .env.example .env

# vi .env

DB_NAME=bedrock_db
DB_USER=bedrock_user
DB_PASSWORD=password_sicura
DB_HOST=localhost

WP_HOME=https://tuodominio.it
WP_SITEURL=${WP_HOME}/wp

WP_ENV=development

Visita: https://roots.io/salts.html

Copia “ENV FORMAT” e incollale nel file .env

Opzionale, abilita i moduli Apache necessari a bedrock:

# a2enmod rewrite proxy_fcgi setenvif
# a2enconf php\*-fpm

Cambia i permessi a vari file:

# find . -type d -exec chmod 755 {} \;
# find . -type f -exec chmod 644 {} \;

Cambia la DocumentRoot per farla puntare alla cartella web che i comandi sopra hanno creato. Se il tuo provider non ti fa modificare la DocumentRoot, puoi sempre inserire nel file .htaccess queste direttive:

RewriteEngine On
RewriteRule ^(.*)$ web/$1 [L]

Installare WordPress come sempre visitando la root del sito tramite il proprio browser, considera che avendo inserito le credenziali del database nel file .env, adesso non ti vengono chieste come farebbe una tradizionale installazione di WordPress.

Passiamo al tema Sage

# cd web/app/themes
# composer create-project roots/sage nome-del-tuo-tema
# cd nome-del-tuo-tema

Assicuriamoci di stare usando la versione di npm compatibile:

# nvm use 22

Installiamo ciò di cui Sage ha bisogno e compiliamo i vari file:

# npm install
# npm run build

Cambia le opzioni del PHP.INI:

memory_limit = 256M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 120

Adesso passiamo ad una configurazione che permette di vedere nel browser i cambiamenti appena salviamo i file del tema:

Cambia vite.config.js

import fs from 'fs';
...

export default defineConfig({
base: ...
...
  server: {
    host: '0.0.0.0',
    port: 5173,
    https: {
      key: fs.readFileSync(
        '/var/www/clients/client1/webXX/ssl/indirizzosito-le.key',
      ),
      cert: fs.readFileSync(
        '/var/www/clients/client1/webXX/ssl/indirizzosito-le.crt',
      ),
    },
    hmr: {
      host: 'indirizzosito',
      protocol: 'wss',
    },
  },
})