¿Buscar si el PHP instalado es seguro para subprocesos o no para subprocesos?

3 minutos de lectura

avatar de usuario
jose

¿Cómo averiguo si la versión instalada de PHP es segura para subprocesos o no?

Tenga en cuenta que no estoy preguntando la diferencia entre una instalación segura para subprocesos/no segura para subprocesos. Me gustaría saber qué está instalado actualmente.

  • ver respuesta en stackoverflow.com/questions/1623914/…

    – Haim Evgui

    27 de abril de 2011 a las 5:41

  • @Haim Esa no es mi pregunta Haim. Vi ese hilo. Tengo PHP ya instalado en este servidor. Está trabajando con IIS. Pero, necesito averiguar qué configuración se usó para instalar esto… ¿Configuración segura para subprocesos/la configuración no segura?

    – José

    27 de abril de 2011 a las 5:45


avatar de usuario
gruñón

Abra un phpinfo() y busque la línea seguridad del hilo. Para una compilación segura para subprocesos, debe encontrar habilitar.

Como se especifica en los comentarios de Muhammad Gelbana, también puede usar:

  • En Windows: php -i|findstr "Thread"
  • En *nix: php -i|grep Thread

  • En Windows: php -i|find "Thread" En *nix: php -i|grep Thread

    – Muhammad Gelbana

    2 de septiembre de 2013 a las 9:33


  • Nota personal: php -i | find "Architecture" para comprobar si es x86 o x64

    – suma de comprobación

    7 de marzo de 2015 a las 15:06

  • @checksum es php -i | grep Architecture

    – ayuda

    14/07/2017 a las 20:01


avatar de usuario
Mate

Si prefiere usar la línea de comando:

  • *nada:

    php -i | grep -i "Thread"
    
  • Ventanas:

    php -i | findstr -i "thread"
    

Esto debería darte algo como esto:

Thread Safety => enabled

o

Thread Safety => disabled

  • No es una muy buena idea, ya que la versión de PHP utilizada por el servidor puede ser diferente de la recogida por el sistema operativo (la predeterminada).

    – Búfalo

    2 de agosto de 2017 a las 7:18

Me resulta más fácil mirar el archivo llamado php[version].dll en la carpeta raíz de php. Es php[version].dll o php[version]ts.dll (ts significa Thread Safe). Entonces, si tiene instalado php7.0.10, vaya al directorio que tiene este nombre y encontrará un archivo llamado php7ts.dll. Esta es una forma muy triste de averiguarlo, ¡pero funciona!

Luego están los indocumentados ZEND_THREAD_SAFE constante, que parece existir desde PHP 4.3.

<?php

if (ZEND_THREAD_SAFE) {
    echo 'Thread safe';
} else {
    echo 'Not thread safe';
}

https://3v4l.org/tALKX

avatar de usuario
peróxido

Cree un nuevo archivo PHP e inserte este código en él:

<?php
phpinfo(); ?>

Luego ejecute esta página y encontrará toda la información de PHP. Busque el término que desee y le mostrará que está habilitado.

avatar de usuario
Comunidad

Compruebe si su instalación es Apache Module o CGI Binary. Ver pregunta de desbordamiento de pila ¿Qué es seguro para subprocesos o no para subprocesos en PHP?.

avatar de usuario
julioano felipe

Otra forma de comprobarlo es usando php -v o php --version. Ejemplo de abajo del mío (NTS):

    $ php --version
    
    PHP 7.3.25-1+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Dec 26 2020 10:32:51) ( NTS )       
    Copyright (c) 1997-2018 The PHP Group
    Zend Engine v3.3.25, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.3.25-1+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

¿Ha sido útil esta solución?