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中,线程安全或非线程安全是什么? 。