2011-04-27 13 views
58

¿Cómo puedo saber si la versión de PHP instalada es segura o no?¿Encuentra si el PHP instalado es seguro para hilos o no?

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

+1

ver respuesta en http: // stackoverflow.com/questions/1623914/what-is-thread-safe-or-non-thread-safe-in-php –

+0

@Haim Esa no es mi pregunta Haim. Vi ese hilo. Ya tengo PHP instalado en este servidor. Está trabajando con IIS. Pero, necesito averiguar qué configuración se utilizó para instalar esto ... Configuración de Threadsafe/la configuración no segura? – Josh

Respuesta

116

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

como se especifica en los comentarios por Muhammad Gelbana también se puede utilizar:

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

Finalmente, lo encontré dentro del comando phpinfo ... Gracias grunk ... – Josh

+13

En Windows: 'php -i | find" Tema "' En * nix: 'php -i | grep Thread' –

+4

Nota para usted:' php -i | busque "Arquitectura" 'para comprobar si es x86 o x64 – checksum

0

Comprueba si tu instalación es Apache Module o CGI Binary. Consulte Pregunta de desbordamiento de pila What is thread safe or non-thread safe in PHP?.

+0

¿Cómo lo compruebo? Por supuesto que es utilizado por IIS ... Pero, ¿cómo averiguo qué módulo es? Esa fue mi pregunta ... No me refiero a preguntar la diferencia entre threadsafe/no thread safe. Necesito saber si la versión instalada es segura/no es – Josh

+0

Ok, acabo de investigar un poco, y sí, hay [2 compilaciones] (http://windows.php.net/download/) disponibles; seguro y no seguro. De acuerdo con esta [guía de instalación para IIS7] (http://www.php.net/manual/en/install.windows.iis7.php) se recomiendan instalaciones que no sean seguras para hilos. ¿Podrías abrir un phpinfo() y se si la palabra 'thread' aparece en alguna parte? – Phliplip

+0

sí, phpinfo tenía la información ... Lo encontré ... Gracias @Philiplip – Josh

3

Crear un nuevo archivo PHP e insertar este código en it:

<?php 
phpinfo(); ?> 

A continuación, ejecute este página y encontrarás toda la información de PHP. Busque el término que desee y le mostrará que está habilitado.

17

Si prefiere utilizar la línea de comandos:

  • * nix:

    /path/to/php.exe -i | grep -i "Thread" 
    
  • de Windows:

    php -i | findstr -i "thread" 
    

Esto debería dar y ou algo como esto:

Thread Safety => enabled 

o

Thread Safety => disabled 
+0

No es una buena idea, ya que la versión de PHP utilizada por el servidor puede ser diferente de la que recogió el sistema operativo (por defecto). – Buffalo

2

de un guión:

/** 
* @return boolean true if PHP is thread safe 
*/ 
function isThreadSafe() 
{ 
    ob_start(); 
    phpinfo(INFO_GENERAL); 
    return preg_match('/Thread\s*Safety\s*enabled/i', strip_tags(ob_get_clean())); 
} 
2

Me resulta más fácil mirar en el archivo llamado php [versión] .dll en el carpeta raíz de php. Es php [versión] .dll o php [versión] ts.dll (ts está parado para Thread Safe). Por lo tanto, 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!

0

Luego está la constante no documentada ZEND_THREAD_SAFE, que parece existir desde PHP 4.3.

<?php 

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

https://3v4l.org/tALKX

Cuestiones relacionadas