查找安装的 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 -vphp --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 是线程安全的还是非线程安全的?的主要内容,如果未能解决你的问题,请参考以下文章

PHP中的线程安全或非线程安全是啥?

适用于 Windows 的 PHP 线程安全和非线程安全

(转)PHP线程安全与非线程安全的区别:如何选择用哪一个?

php 安装yaf扩展和yaf框架

PHP 安装版本选择

windows php线程安全和不安全,两个版本我也看不懂,记下来再说。