2011-08-26 22 views
62

Estoy descargando PHP para Windows. Tengo 2 opciones en el sitio web.PHP Thread Safe and Non-Thread Safe para Windows

  1. PHP hilo de seguridad
  2. PHP no seguro para subprocesos

Por favor, conteste las siguientes preguntas:

  1. ¿Cuál es la diferencia entre los dos? ¿Cuáles son las ventajas y desventajas de entre sí?
  2. Estoy desarrollando un sitio web de comercio electrónico que tendrá mucho tráfico, ¿cuál es más recomendable y por qué?
+1

posible duplicado de [Qué es un hilo seguro o no seguro para subprocesos en PHP] (http://stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php) – Shef

+0

¿Qué entiende por "tráfico pesado" y cómo puede estar seguro de que lo obtendrá? – Crack

+0

@ Crack: el tráfico pesado significa que muchos usuarios utilizarán el sitio web en un momento determinado. ¿Por qué no puedo estar seguro de eso? Algo malo con eso? –

Respuesta

69

De la documentación de PHP:

Seguridad para subprocesos significa que binaria puede trabajar en un contexto servidor web multiproceso, como Apache 2 en Windows. Thread Safety funciona creando una copia de almacenamiento local en cada hilo, para que los datos no colisionen con otro hilo.

Entonces, ¿qué elijo? Si elige ejecutar PHP como un binario CGI, entonces no necesitará seguridad de subprocesos, ya que el binario se invoca en cada solicitud. Para servidores web multiproceso, como IIS5 e IIS6, debe usar la versión enhebrada de PHP.

Así que realmente depende de la forma en que desea utilizar PHP:

  • Apache + LoadModule: hilo de seguridad
  • Apache + FastCGI: no seguro para subprocesos
  • IIS: hilo de seguridad
  • IIS FastCGI +: no seguro para subprocesos

manual de PHP tiene agradable installation instructions.

AFAIR que ejecuta PHP con FastCGI es la forma preferible, funciona más rápido y permite una configuración de seguridad más fina.

+9

[Esta] (http://windows.php.net/download/) página dice que: "Si está utilizando PHP con IIS, debe usar las versiones de Non-Thread Safe (NTS) de PHP". en comparación con la respuesta que dice: "IIS: Thread Safe" – umutm

+6

Sí, y menciona FastCGI. Thread Safe es para cuando se utiliza ISAPI (php5isapi.dll) – Crack

+0

¿Por qué molestarse con la opción no segura para subprocesos? Es como si: si pudiera elegir entre comprar un auto seguro y uno no seguro, ¿por qué elegiría el auto no seguro? Funciona mejor o algo así? –

0

Además de Crack, desde 5.4 puedes usar el servidor web incorporado (¡funciona bien!).

+10

. Necesita agregar algún tipo de referencia de lo que está hablando. ¿Qué servidor web incorporado? ¿Cómo se relaciona esto con ThreadSafe vs NotThreadSafe? – Despertar

0

Rápido y simple: si está utilizando Apache edite su archivo Apache24 \ conf \ httpd.conf y busque "loadmodule". Si ve que su loadmodule hace referencia a un .dll algo así como:

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

entonces usted quiere activar Seguridad para subprocesos o TS - hilo versión segura.

Si está utilizando IIS o Apache con CGI, entonces tendrá sabor NTS.

Utilizo varias pilas y dentro de esos servidores y versiones múltiples de PHP, así que no deje que las rutas de acceso/php o las versiones de servidor lo lancen.