Installare WordPress 3.2 su Aruba con Windows Server

Avete presente la procedura semplice e veloce d'installazione di WordPress? Con Windows Server questa però assume un significato completamente diverso. Recentemente ho dovuto mettere online un sito basato su WordPress su un server virtuale Aruba, per ovvi motivi non intestato a nome mio :D, con Windows Server. Credetemi sulla parola quando vi dico che la cosa è alquanto straziante. Per di più oltre ai problemi legati a WordPress mi sono imbattuto in problemi per quanto riguarda PHP e MySQL. Cominciamo con il dire che WordPress è sostanzialmente pensato per lavorare su server Linux, la stessa Aruba nel suo vademecum afferma che il supporto della piattaforma su Windows Server non è garantito. Tuttavia con un po' di pazienza e olio di gomito questo non è un impedimento. Ovviamente per il funzionamento di WordPress 3.2 il server deve garantire PHP 5.2.4 e MySQL 5.0( o superiori ). L'installazione di per se non è molto complicata, dovete però mettervi in testa che quasi sicuramente incorrerete in problemi nell'utilizzo di alcuni plugin o funzioni. Ci sono infatti delle librerie che su Windows Server non sono supportate e quindi non disponibili a WordPress. Un piccolo prezzo da pagare.

Installazione

Un'installazione classica su Windows Server non porta a nessun risultato, infatti una volta terminata le uniche cose che riuscirete a visualizzare sarà una pagina di solo testo. Questo perchè tutti i contenuti presenti in wp-content non saranno accessibili. Per ovviare a questo problema o cambiate i permessi della cartella ( questo però credo valga solo nel caso di server virtuale/dedicato ) o utilizzate la cartella "public" che garantisce permessi maggiori. In questo how to utilizzerò il secondo metodo, in modo da poter aiutare anche coloro che si stanno avvalendo del più classico hosting Aruba. Unica nota, i possessori di server virtuali o dedicati non avranno la cartella public, basterà crearla e dare i permessi di scrittura. Procediamo!!!

Scaricate il pacchetto contenente tutti i file di WordPress da qui. Scompattate il file e tramite un qualsiasi editor di testo ( Notepad++, non mi stuferò mai di far pubblicità a questo software 😀 ) editate il file default-constants.php nella cartella wp-includes. Qui dovremo dire a WordPress che tutti i contenuti tipo temi, plugin, file uploadati non sono più collocati in wp-content ma bensì in public/wp-content. Infatti a differenza delle altre cartelle e file che dovranno andare sulla root wp-content finirà in public, dove potrà godere dei permessi necessari. Per fare questo dovremmo modificare il valore di due variabili globali:

  • WP_CONTENT_DIR
  • WP_CONTENT_URL

Sostituiamo quindi le righe 45-46:

if ( !defined('WP_CONTENT_DIR') )
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); // no trailing slash, full paths only - WP_CONTENT_URL is defined further down

con:

if ( !defined('WP_CONTENT_DIR') )
define( 'WP_CONTENT_DIR', $_SERVER['DOCUMENT_ROOT'] . '/public/wp-content' ); // no trailing slash, full paths only - WP_CONTENT_URL is defined further down

E le righe 81-82:

if ( !defined('WP_CONTENT_URL') )
define( 'WP_CONTENT_URL', get_option('siteurl') . '/wp-content'); // full url - WP_CONTENT_DIR is defined further up

con:

if ( !defined('WP_CONTENT_URL') )
define( 'WP_CONTENT_URL', get_option('siteurl') . '/public/wp-content' ); // full url - WP_CONTENT_DIR is defined further up

Se avete difficoltà nel trovare il path in cui sono presenti i vostri i file di WordPress non vi basterà che creare un file index.php e inserire:

<?php
// Show all information, defaults to INFO_ALL
phpinfo();
?>

Le informazioni che servono sono nel paragrafo "PHP Variables" alla voce "_SERVER["DOCUMENT_ROOT"]"

Terminate queste operazioni di editing potete uploadare tutti i file sul vostro server tramite FTP. Ora potete seguire l'installazione guidata di WordPress, inserendo i dati per stabilire la connessione al server MySQL. Terminata l'installazione WordPress è pronto per l'uso!

AGGIORNAMENTO

Ho fatto un bel errore... Credendo che la variabile $_SERVER['DOCUMENT_ROOT'] per ragioni di sicurezza non funzionasse ho inserito il path assoluto alla directory wp-content in public. Già di per se è una cosa da evitare però pensando che fosse l'unico modo per far funzionare la piattaforma ho pensato meglio che niente! La variabile interna DOCUMENT_ROOT però funziona e ritorna il path corretto. Ora anche questa non sarà la soluzione ideale, però sempre meglio del path assoluto.