2011-08-26 20 views
62

Sto scaricando PHP per Windows. Ho avuto 2 opzioni sul sito web.PHP Thread Safe e No Thread Safe per Windows

  1. PHP Thread Safe
  2. PHP non-Thread sicuro

Si prega di rispondere alle seguenti domande:

  1. Qual è la differenza tra i due? Quali sono i vantaggi e gli svantaggi l'uno rispetto all'altro?
  2. Sto sviluppando un sito di e-commerce che avrà un traffico intenso, quale è più consigliato e perché?
+1

possibile duplicato di [Che cos'è thread-safe o non thread-safe in PHP] (http://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php) – Shef

+0

Che cosa intendi per "traffico pesante" e come puoi essere certo di averlo? – Crack

+0

@ Crack: traffico pesante significa che molti utenti utilizzeranno il sito Web in un dato momento. Perché non posso esserne sicuro ?! Qualcosa non va? –

risposta

69

Da documentazione di PHP:

Thread Safety significa che binario può lavorare in un contesto web server multithread, come Apache 2 su Windows. Thread Safety funziona creando una copia di archiviazione locale in ogni thread, in modo che i dati non entrino in collisione con un altro thread.

Quindi, cosa scelgo? Se scegli di eseguire PHP come binario CGI, non avrai bisogno di sicurezza del thread, perché il binario viene richiamato ad ogni richiesta. Per i server Web con multithreading, come IIS5 e IIS6, è necessario utilizzare la versione con thread di PHP.

Così è in realtà dipende dal modo in cui si desidera utilizzare il PHP:

  • Apache + LoadModule: thread-safe
  • Apache + FastCGI: non-thread sicuro
  • IIS: thread-safe
  • IIS FastCGI +: non-thread sicuro

manuale di PHP ha nice installation instructions.

AFAIR che esegue PHP con FastCGI è il modo preferibile, è più veloce e consente una configurazione di sicurezza più dettagliata.

+9

[This] (http://windows.php.net/download/) dice che: "Se stai usando PHP con IIS dovresti usare le versioni NTS (Non-Thread Safe) di PHP." rispetto alla risposta che dice: "IIS: Thread Safe" – umutm

+6

Sì, e menziona FastCGI. Thread Safe è per quando si utilizza ISAPI (php5isapi.dll) – Crack

+0

Perché preoccuparsi di un'opzione non thread-safe? È come se potessi scegliere tra l'acquisto di un'auto sicura e di un'auto non sicura, perché dovrei scegliere l'auto non sicura? Funziona meglio o qualcosa del genere? –

0

Oltre a Crack, dal 5.4 è possibile utilizzare il server Web incorporato (funziona benissimo!).

+10

È necessario aggiungere una sorta di riferimento a ciò di cui si sta parlando. Quale server web integrato? In che modo questo si riferisce a ThreadSafe vs NotThreadSafe? – Despertar

0

Veloce e semplice: se si utilizza Apache, modificare il file Apache24 \ conf \ httpd.conf e cercare "loadmodule". Se vedi il tuo LoadModule fa riferimento a un qualcosa di simile dll:

LoadModule php7_module "e: /x64Stack/PHP/php7.1.9/php7apache2_4.dll"
applicazione AddHandler/x-httpd-php .php
PHPIniDir "e: /x64Stack/PHP/php7.1.9"

poi si desidera thread Safety abilitata o TS - Discussione versione sicura.

Altrimenti se si utilizza IIS o Apache con CGI e quindi il gusto NTS.

Io uso più stack e all'interno di più server e versioni di PHP, quindi non lasciare che le versioni di percorsi/php o server ti lanciano.