Come configurare il modulo Fastcgi e PHP per ospitare applicazioni PHP su IIS 7 e versioni successive

In questo articolo, imparerai i mezzi per configurare l’elemento FastCGI e anche come configurare PHP per consentirgli di ospitare tutte le applicazioni di PHP sul server Web IIS 7 e le versioni recenti.


Sulla piattaforma IIS, l’elemento FastCGI consente di abilitare quei framework applicativi ampiamente utilizzati che allo stesso tempo offrono supporto agli elementi FastCGI e consente agli elementi di essere ospitati in modo affidabile e ad alte prestazioni sul Web Server del IIS. FastCGI prevede un interscambio con Common Gateway Interface (CGI) che è un mezzo di prima classe per l’interfacciamento di applicazioni esterne con quei server Web che è stata una funzionalità supportata da IIS dalla prima volta in cui è stato rilasciato.

I programmi CGI sono file che possono essere eseguiti e nella maggior parte dei casi; i Web Server li lanciano per ogni richiesta che definisce l’elaborazione della richiesta e la generazione di risposte speciali che sarebbero poi restituite a quell’utente. A causa del fatto che l’esecuzione multi-thread non è supportata da molti di questi framework, il CGI li aiuterebbe quindi a eseguire in modo affidabile sulla piattaforma IIS con l’esatta esecuzione di una singola richiesta per ogni processo. A causa delle spese legate all’inizio e alla chiusura di un singolo processo per ogni query, produce un risultato molto scarso.

Predisponendo un mezzo con cui un processo viene utilizzato più e più volte per gestire molte richieste, FastCGI risolve tutti i problemi relativi alle prestazioni comuni con CGI. Predisponendo un pool di processi che possono essere riutilizzati e assicurandosi che solo una richiesta sia gestita da un solo processo alla volta, FastCGI mantiene la compatibilità con quelle librerie che non sono “thread-safe”.

Isolamento di sicurezza per siti Web PHP

Tutte le raccomandazioni IIS per l’isolamento della sicurezza generale sono coerenti con le raccomandazioni utilizzate per isolare i siti Web che supportano PHP in un ambiente che può essere condiviso per l’hosting. La raccomandazione per isolare i siti Web PHP in un ambiente di hosting condiviso è coerente. Pertanto, le raccomandazioni seguenti:

  • Assicurarsi di utilizzare un unico pool di applicazioni per un solo sito Web.
  • Assicurarsi che per il pool di applicazioni si utilizzi un account utente dedicato
  • Per utilizzare l’identità del pool di applicazioni, configurare un’identità utente anonima.
  • Assicurati di abilitare la rappresentazione FastCGI nel file di php.ini in questo modo: (fastcgi.impersonate = 1)

Comportamento del riciclaggio dei processi PHP

Assicurarsi che prima di iniziare il riciclaggio per il PHP nativo, FastCGI abbia già riciclato i processi di php-cgi.exe. I comportamenti di riciclaggio del sistema FastCGI sono regolati dagli attributi di configurazione di “instanceMaxRequests”. Ora quella particolare proprietà specifica il numero di query che FastCGI può gestire prima del riciclaggio.

Inoltre, PHP ha un sistema correlato di funzionalità di riciclaggio regolato dall’ambiente PHP_FCGI_MAX_REQUEST. Assicurandoti che istanzaMaxRequests abbia un’impostazione uguale o inferiore a PHP_FCGI_MAX_REQUESTS, puoi essere certo che la logica di riciclaggio per il PHP nativo non verrà mai attivata.

Per configurare le impostazioni di FastCGI, è possibile utilizzare appcmd strumento Linea comandi o Gestione IIS.

A: Come utilizzare IIS Manager per configurare le impostazioni di riciclaggio di FastCGI

Passaggio 1: selezionare Impostazioni FastCGI

Assicurarsi di aver installato IIS Administration Pack sul server di proprietà e fare clic su Gestione IIS per aprire. Quindi fare doppio clic su Impostazioni FastCGI a livello del server.

Passaggio 2: selezionare l’opzione Modifica

