2011-04-27 118 views
58

如何确定安装的PHP版本是线程安全的还是不安全的?查找安装的PHP是线程安全的还是非线程安全的?

请注意,我不是问线程安全/非线程安全安装之间的区别。我想知道当前安装的是什么。

+1

看到HTTP答案://计算器。com/questions/1623914 /什么是线程安全的或非线程安全的在PHP中 – 2011-04-27 05:41:54

+0

@哈伊姆那不是我的问题哈伊姆。我看到了这个线程。我已经在这台服务器上安装了PHP。它与IIS一起工作。但是,我需要找出哪个安装程序用于安装此...线程安全设置/非theadsafe设置? – Josh 2011-04-27 05:45:53

回答

116

打开phpinfo()并搜索该行线程安全。对于线程安全版本,您应该找到启用

正如Muhammad Gelbana在评论中规定的,你也可以使用:

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

最后,我发现它在phpinfo命令里面..谢谢grunk ... – Josh 2011-04-27 07:46:04

+13

在Windows上:'php -i | find“主题“' On * nix:'php -i | grep Thread' – 2013-09-02 09:33:18

+4

注意自我:'php -i |找到“Architecture”来检查它是x86还是x64 – checksum 2015-03-07 15:06:24

0

检查您的安装是Apache模块还是CGI二进制。请参阅堆栈溢出问题What is thread safe or non-thread safe in PHP?

+0

如何检查?当然它被IIS使用..但我怎么找出它是什么模块?这是我的问题......我不是故意问一下线程安全/非线程安全的区别。我需要知道是否安装的版本是线程安全的/不是 – Josh 2011-04-27 05:43:49

+0

好吧,我只是调查了一下,是的[2 builds](http://windows.php.net/download/)可用;安全和不安全。根据这个[IIS7的安装指南](http://www.php.net/manual/en/install.windows.iis7.php),推荐使用非线程安全的安装。你能打开一个phpinfo()和se如果'thread'这个词在任何地方出现吗? – Phliplip 2011-04-27 06:02:47

+0

是的,phpinfo有它的信息...只是发现它...谢谢@Philiplip – Josh 2011-04-27 07:56:26

3

创建一个新的PHP文件中插入该代码它:

<?php 
phpinfo(); ?> 

然后运行这个页面,你会发现所有的PHP信息。搜索你想要的术语,它会显示它已启用。

17

如果你喜欢使用命令行:

  • 的* nix:

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

    php -i | findstr -i "thread" 
    

这应该给ÿ OU是这样的:

Thread Safety => enabled 

Thread Safety => disabled 
+0

不是一个好主意,因为服务器使用的PHP版本可能与操作系统(默认)拾取的版本不同。 – Buffalo 2017-08-02 07:18:40

2

从脚本:

/** 
* @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

我只是觉得它更容易看[版本]文件名为PHP .dll文件中php的根文件夹。它的php [版本] .dll或php [版本] ts.dll(ts代表线程安全)。所以,如果您安装了php7.0.10,请转到具有该名称的目录,您将找到一个名为php7ts.dll的文件。这是一个非常难过的发现,但它的作品!

0

然后有没有记录的ZEND_THREAD_SAFE常量,它似乎自PHP 4.3以来就存在。

<?php 

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

https://3v4l.org/tALKX