File wp-config.php di WordPress

wp-config.php WordPress

Il file più importante di WordPress é questo (wp-config.php.)

Questo file wp-config.php è il file principale del CMS WordPress ed é capace di fornire funzioni di vario tipo al gestionale. Di base offre queste funzioni sotto, ma se ne possono aggiungere di personalizzate se conoscete bene il sistema.
Ricordiamo inoltre che tale file deve sempre avere il minimo dei permessi CHMOD consentiti dal vostro server per motivi di sicurezza. Alcune delle funzioni di base che troviamo in questo file sono:  dati per la connesione al database, le chiavi di sicurezza, il prefisso per le tabelle nel caso di installazioni multiple sullo stesso database, e della localizzazione nella propria lingua, ma è possibile anche impostare altri parametri per personalizzare ulteriormente la propria installazione di WordPress. Vediamo come.

Database WordPress
/* impostazioni manuali */
define(‘DB_NAME’, ‘nome-database’);
define(‘DB_USER’, ‘utente-database’);
define(‘DB_PASSWORD’, ‘password-database’);
define(‘DB_HOST’, ‘localhost’);
/* utilizza delle porte alternative */
define(‘DB_HOST’, ‘localhost:1234’);
define(‘DB_HOST’, ‘mysql.domain.tld:1234’);
/* imposta il database in maniera dinamica */
define(‘DB_HOST’, $_ENV{DATABASE_SERVER});
/* set di caratteri e la collation */
define(‘DB_CHARSET’, ‘utf8’);
define(‘DB_COLLATE’, ”);
/* prefisso delle tabelle */
$table_prefix  = ‘wp_’;  //meglio cambiare con una cosa tipo xyz548_
/* abilita ottimizzazione automatica */
define(‘WP_ALLOW_REPAIR’, true); // da togliere una volta riparato il database

Sicurezza WordPress
define(‘AUTH_KEY’,         ‘put your unique phrase here’);
define(‘SECURE_AUTH_KEY’,  ‘put your unique phrase here’);
define(‘LOGGED_IN_KEY’,    ‘put your unique phrase here’);
define(‘NONCE_KEY’,        ‘put your unique phrase here’);
define(‘AUTH_SALT’,        ‘put your unique phrase here’);
define(‘SECURE_AUTH_SALT’, ‘put your unique phrase here’);
define(‘LOGGED_IN_SALT’,   ‘put your unique phrase here’);
define(‘NONCE_SALT’,       ‘put your unique phrase here’);

Per generare le chiavi, è possibile visitare questa pagina.

Localizzazione WordPress
Per utilizzare WordPress nella propria lingua, bisogna caricare nella directory /wp-content/languages un file .mo (per l’italiano il file è it_IT.mo)
La lingua di default è l’inglese.
define(‘WPLANG’, ‘it_IT’);
/* directory personalizzata */
define(‘LANGDIR’, ”);

Directory WordPress
/*
Percorso assoluto alla directory di WordPress
*/
if ( !defined(‘ABSPATH’) )
define(‘ABSPATH’, dirname(__FILE__) . ‘/’);

