如何查找已安装的PHP版本是线程安全还是非线程安全?
请注意,我不是在询问线程安全/非线程安全安装之间的区别。我想找出当前安装了什么。
如何查找已安装的PHP版本是线程安全还是非线程安全?
请注意,我不是在询问线程安全/非线程安全安装之间的区别。我想找出当前安装了什么。
打开 phpinfo() 并搜索一行 Thread safety。对于支持多线程的构建,您应该找到 enable。
根据 Muhammad Gelbana 的评论,您也可以使用以下命令:
php -i|findstr "Thread"
php -i|grep Thread
php -i|find "Thread"
在*nix系统上:php -i|grep Thread
- Muhammad Gelbanaphp -i | find "Architecture"
检查是 x86 还是 x64 架构。 - checksumphp -i | grep Architecture
。 - helpse*nix系统:
php -i | grep -i "Thread"
Windows:
php -i | findstr -i "thread"
这将给你类似这样的东西:Thread Safety => enabled
或者Thread Safety => disabled
我发现查看位于php根目录下命名为php[版本].dll的文件更加容易。它可能是php[版本].dll或者php[版本]ts.dll(ts代表线程安全)。如果你安装了php7.0.10,请进入这个目录,你将会找到一个名为php7ts.dll的文件。这是一种非常可悲的查找方式,但是它确实有效!
还有一个未记录的ZEND_THREAD_SAFE
常量,似乎自PHP 4.3以来就存在。
<?php
if (ZEND_THREAD_SAFE) {
echo 'Thread safe';
} else {
echo 'Not thread safe';
}
创建一个新的PHP文件,并将以下代码插入其中:
<?php
phpinfo(); ?>
运行此页面,您将找到所有PHP信息。搜索您想要的术语,它将显示已启用。
另一种检查方法是使用php -v
或php --version
。以下是我的示例(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