Problemi con upload php su server IIS7

Oggi mi è capitata una cosa davvero strana: nel fare un semplice script php che consente l’upload di un file mi sono imbattuto nel fatidico quanto criptico errore generico del server 500. La prima cosa che mi è venuta in mente è stata di impostare correttamente i limiti e timeout degli upload, nonchè aumentare la dimensione massima consentita per ciascun download, ovviamente tutto nel file di configurazione php.ini

Niente da fare, sempre il solito errore, per il quale tra l’altro non sono riuscito a trovare dettagli nei vari file di log.

Utilizzando un server Windows 2008 con IIS 7, ho iniziato a cercare in rete qualche possibile soluzione. In effetti un problema simile già l’avevo risolto per gli script ASP.NET semplicemente inserendo nel web.config le corrispondenti direttive.

Qui però il discorso è differente perchè si tratta di uno script PHP, che dunque gira mediante un modulo FastCGI. Dopo una sterminata serie di tentativi ne esco fuori trovando una soluzione. Il problema è dovuto a un timeout di attività del modulo FastCGI, che per fortuna è impostabile come parametro. Ecco i passi da eseguire:

  1. Aprire con un editor di testo il file %windir%\system32\inetsrv\config\applicationHost.config
  2. trovare il tag <fastcgi … />
  3. aggiungere l’attributo activityTimeout=”xxx” (xxx=numero di secondi, io ho messo 600)
  4. salvare il file
  5. riavviare IIS