PHP Thread Safe y Non-Thread Safe para Windows

4 minutos de lectura

avatar de usuario
sumar

Estoy descargando PHP para Windows. Tengo 2 opciones en el sitio web.

  1. Seguro para subprocesos de PHP
  2. PHP no seguro para subprocesos

Por favor, conteste a las siguientes preguntas:

  1. ¿Cuál es la diferencia entre los dos? ¿Cuáles son las ventajas y desventajas 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é?

  • posible duplicado de ¿Qué es seguro para subprocesos o no para subprocesos en PHP?

    – Shef

    26 de agosto de 2011 a las 12:46

  • ¿Qué entiendes por “tráfico pesado” y cómo puedes estar seguro de que lo vas a conseguir?

    – piotrp

    26 de agosto de 2011 a las 12:59

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

    – sumisión

    26 de agosto de 2011 a las 13:55

  • Solo que “tráfico pesado” se puede definir de muchas maneras, y lo que para algunas personas es tráfico pesado para algunas puede ser tráfico moderado o incluso ligero. Una métrica útil aquí es visitas a la página/día/hora/minuto, cualquier tipo de medida objetiva.

    – piotrp

    26 de agosto de 2011 a las 20:24

avatar de usuario
piotrp

De la documentación de PHP:

Thread Safety significa que el binario puede funcionar en un contexto de servidor web multiproceso, como Apache 2 en Windows. Thread Safety funciona creando una copia de almacenamiento local en cada hilo, de modo 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, porque el binario se invoca en cada solicitud. Para servidores web de subprocesos múltiples, como IIS5 e IIS6, debe usar la versión de subprocesos de PHP.

Así que realmente depende de la forma en que quieras usar PHP:

  • apache + LoadModule: A salvo de amenazas
  • Apache + FastCGI: no seguro para subprocesos
  • IIS: Subproceso seguro
  • IIS + FastCGI: no seguro para subprocesos

PHP manual tiene buen Instrucciones de instalación.

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

  • Este page dice que: “Si está usando PHP con IIS, debe usar las versiones de PHP no seguras para subprocesos (NTS)”. en comparación con la respuesta que dice: “IIS: Thread Safe”

    – umutm

    24 de mayo de 2013 a las 9:32

  • Sí, y menciona FastCGI. Thread Safe es para cuando se usa ISAPI (php5isapi.dll)

    – piotrp

    24 de mayo de 2013 a las 10:29

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

    – Simón Este

    18 de julio de 2017 a las 1:53

  • @SimonEast La versión NTS tiene algunos subprocesos de administración de sobrecarga, que ya realiza el servidor web, por lo que el rendimiento se degradará

    – Reza

    24 de julio de 2017 a las 14:13

  • @SimonEast Exactamente. Es como hacer un trabajo dos veces, una en PHP y otra en el servidor web

    – Reza

    2 de agosto de 2017 a las 13:46

Rápido y simple: si está utilizando Apache, edite su archivo Apache24\conf\httpd.conf y busque “loadmodule”. Si ve que su módulo de carga hace referencia a un .dll algo como:

Módulo de carga 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 quieres Seguridad de subprocesos habilitada o TSVersión segura para subprocesos.

De lo contrario, si está utilizando IIS o Apache con CGI, entonces sabor NTS.

Utilizo múltiples pilas y dentro de esos múltiples servidores y versiones de PHP, así que no dejes que las rutas / php o las versiones del servidor te desanimen.

avatar de usuario
Saso.Filipovic

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

Advertencia Este servidor web fue diseñado para ayudar al desarrollo de aplicaciones. También puede ser útil para realizar pruebas o demostraciones de aplicaciones que se ejecutan en entornos controlados. No pretende ser un servidor web completo. No debe usarse en una red pública.

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

    – Despertar

    8 de marzo de 2014 a las 0:43

  • Creo que por el servidor web incorporado, quiere decir Servidor web incorporado de PHP (php -S ip:port) – sin embargo, no tengo idea sobre la relación con la seguridad de subprocesos.

    – David Refouá

    28 de noviembre de 2018 a las 2:26

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad