Vai al contenuto

Impostazioni cookie

Scelga per ogni tipo quali cookie consente. Può modificare la sua scelta in qualsiasi momento tramite Impostazioni cookie in fondo a ogni pagina. Informativa sulla privacy

Necessari

Sempre attivi

Servono per accedere, conservare il carrello e ricordare le sue scelte. Sono sempre attivi.

Quali cookie?
  • weboke_sessie, weboke_klant, weboke_remember: la sua sessione e la permanenza dell'accesso
  • weboke_basket: il suo carrello
  • wkBtwIncl: visualizzazione dei prezzi con o senza IVA
  • wok_cookies: la sua scelta sui cookie, 12 mesi

Misurano quale annuncio porta a una visita o a un ordine, così non paghiamo annunci che non funzionano.

Quali cookie?
  • Google Ads tramite Google Tag Manager (_gcl_au, _gcl_aw), fino a 90 giorni
  • OpenAI Ads, annunci in ChatGPT
  • wok_aff: tramite quale partner è arrivato da noi (programma di affiliazione), 60 giorni

4,6

Paese e lingua

Ogni paese ha il suo sito, con i prezzi e l'IVA di quel paese.

Vedi

Modulo 1 · 1.3

File, wp-config e il database

Modulo 1: Come funziona WordPress · Tempo di lettura: 9 minuti

Obiettivo della lezione: Dopo questa lezione riconoscerà le cartelle di WordPress, le impostazioni in wp-config.php e le principali tabelle del database, e saprà dove trovare cosa.

Concetti chiave: wp-admin, wp-includes, wp-content (themes, plugins, uploads, mu-plugins), wp-config.php (DB_*, table_prefix, chiavi e salt, WP_DEBUG), .htaccess, wp_options (siteurl, home), wp_posts, wp_users

Due metà: file e database

Un sito WordPress è sempre composto da due parti che vanno insieme:

  1. File nella cartella web del Suo dominio (con DirectAdmin domains/example.com/public_html): il codice di WordPress, i Suoi temi, i Suoi plugin e tutto ciò che carica.
  2. Un database: tutti i Suoi testi, pagine, menu, impostazioni, utenti e commenti.

Questa distinzione è importante per i backup e le migrazioni. Un backup con solo i file non contiene i Suoi testi. Un backup con solo il database non contiene le Sue foto. Le servono entrambi (lezione 8.1).

Le cartelle

Apra la Sua cartella web in Gestione file o con un programma FTP, e vedrà più o meno questo:

public_html/
├── wp-admin/          la bacheca di amministrazione (core)
├── wp-includes/       il resto di WordPress (core)
├── wp-content/        tutto ciò che è Suo
│   ├── themes/        i temi
│   ├── plugins/       i plugin
│   ├── uploads/       i Suoi contenuti multimediali, per anno e mese: uploads/2026/11/
│   ├── mu-plugins/    plugin "must use" (se presenti)
│   ├── languages/     traduzioni
│   └── upgrade/       cartella temporanea per gli aggiornamenti
├── .htaccess          regole per il server web
├── index.php          il punto di partenza di ogni richiesta di pagina
├── wp-config.php      le impostazioni di questa installazione
├── wp-login.php       la pagina di accesso
├── xmlrpc.php         un vecchio collegamento per le app (lezione 7.3)
└── ...                altri file wp-*.php del core

La regola generale: wp-admin, wp-includes e i singoli file wp-*.php appartengono a WordPress. Vengono sovrascritti a ogni aggiornamento. Non vi inserisca mai nulla e non li modifichi.

wp-content è Suo. Un aggiornamento di WordPress lascia intatta questa cartella (tranne i temi e i plugin predefiniti che vengono inclusi). Qui vanno i Suoi temi, plugin e contenuti multimediali. Alcune cose da sapere:

  • uploads cresce più velocemente di tutti. Ogni foto caricata viene salvata da WordPress in più formati (lezione 4.4). Un sito con anni di notizie può avere gigabyte di contenuti multimediali.
  • mu-plugins (must use) sono plugin sempre attivi che non può disattivare dalla bacheca. Alcuni hoster e plugin li utilizzano. Anche gli intrusi amano nasconderci qualcosa (lezione 7.5). Se non riconosce un file lì, scopra da dove proviene.
  • Un plugin eliminato scompare da plugins. Un plugin disattivato resta presente, con tutto il suo codice (lezione 5.4).

