2012-06-20 7 views
5

Stavo per usare questo Simple PHP Upload with a Progress Bar, e dice che ho bisogno dell'estensione APC. Ho due opzioni con APC, thread-safe e non thread-safe.C'è qualche danno nell'usare un'estensione thread-safe (APC) in un ambiente senza thread? (PHP)

utilizzando phpinfo, trovo che thread-safety è abilitato, ma non sono sicuro che php sia effettivamente in esecuzione con il sottotitolo. Ho sentito che php è ancora un po 'beta per il mutitread.

In ogni caso, se il mio PHP non è sottoposto a modifica di thread e non era "thread-safe", ci sarebbero problemi nell'utilizzo di una versione thread-safe di APC?

tl; versione dr: l'APC thread-safe significa più compatibilità (funziona sia in php single/mutithread), o significa mutithread richiesto (funziona solo con il phithreadthread)?

+2

Se PHP è stato compilato con sicurezza thread, l'estensione deve essere stata anche. Se PHP è non thread-safe, l'estensione deve essere anche. L'estensione non verrà caricata a meno che non corrisponda, nel qual caso otterrai [un errore come questo] (http://stackoverflow.com/q/3271798/185544) (notare la mancata corrispondenza TS/NTS). Pertanto, è necessario l'APC thread-safe. – Wiseguy

risposta

6

se il mio PHP non è mutito e non era "thread-safe", ci sarebbero problemi nell'utilizzo di una versione thread-safe di APC?

Sì, non funziona, punto. La sicurezza del thread è un'impostazione di compilazione che deve corrispondere per PHP stesso e tutte le estensioni, altrimenti non possono essere caricate. Here's an article che spiega la differenza in grande dettaglio.

Nota che, oltre l'impostazione del TS/NTS, si anche necessario l'architettura della CPU (86 vs 64) e la versione di Visual Studio utilizzato per la compilazione (VC6 vs. VC9) in base al fine di una proroga per lavorare , e la versione dell'estensione potrebbe funzionare solo con una certa versione principale di PHP.

Tutto ciò significa che può essere molto difficile ottenere il corretto binario precompilato di un'estensione per funzionare con l'installazione di PHP.

-2

Mi consiglia di utilizzare la versione thread-safe. Mentre la versione non thread-safe potrebbe essere più veloce, se mai PHP supporta i thread (o le sue estensioni lo fanno), avere quella compatibilità extra è una buona idea.

+0

Per favore vedi la risposta di Michael Borgwardt - le versioni thread-safe e non-thread di PHP, comprese le estensioni, non sono reciprocamente compatibili. – duskwuff

+0

Sì, capito. Non mi sono preso la briga di aggiornare la mia risposta però. –