Quando di parla di WordPress, si intende che il server dove deve essere ospitato sia Linux con MySql. Questo è sicuramente vero, ma è possibile, con qualche accorgimento, farlo girare tranquilli tranquilli anche su un Windows Server (nel mio caso un WS2008 r2).

Fondamentale, ovvio, è il modulo PHP e mySQL. Per installarli ci sono un milione di guide, quindi, io salto questo passaggio. (fortunatamente nel mio server ho Parellels Plesk e tutto è già configurato).

Per procedere all’installazione, i passaggi sono sempre gli stessi che useremmo in un qualsiasi server linux:

  1. creare un database mySql con un nome utente e una password (meglio che non sia quella amministrativa di mySql)
  2. trasferire il pacchetto wordpress scompattato nella cartella dell’hosting,
  3. cambiare i permessi di scrittura in lettura/scrittura per la cartella wp-content
  4. lanciare l’installazione dal browser.

e fin qui nulla di nuovo ne di complicato, il nostro blog/sito è raggiungibile subito e possiamo incominciare a scrivere le nostre belle cosine.

Windows e i Permalinks?

si, fino a qui tutto è normale, solo che se guardiamo bene l’url, questo è del tipo “http://aculine.net/?p=649” anzichè un più leggibile “http://aculine.net/2014/01/wordpress-funzionante-su-iis7-5”.

Schermata 2014-01-14 alle 12.11.51Provate a modificare la pagina dei permalink nelle impostazioni. Funziona? no.

No, perchè manca un modulo tipico di linux/apache: il mod_rewrite. Questo modulo permette proprio di creare delle regole per recuperare il permalink che decidiamo noi e “sostituire” il vero nome del file nell’url del sito.

http://aculine.net/?p=649 => http://aculine.net/2014/01/wordpress-funzionante-su-iis7-5Schermata 2014-01-14 alle 12.15.03

Sì, ma per Windows?

Ci hanno messo un po’, ma alla fine ci sono arrivati anche loro., con un modulo da installare nel server, con il modulo chiamato “URL rewrite” che, a modo suo, funziona. Il modulo per la verità lato interfaccia server è un po’ complicato, ma, come esiste il .htaccess per linux, esiste il web.config di IIS7. quindi, creiamo un file nella base-root di wordpress (o nella sottocartella dove è stato installato) chiamato appunto “web.config” e copiamo questi parametri XML:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="wordpress" patternSyntax="Wildcard" stopProcessing="true">
<match url="*"/>
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule></rules>
</rewrite>
</system.webServer>
</configuration>

Ho trovato diverse guide e tutorial, alla fine ho mischiato un po’ tutto e per me così funziona.

Back to top