find安装的PHP是线程安全的还是非线程安全的?

如何找出安装的PHP版本是线程安全的还是不安全的?

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

打开phpinfo()并search线程安全 。 对于线程安全的版本,您应该find启用

正如穆罕默德•盖尔巴纳 ( Muhammad Gelbana)在评论中指出的,您也可以使用:

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

如果你喜欢使用命令行:

  • * nix中:

     /path/to/php.exe -i | grep -i "Thread" 
  • 视窗:

     php -i | findstr -i "thread" 

这应该给你这样的东西:

 Thread Safety => enabled 

要么

 Thread Safety => disabled 

创build一个新的PHP文件,并在其中插入此代码:

 <?php phpinfo(); ?> 

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

从脚本:

 /** * @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())); } 

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

检查你的安装是Apache模块还是CGI二进制。 请参阅堆栈溢出问题在PHP中,线程安全或非线程安全是什么?