Scegli la particolare app FastCGI che desideri configurare, quindi seleziona il pannello taggato “Azione” e scegli l’opzione di modifica.

Passaggio 3: configurare “InstanceMaxRequests"

Nel Modifica applicazione FastCGI la finestra di dialogo, integrare 10000 come InstanceMaxRequestssetup e scegliere la scheda taggata “Sfoglia” situata vicino alle impostazioni per EnvironmentVariables.

Passaggio 4: Aggiungi ambiente

Per il Editor di raccolte EnvironmentVariables, la finestra di dialogo integra il "PHP_FCGI_MAX_REQUESTS"Variabile d’ambiente e selezionare 10000 il suo valore.

Ciò è essenziale perché se non si configura l’impostazione, il sistema applicherà automaticamente l’impostazione predefinita di seguito:

Per theinstanceMaxRequests = "200"

Per il PHP_FCGI_MAX_REQUESTS = “500” (utilizzato principalmente nelle configurazioni PHP).

Come configurare le impostazioni di riciclaggio FastCGI usando la riga di comando

Al fine di configurare i comportamenti di riciclaggio di PHP e FastCGI, utilizzare il appcmd con l’uso dei comandi seguenti:

consoleCopy

C:>% windir% system32inetsrvappcmd set config -section: system.webServer / fastCgi /[fullPath=’c:{php_folder}php-cgi.exe’×.instanceMaxRequests:10000

C:>% windir% system32inetsrvappcmd.exe set config -section: system.webServer / fastCgi /+"[FullPath = ‘C: {} php_folder php-cgi.exe’].. EnvironmentVariables [nome = valore ‘PHP_FCGI_MAX_REQUESTS’, = ‘10000’]"

Abilitazione del controllo delle versioni di PHP

La maggior parte delle applicazioni supportate da PHP dipende da caratteristiche o funzioni disponibili solo per particolari versioni di PHP. Affinché quel particolare server possa ospitare questi tipi di applicazioni, è necessario abilitare varie versioni di PHP che dovrebbero anche essere eseguite contemporaneamente. La corsa di più versioni di PHP su quello stesso server Web è totalmente supportata dal gestore di IIS FastCGI.

Un esempio è quando hai in programma di integrare PHP 5.2.5, 5.2.1 e 4.4.8, il tutto come non thread-safe sul server web che possiedi. Devi prima inserire sul file system e in diverse cartelle i binari PHP equivalenti per consentire quella particolare configurazione. (ad esempio C: \ php525 \, C: \ php521 e C: \ php448 \ nts). E successivamente, è necessario creare per ogni versione, diversi pool di processi per le applicazioni FastCGI.

consoleCopy

C:>% windir% system32inetsrvappcmd set config /section:system.webServer/fastCGI /+[fullPath=’c:php525ntsphp-cgi.exe ‘]

C:>% windir% system32inetsrvappcmd set config /section:system.webServer/fastCGI /+[fullPath=’c:php521php-cgi.exe ‘]

C:>% windir% system32inetsrvappcmd set config /section:system.webServer/fastCGI /+[fullPath=’c:php448php.exe ‘]

In una situazione in cui hai tre siti Web “sito 1”, “sito 2” e “sito 3” e per ciascuno del sito, è necessario utilizzare una versione separata di PHP. È quindi possibile definire definizioni dei mapping dei gestori su ogni singolo sito per fare riferimento a un pool di processi corrispondente per l’app FastCGI.

Fare attenzione a notare che per ciascuno dei pool di processi

per FastCGI, viene creata un’identità unica combinando le proprietà di argomento e fullPath.

C:>% windir% system32inetsrvappcmd set config site1 -section: system.webServer / handlers /+"..[Name = ‘PHP448_via_FastCGI’, path = ‘* php.’, Verb = ‘*’, moduli = ‘FastCgiModule’, scriptProcessor = ‘c: php448php.exe’, resourceType = ‘O’]

C:>% windir% system32inetsrvappcmd set config site2 -section: system.webServer / handlers /+"..[Name = ‘PHP521_via_FastCGI’, path = ‘* php.’, Verb = ‘*’, moduli = ‘FastCgiModule’, scriptProcessor = ‘c: php521php-cgi.exe’, resourceType = ‘O’]

C:>% windir% system32inetsrvappcmd set config site3 -section: system.webServer / handlers /+"..[Name = ‘PHP525nts_via_FastCGI’, path = ‘* php.’, Verb = ‘*’, moduli = ‘FastCgiModule’, scriptProcessor = ‘c: php525ntsphp-cgi.exe’, resourceType = ‘O’]

Consigli sulla sicurezza di PHP

Al fine di garantire che durante l’installazione di PHP, si disponga di una sicurezza elevata, le impostazioni di seguito sarebbero di grande aiuto. Il primo passo per farlo è trovare e fare clic sul file php.ini aperto, quindi modificare le impostazioni per le configurazioni elencate di seguito.

allow_url_fopen = Off allow_url_include = Off

Questa impostazione viene utilizzata per disabilitare gli URL remoti utilizzati per le funzioni di gestione dei file, che possono causare vulnerabilità dell’iniezione di codice.

register_globals = Off

L’impostazione viene utilizzata per disabilitare register_globals

open_basedir ="c: inetpub"

L’impostazione viene utilizzata per limitare le aree che possono essere scritte e lette dai processi PHP su un file system.

safe_mode = Off safe_mode_gid = Off
L’impostazione viene utilizzata per disabilitare la modalità provvisoria.
max_execution_time = 30 max_input_time = 60
L’impostazione viene utilizzata per limitare il tempo di esecuzione dello script
memory_limit = 16M upload_max_filesize = 2M post_max_size = 8M max_input_nesting_levels = 64

Questa impostazione viene utilizzata per limitare l’utilizzo della memoria e le dimensioni dei file

display_errors = Off log_errors = On error_log ="C: pathofyourchoice"

Questa impostazione viene utilizzata per configurare la registrazione e i messaggi di errore

fastcgi.logging = 0

Questa impostazione farebbe in modo che il modulo IIS FastCGI fallisse qualsiasi richiesta quando PHP invia un dato su stderr usando il protocollo di FastCGI. Disabilita anche la registrazione FastCGI impedendo così a PHP di essere in grado di inviare informazioni di errore su stderr e di generare 500 codici di risposta per il client.

expose_php = Off

Questa impostazione viene utilizzata per nascondere la presenza del PHP.

Conclusione

Ecco qua, tutti i suggerimenti e i passaggi che ti aiuteranno a configurare il modulo Fastcgi e PHP per ospitare applicazioni PHP su IIS 7 e versioni successive. Dovresti essere in grado di eseguire l’azione se hai seguito i passaggi in questo articolo fino alla fine. Tuttavia, se ti capita di essere rifornito lungo la linea, sentiti libero di lasciare un commento per ottenere aiuto dal membro della comunità

Dai un’occhiata a questi 3 migliori servizi di web hosting

FastComet

Prezzo di partenza:
$ 2.95


Affidabilità
9.7


Prezzi
9.5


Di facile utilizzo
9.7


Supporto
9.7


Caratteristiche
9.6

Leggi le recensioni

Visita FastComet

Hosting A2

Prezzo di partenza:
$ 3.92


Affidabilità
9.3


Prezzi
9.0


Di facile utilizzo
9.3


Supporto
9.3


Caratteristiche
9.3

Leggi le recensioni

Visita A2 Hosting

ChemiCloud

Prezzo di partenza:
$ 2.76


Affidabilità
10


Prezzi
9.9


Di facile utilizzo
9.9


Supporto
10


Caratteristiche
9.9

Leggi le recensioni

Visita ChemiCloud

Articoli How-To correlati

  • Come utilizzare FastCGI per ospitare applicazioni PHP su IIS 7
    intermedio
  • Come installare e configurare MySQL per applicazioni PHP su Windows IIS 7
    intermedio
  • Come installare MySQL su un server Web Windows che esegue Apache
    novizio
  • Come installare PHP Composer su un VPS Centos 7 o un server dedicato
    intermedio
  • Come disconnettersi contemporaneamente da tutti gli utenti di WordPress
    intermedio
Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me