查找安装的 PHP 是线程安全的还是非线程安全的?
Posted
技术标签:
【中文标题】查找安装的 PHP 是线程安全的还是非线程安全的?【英文标题】:Find if the installed PHP is threadsafe or nonthreadsafe? 【发布时间】:2011-08-13 13:53:27 【问题描述】:如何判断安装的php版本是线程安全的还是非线程安全的?
请注意,我不是在问线程安全/非线程安全安装之间的区别。我想知道当前安装了什么。
【问题讨论】:
在***.com/questions/1623914/…中查看答案 @Haim 那不是我的问题,Haim。我看到了那个线程。我已经在这台服务器上安装了 PHP。它与 IIS 一起工作。但是,我需要找出使用哪个设置来安装这个...线程安全设置/非 theadsafe 设置? 【参考方案1】:打开 phpinfo() 并搜索 Thread safety 行。对于线程安全的构建,您应该找到 enable。
Muhammad Gelbana 在 cmets 中指定您也可以使用:
在 Windows 上:php -i|findstr "Thread"
在 *nix 上:php -i|grep Thread
【讨论】:
在 Windows 上:php -i|find "Thread"
在 *nix 上:php -i|grep Thread
请注意:php -i | find "Architecture"
检查是 x86 还是 x64
@checksum 是php -i | grep Architecture
【参考方案2】:
如果你更喜欢使用命令行:
*尼克斯:
php -i | grep -i "Thread"
窗户:
php -i | findstr -i "thread"
这应该给你这样的东西:
Thread Safety => enabled
或
Thread Safety => disabled
【讨论】:
不是一个好主意,因为服务器使用的 PHP 版本可能与操作系统选择的 PHP 版本不同(默认)。【参考方案3】:我只是发现在 php 的根文件夹中查看名为 php[version].dll 的文件更容易。它可以是 php[version].dll 或 php[version]ts.dll(ts 代表线程安全)。因此,如果您安装了 php7.0.10,请转到具有此名称的目录,您将找到一个名为 php7ts.dll 的文件。这是一种非常可悲的发现方式,但它确实有效!
【讨论】:
【参考方案4】:然后是未记录的 ZEND_THREAD_SAFE
常量,它似乎自 PHP 4.3 以来就存在。
<?php
if (ZEND_THREAD_SAFE)
echo 'Thread safe';
else
echo 'Not thread safe';
https://3v4l.org/tALKX
【讨论】:
【参考方案5】:创建一个新的 PHP 文件并将此代码插入其中:
<?php
phpinfo(); ?>
然后运行这个页面,你会发现所有的 PHP 信息。搜索您想要的字词,它会显示它已启用。
【讨论】:
【参考方案6】:检查您的安装是 Apache 模块还是 CGI 二进制。请参阅堆栈溢出问题What is thread safe or non-thread safe in PHP?。
【讨论】:
如何检查?当然它被 IIS 使用..但是我如何找出它是什么模块?那是我的问题……我并不是要问线程安全/非线程安全之间的区别。我需要知道安装的版本是否是线程安全的/不是 好的,我刚刚调查了一下,是的,有2 builds 可用;安全和不安全。根据此install guide for IIS7 建议进行非线程安全安装。如果“线程”这个词出现在任何地方,你能打开一个 phpinfo() 和 se 吗? 是的,phpinfo 里面有信息...刚刚找到...谢谢@Philiplip【参考方案7】:检查它的另一种方法是使用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
【讨论】:
以上是关于查找安装的 PHP 是线程安全的还是非线程安全的?的主要内容,如果未能解决你的问题,请参考以下文章