Ottimizzare WordPress su Windows

10

Info: Comincia oggi una collaborazione, speriamo per voi interessante, con Pietro Brambati di Microsoft. Pietro scriverà vari post su Microsoft e WordPress.Qui di seguito il suo about:
Lavoro in Microsoft dal 2000. Prima in MCS, divisione in cui mi occupavo di sviluppare software per grandi clienti italiani. Dal 2006 lavoro nella divisione DPE (Developer and Platform Evangelism), dove seguo le più innovative tecnologie, che mi trovate a raccontarvi in eventi pubblici Microsoft e non.

Durante lo scorso WordCamp ho avuto la possibilità di raccontarvi cosa Microsoft sta facendo per far girare, al meglio, le più note applicazioni Open Source per PHP e tra queste non poteva mancare l’ottimo WordPress. In questo articolo cercherò di darvi una guida passo-passo.

Installazione

Per installare WordPress su Windows il modo più rapido è usare il Web Platform Installer (WebPI), un tool gratuito che serve per configurare Windows, installando tutto il necessario.

Da questa pagina potete lanciare direttamente l’installazione di WordPress tramite il WebPI.

clip_image001

Il WebPI installa l’ultima versione stabile di WordPress, in questo momento la 2.9.2, e la migliore configurazione per far girare questa versione. Installa l’ultima versione del runtime PHP, configura il server web che trovate già nativamente su Windows: Internet Information Server (IIS) nella versione di Windows che usate: IIS 5.1 per Windows XP, IIS 6 per Windows Server 2003, IIS 7.x per Windows Server 2008 e R2, Vista e Windows 7.  Se avete installato la beta del tool gratuito Microsoft WebMatrix potete anche scegliere d’ installare WordPress su IIS Express, una versione di IIS 7 appositamente pensata per lo sviluppatore e installabile anche su macchine con Windows XP.

Inoltre viene installato FastCGI, un modulo di IIS progettato da Microsoft per far girare PHP in modo performante e affidabile su IIS. Tra le componenti più utili trovate poi il modulo di URL Rewrite, disponibile gratuitamente per le ultime versioni di IIS e che consente di avere url facilmente comprensibili e facilmente indirizzabili dai motori di ricerca su Internet e di abilitare i Permalink di WordPress.

La versione 2.9.x di WordPress richiede l’uso di MySQL come unico DBMS da usare, se non l’avete già installato il WebPI lo installerà per voi.

Ora verrete guidati alla configurazione, tra cui la scelta della password di amministratore per MySQL, come vedete dalla schermata seguente:

clip_image003

Premendo il bottone Continue, posso configurare dove avviene l’installazione di WordPress, scegliendo la porta, la directory virtuale etc. Alcune impostazioni sono già pre-configurate e potete lasciarle così, altre sono obbligatorie come vedremo a breve. Non vi preoccupate nel caso non le inseriate, verrete notificati e potrete inserirle prima di proseguire.

clip_image005

Nel secondo step per l’installazione di WordPress ecco che dovete inserire le informazioni obbligatorie per la creazione del database:

clip_image007

Da ora in poi sarà possibile accedere a WordPress nel modo usuale e procedere alla configurazione finale.

L’uso del WebPi è il modo più rapido per la configurazione di WordPress, se volete maggior controllo sulla configurazione potete comunque procedere ad un’istallazione manuale. Microsoft documenta la procedura migliore e testata per l’installazione di molte note applicazioni Open Source, a questo link trovate una guida passo-passo per l’installazione manuale di WordPress.

URL semplici e facilmente indicizzabili: configurazione dei Pretty Permalinks

L’uso di IIS 7 e del modulo di URL Rewrite vi consente di abilitare i “Pretty Permanlinks”. Se avete seguito la procedura d’installazione descritta sopra il modulo di URL Rewrite sarà già installato, quindi dopo esservi autenticati con un account amministrativo:

  • Fate click sul bottone dei Settings.
  • Fate click sul tab Permalinks per modificare la struttura  del Permalink Structure.

Quindi potete scegliere l’opzione desiderata, come in figura:

clip_image001[5]

Verrà creato un file XML chiamato web.config nella root di installazione di WordPress che conterrà la/le regole di routing abilitate per il modulo di URLRewrite. Se volete creare a mano il file XML potete farlo seguendo l’indicazione di questo articolo.

Miglioriamo le performance: usiamo la Windows Cache

Un’altra delle componenti sviluppate da Microsoft per migliorare le performance di PHP e WordPress e un modulo per IIS noto come Windows Cache, detta WinCache 1.1.