wp-config.php: le impostazioni

wp-config.php è la prima cosa che WordPress carica. Contiene i dati con cui WordPress raggiunge il database, e alcune impostazioni per l'intera installazione. Una versione abbreviata:

define( 'DB_NAME', 'utente_wp1' );
define( 'DB_USER', 'utente_wp1' );
define( 'DB_PASSWORD', 'una-password-lunga-e-casuale' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );

define( 'AUTH_KEY',         'testo casuale lungo' );
define( 'SECURE_AUTH_KEY',  'testo casuale lungo' );
define( 'LOGGED_IN_KEY',    'testo casuale lungo' );
define( 'NONCE_KEY',        'testo casuale lungo' );
define( 'AUTH_SALT',        'testo casuale lungo' );
define( 'SECURE_AUTH_SALT', 'testo casuale lungo' );
define( 'LOGGED_IN_SALT',   'testo casuale lungo' );
define( 'NONCE_SALT',       'testo casuale lungo' );

$table_prefix = 'wp_';

define( 'WP_DEBUG', false );

/* Dat is alles, stop met bewerken! */
require_once ABSPATH . 'wp-settings.php';

Cosa significa:

  • DB_NAME, DB_USER, DB_PASSWORD, DB_HOST: con quale database, utente e password WordPress si connette, e su quale server. Se anche uno solo non è corretto, vedrà "Error establishing a database connection". Succede spesso dopo una migrazione o dopo aver modificato una password del database.
  • Le chiavi e i salt (le otto righe con KEY e SALT): testi casuali con cui WordPress firma i cookie di accesso. Chi li conosce può, in teoria, creare un cookie di accesso valido. Se li sostituisce, tutti vengono disconnessi. È esattamente ciò che fa dopo un attacco hacker (lezione 7.5). Nuovi valori si ottengono da https://api.wordpress.org/secret-key/1.1/salt/.
  • $table_prefix: il prefisso di tutti i nomi delle tabelle, di solito wp_. In questo modo più installazioni possono condividere un unico database. Scegliere un prefisso diverso non è una vera misura di sicurezza, ma non è nemmeno dannoso.
  • WP_DEBUG: attiva i messaggi di errore. Su un sito live questa impostazione è disattivata (false). Come visualizzare gli errori in sicurezza senza mostrarli ai visitatori lo legge nella lezione 5.4.
  • Le impostazioni che aggiunge Lei stesso (per esempio DISALLOW_FILE_EDIT nella lezione 7.4 o DISABLE_WP_CRON nella lezione 6.3) vanno inserite sopra la riga "stop met bewerken".

wp-config.php contiene la password del Suo database. Non condivida mai il file, non ne salvi una copia nella cartella web (come wp-config.php.bak o wp-config.old: chiunque può scaricarla perché il server web non la esegue come PHP) e assegnigli permessi file rigorosi (lezione 7.4).

.htaccess

Con LiteSpeed e Apache, nella cartella web è presente un file .htaccess con regole per il server web. Inizia con un punto, quindi è nascosto in molti programmi. WordPress vi inserisce questo blocco per indirizzi puliti (permalink):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

In parole semplici: "se non è un file esistente (!-f) e non è una cartella esistente (!-d), passalo a index.php." Questo è il passaggio 2 della lezione 1.2. I plugin (caching, sicurezza) aggiungono spesso blocchi propri. Metta le Sue regole personali fuori dai blocchi di WordPress e dei plugin, perché questi blocchi vengono talvolta riscritti. Con nginx .htaccess non esiste; lì questo aspetto viene gestito dall'hoster nella configurazione del server.

Il database: quale tabella per cosa

Con phpMyAdmin (in DirectAdmin sotto Gestione database) può consultare il database. Un'installazione normale ha dodici tabelle; i plugin spesso ne aggiungono altre. Le principali:

TabellaCosa contiene
wp_postsArticoli, pagine, revisioni, elementi di menu, e nei temi a blocchi anche template e pattern. Anche le immagini sono qui un "articolo" di tipo attachment
wp_postmetaDati aggiuntivi relativi agli articoli, come il prezzo di un prodotto o le impostazioni di un page builder
wp_optionsImpostazioni del sito e dei plugin. Qui si trovano siteurl e home (lezione 3.1), il nome del tema attivo e l'elenco dei plugin attivi
wp_users e wp_usermetaUtenti, le loro password (cifrate) e il loro ruolo
wp_terms, wp_term_taxonomy, wp_term_relationshipsCategorie, tag e quali articoli vi appartengono
wp_comments e wp_commentmetaCommenti

Due curiosità utili. Primo: in wp_options si trovano siteurl e home. Se questi sono errati (per esempio dopo una migrazione), il Suo sito reindirizza tutti verso l'indirizzo sbagliato e non riesce più ad accedere all'area di amministrazione. In tal caso può ripristinarli in phpMyAdmin o con regole in wp-config.php (lezione 3.1). Secondo: molte impostazioni vengono salvate in forma serializzata, un formato PHP in cui viene conteggiata la lunghezza di ogni testo. Se modifica manualmente un valore simile, o esegue una semplice operazione di "cerca e sostituisci" sul database, questa lunghezza non corrisponde più e l'impostazione si danneggia (lezione 3.2).

Consultare phpMyAdmin è sicuro. Modificare i dati lo faccia solo se sa cosa sta facendo, e sempre con un backup.

In pratica: come appare in un pannello

Come esempio utilizziamo DirectAdmin. In cPanel e Plesk le sezioni corrispondenti si chiamano allo stesso modo: File Manager e phpMyAdmin.

  1. Apra Gestione file e vada su domains/example.com/public_html. Attivi la visualizzazione dei file nascosti per vedere .htaccess.
  2. Clicchi su wp-config.php e scelga di visualizzarlo (non modificarlo). Cerchi DB_NAME e $table_prefix.
  3. Apra phpMyAdmin, scelga a sinistra il database con quel nome e veda quali tabelle sono presenti.
  4. Clicchi sulla tabella wp_options (con il Suo prefisso) e cerchi le righe siteurl e home.

Riassunto

  • Un sito WordPress è file più database; un backup richiede entrambi.
  • wp-admin, wp-includes e i singoli file del core appartengono a WordPress; wp-content è Suo.
  • wp-config.php contiene i dati del database, le chiavi e i salt, il prefisso delle tabelle e impostazioni come WP_DEBUG. Non ne conservi mai una copia nella cartella web.
  • .htaccess indirizza tutto ciò che non è un file verso index.php; le regole personali vanno inserite fuori dai blocchi di WordPress.
  • In wp_options si trovano siteurl e home; i dati serializzati non vanno modificati manualmente.

Quiz

1. Vuole apportare una modifica che sopravviva a un aggiornamento di WordPress. Dove deve inserirla?



2. Dopo una migrazione vede "Error establishing a database connection". Dove guarda per primo?



3. Cosa succede se sostituisce le chiavi e i salt in wp-config.php?



4. Perché un file wp-config.php.bak nella cartella web è pericoloso?



5. In quale tabella trova l'elenco dei plugin attivi?



Opdracht

Opdracht D1.3: Esplori la propria installazione. Apra la Sua cartella web in Gestione file o con un programma FTP, e poi il Suo database in phpMyAdmin. Non faccia altro che osservare. Annoti quanto ha trovato: il prefisso delle tabelle, il numero di tabelle nel database, i valori di siteurl e home in wp_options, e le cartelle presenti in wp-content. Annoti anche se vi sono file in wp-content/mu-plugins e se sa da dove provengono. Non condivida mai la password del Suo database, nemmeno in questo modulo.

Esercizio D1.3: Esplori la propria installazione

Questo esercizio lo svolge da sé; nessuno lo verifica. Spunti ciò che ha fatto e segni l'esercizio come completato.






Le Sue spunte e note restano solo in questo browser; non le inviamo da nessuna parte. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che ha svolto l'esercizio.

Per saperne di più

Questi articoli descrivono i passaggi nei pannelli di WebOké; in altri pannelli funzionano in modo simile.

Un momento…

Configuri i suoi domini

Per ogni dominio imposti i nameserver, il collegamento al suo hosting e chi ne diventa l'intestatario.

Caricamento dei suoi domini…