Il File System di WordPress

Dopo aver dato una rapida occhiata alla bacheca di WordPress, facciamo un passo indietro e torniamo alla nostra installazione per analizzare più da vicino il file system del CMS.

Conoscere il file system di WordPress è importante se si vuole avere un controllo completo sul software. Sapere dove vengono archiviati i file dei temi e dei plugin installati, quali sono i file di configurazione e come questi incidono sul funzionamento della piattaforma è indispensabile per chiunque voglia gestire autonomamente gli aspetti principali del funzionamento del proprio sito.

Si tratta di aspetti legati alla sicurezza, all’ottimizzazione per i motori di ricerca (SEO), allo sviluppo e alla manutenzione di WordPress. Conoscere il file system è anche importante perché ci permette di sapere su quali file agire quando si interviene manualmente sull’installazione per effettuare un backup o un aggiornamento del Core.

Conoscere il file system è anche fondamentale nella diagnosi e correzione degli errori che possono essere generati da temi e plugin. Quando, infatti, per un problema di compatibilità o altra causa non si ha più accesso al pannello di amministrazione di WordPress, la disabilitazione o la rimozione dei plugin può essere fatta solo accedendo direttamente al file system tramite un client FTP.

La maggior parte dei file del pacchetto base di WordPress costituisce quello che viene comunemente definito Core, cioè l’insieme dei file che permettono al software di funzionare e agli utenti di utilizzarne le funzionalità native, tra cui la creazione e l’organizzazione dei contenuti, il caricamento e la gestione dei file multimediali, la configurazione della struttura dei permalink, la gestione di un sistema di commenti e molto altro.

Prima dell’installazione, il file system mancherà di alcuni file importanti che vengono generati da WordPress durante la configurazione iniziale. Cominciamo, quindi, analizzando il sistema dei file di WordPress 5.4 prima di lanciare l’installazione.

I file e le cartelle di WordPress prima dell’installazione

Il pacchetto appena scaricato dal sito di WordPress.org (qui la versione italiana)si compone di numerosi file suddivisi tra la radice e tre sotto-directory.

Il file system di WordPress
Il file system di WordPress prima dell’installazione del software

Tra i file presenti nella directory principale abbiamo, tra gli altri:

  • il file index.php: è il file che inizializza i file dell’installazione di WordPress al momento della richiesta di un utente
  • i file contenenti la licenza del softwarr: license.txt, licenza.html (nella versione italiana), readme.html. Questi file, vedremo, dovrebbero essere eliminati dall’installazione in quanto espongono delle informazioni che potrebbero aprire vulnerabilità in caso di attacco hacker.
  • il file wp-config-sample.php: questo file viene utilizzato in fase di installazione per la generazione del file wp-config.php, che analizzeremo più approfonditamente in seguito.

All’interno della directory principale, sono presenti tre sotto-cartelle:

  • wp-admin
  • wp-content
  • wp-includes

Nella prima cartella, wp-admin, sono ospitati i file che permettono il funzionamento del pannello di amministrazione di WordPress. Sono parte del Core e non si dovrebbero mai toccare (ne parleremo più diffusamente nel capitolo dedicato agli aggiornamenti).

Il file system di WordPress
La cartella wp-content contiene i file lingua e i pacchetti dei temi e dei plugin installati

Nella cartella wp-content vengono ospitati i file lingua, i temi, i plugin e i contenuti multimediali, ossia i contenuti del sito diversi dai contenuti testuali, archiviati, invece, nel database. Nell’installazione base, la directory wp-content ospita le seguenti cartelle:

  1. languages
  2. plugins
  3. themes

Nella cartella plugins vengono ospitati i file e le cartelle dei plugin installati sulla piattaforma. Nel pacchetto di installazione sono presenti due soli plugin, il plugin Akismet e Hello Dolly. Tutti gli altri dovrete aggiungerli voi.

Nella cartella themes vengono, infine, archiviati i file e le cartelle dei temi presenti nell’installazione. Ogni installazione di WordPress porta con se alcuni temi predefiniti. In WordPress 5.4 questi temi sono twentyseventeen, twentynineteen e twentytwenty.