Tra le funzionalità di questa Cache ci sono le seguenti, che possono essere abilitate e disabilitate in modo opportuno.

  • Viene creata una cache del codice bytecode PHP in memoria condivisa. Il codice di WordPress verrà compilato una volta, memorizzato nella cache e quindi riutilizzato prendendolo dalla memoria condivisa. Questa tecnica porta ad un naturale aumento delle performance riducendo/eliminando i tempi di compilazione e riducendo il carico di lavoro della CPU. Va da sè che viene utilizzata più memoria per la cache e quindi questa soluzione non sia raccomandata in caso di scarsa memoria sul server in cui girà WordPress.
  • Viene fatto il cache del mapping che PHP fa tra i percorsi relativi negli include nei corrispettivi percorsi assoluti.
  • Se i file di WordPress vengono presi da una share di rete, questi possono essere mappati in memoria riducendo i tempi di acesso alle operazioni  di lettura e scrittura su disco.

Queste opzioni che trovate documentate a questo link possono essere abilitabili/disabilitabili nel file PHP.ini.

Ancora più veloce: usiamo la Windows Cache e le Cache API

Le funzionalità viste in precedenza, semplicemente funzionano, cioè non richiedono modifica del codice di WordPress per il loro funzionamento.

WordPress usa un meccanismo di estensione che consente di aggangiare un modulo per fare abilitare una cache per permettere di fare il caching di oggetti. Grazie a questo meccanismo possiamo usare usare la WinCache anche per questa configurazione. Per fare questo basta:

  • Creare un file di nome object-cache.php  nella directory /wp-content/.
  • Copaire il codice che trovate qui.

Questo è sufficente. Potete anche modificare il comportamento della WinCache ed in particolare delle funzioni qui descritte usando  il file wincache.php che trovate %SystemDrive%\Program Files\IIS\Windows Cache for PHP\ o qui su sistemi a 64 bit: %SystemDrive%\Program Files (x86)\IIS\Windows Cache for PHP.

Conclusione

In questo articolo avete visto come configurare WordPress su Windows con IIS, i Permalinks e la WinCache, che è parte del lavoro che Microsoft sta facendo per far girare al meglio applicazioni PHP su Windows con IIS. Se avete domande contattatemi pure tramite il mio blog e… al prossimo articolo.

Commenti dei Lettori


1
Il 4 September 2010, Giacomo scrive:

Non vorrei mai trovarmi a lavorare con qualcuno che ha bisogno dell’installerino punta e clicca per configurare WordPress su un server… Santo cielo, stiamo parlando di WordPress, lo può installare anche il sistemista più scalcagnato… Certo Microsoft ci ha regalato i server con l’interfaccia grafica, mai sentita un’idea più idiota…. Vabbè lasciamo perdere

2
Il 4 September 2010, kiby scrive:

la mia dimanda: ha senso utilizzare php e mysql sotto windows? Se si quali sono i vantaggi e gli svantaggi rispetto a linux?
Per me non ha senso in quanto sotto windows esiste già l’asp e microsoft sql server. Se devo realizzare siti sotto windows io utilizzerei quest’ultimi… sbaglio?

@giacomo: avere un’interfaccia grafica aiuta moltissimo ed io non sono contrario al suo utilizzo.

3
Il 5 September 2010, Pietro Brambati scrive:

Ciao Giacomo,
credimi gli installer servono, molta gente li preferisce. Ad ogni modo sono un’opzione in più, a chi piacino li usa, chi no può usare installazioni manuali se preferisce. Ovviamente molto più usate (quelle manuali) in ambienti di produzione.

Microsoft sta investendo nel far funzionare PHP in modo affidabile e performante su Windows con IIS e molte applicazioni Open Source.
Tieni conto che non tutti usano Linux. Ci sono molti clienti che hanno ambienti misti in cui devono far girare sia applicazioni ASP.NET che PHP sulle stesse macchine per ridurre costi o semplicemente perchè è più semplice gestire un’unica infrastruttura invece che due.

I hope it helps.

4
Il 7 September 2010, camu scrive:

Speriamo che questo post non diventi il “miele” per le api manichee che pensano che Microsoft sia l’origine di tutti i mali. Personalmente faccio le congratulazioni allo staff di WordPress Italia per questa bella iniziativa, che può tornare utile per costruire sia ambienti di test in locale, sia veri server dedicati su piattaforma Windows.

5
Il 27 October 2010, Antonio scrive:

Desidero entrare in contatto con persona introdotta nella creazione di siti disponibile a darmi informazioni e assistenza su come utilizzare al meglio WordPress.
Sono disponibile a pagare un compenso.
Grazie!
Saluti cordiali.
Antonio De Vico
335 6851047

6
Il 1 September 2011, garuax scrive:

l’ideale.
Un tempo per fare un sito semplice i programmatori si prendevano 1000, 2000 euro.
Ora un sito se lo puo’ fare chiunque. A questo serve l’interfaccia grafica, la tecnologia è per tutti.

7
Il 18 January 2012, Runner73 scrive:

Salve a tutti
volevo dare un contributo a questa discussione attraverso la mia esperienza. Da circa un paio di anni mi sono avvicianto al mondo wordpress, un pò per gioco, un pò per esplorare nuove possibilità lavorative. Per estrazione ho conoscenze sistemistiche approfondite lato microsoft e quindi ho spulciato in lungo ed in largo su come far convivere wordpress e microsoft (db sqlserver incluso.
Al momento è ormai circa un anno che ho sviluppato e gestisco diversi siti con wordpress che si basano sulla seguente piattaforma IIS+sqlserver2008R2+WP 3.3.1.

Considero lo sforzo di microsoft nel far giarare wordpress sui loro sistemi non un modo migliore o peggiore di fare quello che viene fatto con apache/mysql, ma un modo diverso che ad alcune persone (come me)può dare nuove opportunità. Di seguito riporto una procedura per installare sotto windows 2008 R2 una versione completamente funzionante di wordpress.
Saluti

Configurazione IIS + PHP
Aprire web platform installer (se non è già installato è possibile scaricarlo da http://www.microsoft.com/download/en/details.aspx?id=6164)
In basso a destra selezionare opzioni e scegliere come server web da utilizzare IIS (no IIS express)
In alto a destra ricercare la prola “php”, dai risultati proposti aggiungere all’installazione le seguenti voci:
– php 5.3.x
– gestione php per iis
– driver microsoft sql v2.0 per php v 5.3
– windows cache extension
Installare anche tutte le eventuali dipendenze proposte

Riavviare la macchina

Configurazione SQL Server 2008 R2 express edition

Andare su download.microsoft.com
Ricercare “sql server 2008 r2 advanced”
Scaricare la versione “Microsoft SQL Server2008 R2 RTM – Express with Advanced Services”
Effettuare l’installazione con i parametri di default
Al termine lanciare SQL Service configuration manager:
– abilitare sotto “SQL Network Configuration” il protocollo TCP
– fare doppio click sul protocollo e sotto la scheda Ip Address
eliminare tutte le voci TCP Dynamics Ports e TCP ports
impostare nella sezione ip all della scheda ip address il valore TCP Port a 1433
questo permette di collegarsi al DBMS tramite la stringa tcp:indirizzoip,1433

A questo punto occorre lanciare una sezione di windows update sulla macchina per installare il SP1 di SQL Server oppure scaricarlo sempre dal sito
download.microsoft.com utilizzando come chiave di ricerca sempre “sql server 2008 r2 advanced”

Dopo aver riavviato la macchina saranno correttamente installati e funzionanti IIS + PHP + SQl Server 2008 R2
In articolare dal pannello di controllo di IIS sarà possibile modificare le singole impostazioni di php senza andare a modificare il file php.ini
N.B.
– Sulla directory fisica scelta per sviluppare il sito web abilitare in lettura/scrittura l’utente IUSR
– Il protocollo suggerito per far comunicare php con sql server è pdo_sqlsrv
– In attesa della versione 1.2 Se si riscontrano errori strani patchare l’installazione di windows cache extention (http://forums.iis.net/t/1176918.aspx)

Installazione di wordpress:
Seguire le linee guida del plug-in:wp-db astraction http://wordpress.org/extend/plugins/wordpress-database-abstraction/

8
Il 27 February 2014, Fausta scrive:

ma si arriverà ad avere una installazione che poi faccia girare WordPress senza noie ?
Quando è su windows c’è sempre qalche cosa che non funziona o funziona male…

9
Il 23 September 2014, Marck scrive:

Salve. Proprio ieri ho cercato di installare wordpress tramite platform 2.0. Nella prima parte tutto ok ma poi nel momento in cui avrebgbe dovuto scaricare 1/25 aggiornamenti partendo da IIS praticamente si blocca e la barra di installazione ha continuato a lampeggiare all’infinito costringendomi ad interrompere l’istallazione.

Trackback/Pingback

Scrivi un tuo commento