spostare la directory wp-content di WordPress
/* percorso locale completo alla directory (senza slash finale) */
define(‘WP_CONTENT_DIR’, $_SERVER[‘DOCUMENT_ROOT’] . ‘/path/wp-content’);
/* URI completo della directory (senza slash finale) */
define(‘WP_CONTENT_URL’, ‘http://example/blog/wp-content’);

spostare la directory del plugin di WordPress
/* percorso locale completo (senza slash finale) */
define(‘WP_PLUGIN_DIR’, $_SERVER[‘DOCUMENT_ROOT’].’/path/wp-content/plugins’);
/* URI completo della directory (senza slash finale) */
define(‘WP_PLUGIN_URL’, ‘http://example/blog/wp-content/plugins’);
definire il percorso assoluto al tema attivo tramite delle costanti predefinite. Invece di usare bloginfo(‘template_directory’), è possibile ridurre al minimo le query al database:
/* imposta il percorso al template e al foglio di stile del tema attivo */
define(‘TEMPLATEPATH’, get_template_directory());
define(‘STYLESHEETPATH’, get_stylesheet_directory());

due impostazioni fanno una query al database è possibile impostare il valore in maniera statica per velocizzare il caricamento del sitoweb:
define(‘TEMPLATEPATH’, ‘/percorso/assoluto/a/wp-content/themes/tema-attivo’);
define(‘STYLESHEETPATH’, ‘/percorso/assoluto/a/wp-content/themes/tema-attivo’);


Indirizzi del Blog e del Sito WordPress

Anche qui, impostando in maniera statica i valori relativi all’indirizzo del blog, si riducono le query al database
define(‘WP_HOME’, ‘http://www.vostrosito.it’);
define(‘WP_SITEURL’, ‘http://www.vostrosito.it’);
/* oppure settarle dinamicamente */
define(‘WP_HOME’, ‘http://’.$_SERVER[‘HTTP_HOST’].’/percorso/a/wordpress’);
define(‘WP_SITEURL’, ‘http://’.$_SERVER[‘HTTP_HOST’].’/percorso/a/wordpress’);

Cache WordPress
define(‘WP_CACHE’, true);      // attiva la cache
define(‘ENABLE_CACHE’, true);  // attiva la cache
define(‘CACHE_EXPIRATION_TIME’, 3600); // scadenza della cache in secondi
define(‘WP_CACHE’, false);     // disattiva la cache
define(‘DISABLE_CACHE’, true); // disattiva la cache

Specificare un Dominio per i Cookie di WordPress
define(‘COOKIE_DOMAIN’, ‘.vostrosito.it’); // notare il ‘.’ iniziale
define(‘COOKIEPATH’, preg_replace(‘|https?://[^/]+|i’, ”, get_option(‘home’).’/’));
define(‘SITECOOKIEPATH’, preg_replace(‘|https?://[^/]+|i’, ”, get_option(‘siteurl’).’/’));
define(‘PLUGINS_COOKIE_PATH’, preg_replace(‘|https?://[^/]+|i’, ”, WP_PLUGIN_URL));
define(‘ADMIN_COOKIE_PATH’, SITECOOKIEPATH.’wp-admin’);

Tabelle Utenti personalizzate di WordPress
define(‘CUSTOM_USER_TABLE’, $table_prefix.’my_users’);
define(‘CUSTOM_USER_META_TABLE’, $table_prefix.’my_usermeta’);

FTP/SSH per WordPress
/* forces the filesystem method: “direct”, “ssh”, “ftpext”, or “ftpsockets” */
define(‘FS_METHOD’, ‘ftpext’);
/* absolute path to root installation directory */
define(‘FTP_BASE’, ‘/path/to/wordpress/’);
/* absolute path to “wp-content” directory */
define(‘FTP_CONTENT_DIR’, ‘/path/to/wordpress/wp-content/’);
/* absolute path to “wp-plugins” directory */
define(‘FTP_PLUGIN_DIR ‘, ‘/path/to/wordpress/wp-content/plugins/’);
/* absolute path to your SSH public key */
define(‘FTP_PUBKEY’, ‘/home/username/.ssh/id_rsa.pub’);
/* absolute path to your SSH private key */
define(‘FTP_PRIVKEY’, ‘/home/username/.ssh/id_rsa’);
/* either your FTP or SSH username */
define(‘FTP_USER’, ‘username’);
/* password for FTP_USER username */
define(‘FTP_PASS’, ‘password’);
/* hostname:port combo for your SSH/FTP server */
define(‘FTP_HOST’, ‘ftp.vostrosito.org:21’);

Revisioni degli Articoli, Salvataggio automatico e Cestino di WordPress
/* limita il numero di revisioni per ogni post a 3 */
define(‘WP_POST_REVISIONS’, 3);
/* disattiva le revisioni */
define(‘WP_POST_REVISIONS’, false);
/* specifica l’intervallo per il salvataggio automatico (in secondi) */
define(‘AUTOSAVE_INTERVAL’, 160);
/* svuota il cestino dopo 7 giorni */
define(‘EMPTY_TRASH_DAYS’, 7);
/* disattiva il cestino */
// attenzione: WP non chiede conferma
// quando si clicca ‘Cancella definitivamente’
define(‘EMPTY_TRASH_DAYS’, 0);

Debug ed Error Log di WordPress
define(‘WP_DEBUG’, true); // attiva debug mode
define(‘WP_DEBUG’, false); // disattiva debug mode (default)
@ini_set(‘log_errors’,’On’);
@ini_set(‘display_errors’,’Off’);
/*
Creare un file <code>php_error.log</code>, fare in modo che sia scrivibile e
caricarlo sul proprio server, specificando il percorso assoluto:
*/
@ini_set(‘error_log’,’/percorso/assoluto/al/file/php_error.log’);

Aumentare la Memoria di PHP per WordPress

Se le tue pagine danno spesso un errore del tipo “Allowed memory size of xxx bytes exhausted” è necessario aumentare la memoria di PHP.
Se il vostro hosting lo permette e ne a bisogno, è possibile farlo tramite queste impostazioni sempre dal file wp-config.php:
define(‘WP_MEMORY_LIMIT’, ’64M’);
define(‘WP_MEMORY_LIMIT’, ’96M’);
define(‘WP_MEMORY_LIMIT’, ‘128M’);

Sovrascrivere i permessi dei File di WordPress
define(‘FS_CHMOD_FILE’, 0755);
define(‘FS_CHMOD_DIR’, 0644);

Salvare e mostrare le query al database di WordPress
define(‘SAVEQUERIES’, true);

inserire nel footer del tema attivo queste righe:
/* display the query array for admin only */
if (current_user_can(‘level_10’)) {
global $wpdb;
echo “<pre>”;
print_r($wpdb-&gt;queries);
echo “</pre>”;
}

Accesso limitato tramite Proxy o Intranet
define(‘WP_HTTP_BLOCK_EXTERNAL’, true);  // blocca richieste esterne
define(‘WP_HTTP_BLOCK_EXTERNAL’, false); // permetti richieste esterne
define(‘WP_ACCESSIBLE_HOSTS’, ‘api.wordpress.org’); // whitelist degli hosts

Abilita Multi-Site WordPress
define(‘WP_ALLOW_MULTISITE’, true);

e poi gestire l’attivazione tramite la pagina di amministrazione “Network” in Strumenti » Network.
Mostra tutte le Costanti definite
print_r(@get_defined_constants());

Rendere sicuro il file WP-Config
Di default il file wp-config.php si trova nella directory principale di WordPress ovvero la ROOT del sito, ma può essere spostato di modo che altri utenti del sito non possano visualizzarlo. WP può cercare in altre directory, se non trova il file nella root.
E’possibile inoltre limitare l’accesso al file da web tramite il file .htaccess

<Files wp-config.php>
order allow,deny
deny from all
</Files>

Potrebbero interessarti anche...