Quando sarà caricato il primo file multimediale tramite la Libreria Media di WordPress, all’interno di wp-content sarà automaticamente creata anche la cartella uploads, come vedremo a breve.

La cartella wp-content, come anche le sue sottocartelle, contiene anche un file index.php. Aprendo questo file si scopre che questo contiene solo quanto segue:

<?php
// Silence is golden.

La presenza di file index all’interno di sottocartelle ha scopo di sicurezza, e serve a prevenire tentativi di accesso diretto al contenuto delle cartelle da parte di soggetti non autorizzati.

I file e le cartelle di WordPress dopo l’installazione

Durante la fase di configurazione di WordPress vengono generati alcuni file destinati a memorizzare informazioni necessarie al funzionamento del software. Altri file e cartelle vengono invece creati man mano che l’utente utilizza la piattaforma. Si tratta prima di tutto della cartella uploads, che si trova all’interno di wp-content, e dei file e cartelle dei plugin e dei temi, che si trovano rispettivamente nelle cartelle wp-content/plugins e wp-content/themes.

I file di configurazione: wp-config.php e .htaccess

Durante l’installazione di WordPress, all’amministratore del sito viene richiesto di inserire i dati necessari ad accedere al database del sito.

benvenuto in WordPress
La pagina di benvenuto in WordPress

Questi dati vengono memorizzati nel file wp-config.php, che viene generato dal template wp-config-sample.php. Oltre ai dati di accesso, questo file contiene una serie di costanti e variabili PHP che possono essere integrate o modificate durante la vita del sito. Avere accesso a questo file significa avere accesso all’intera installazione di WordPress. Per questo è indispensabile proteggerlo da accessi indesiderati, prima di tutto impostando i giusti permessi sul file (da 600 a 644).

wp-config-sample.php
Il file wp-config.php memorizza le informazioni di accesso al database

Il secondo file di configurazione è il file .htaccess. Questo viene generato solo sulle installazioni che girano su server Apache. Quindi, se avete installato WordPress in ambiente Nginx, non avrete un file .htaccess.

Questo file permette di stabilire direttive che determinano il funzionamento del server a livello di directory. Tra queste direttive, ricordiamo quelle che permettono il rewriting degli URL, ossia la trasformazione di indirizzi machine-readable in indirizzi human-readable per le risorse del sito.

Oltre a queste direttive, il file .htaccess permette di stabilire regole di accesso ai file, di creare filtri sugli IP e impostare misure di sicurezza che permettono di limitare notevolmente i rischi di violazione delle installazioni.

Anche questo file, vista la sua importanza ai fini della sicurezza e del corretto funzionamento del sito web, va protetto da accessi indesiderati, impostando preferibilmente i permessi CHMOD a 600.

htaccess
Il file .htaccess generato automaticamente da WordPress

La cartella dei file multimediali

WordPress dispone di un sistema di archiviazione e gestione dei file multimediali che prende il nome di Libreria Media. Ogni volta che viene caricato un file attraverso l’uploader presente nel pannello di amministrazione, non viene solo caricato il file corrispondente, ma, nel caso delle immagini, vengono anche create delle copie di diverse dimensioni che possono essere utilizzate in diverse parti del sito. Inoltre, ogni file caricato viene registrato all’interno del database.

Ciò significa che, di default, solo i file caricati attraverso l’interfaccia della Libreria media saranno disponibili in WordPress. AL contrario, il file caricati tramite un client FTP o il file manager del vostro host, non saranno immediatamente disponibili quando andrete a creare i contenuti del sito.

I file vengono memorizzati da WordPress in una sottocartella di wp-content/uploads. Queste cartelle vengono create man mano che vengono caricati i file nella Libreria media e assumono nomi che seguono questa struttura:

/wp-content/uploads/AAAA/MM/

Dove AAAA è l’anno e MM è il mese in cui è stato caricato il file.

Il contenuto della cartella uploads
Il contenuto della cartella uploads

Si vedrà in un altro capitolo che è possibile modificare la struttura predefinita dei nomi delle cartelle che ospitano i file media grazie all’utilizzo di plugin.