2011-04-27 125 views
58

如何確定安裝的PHP版本是線程安全的還是不安全的?查找安裝的PHP是線程安全的還是非線程安全的?

請注意,我不是問線程安全/非線程安全安裝之間的區別。我想知道當前安裝的是什麼。

+1

看到HTTP答案://計算器。com/questions/1623914 /什麼是線程安全的或非線程安全的在PHP中 – 2011-04-27 05:41:54

+0

@哈伊姆那不是我的問題哈伊姆。我看到了這個線程。我已經在這臺服務器上安裝了PHP。它與IIS一起工作。但是,我需要找出哪個安裝程序用於安裝此...線程安全設置/非theadsafe設置? – Josh 2011-04-27 05:45:53

回答

116

打開phpinfo()並搜索該行線程安全。對於線程安全版本,您應該找到啓用

正如Muhammad Gelbana在評論中規定的,你也可以使用:

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

最後,我發現它在phpinfo命令裏面..謝謝grunk ... – Josh 2011-04-27 07:46:04

+13

在Windows上:'php -i | find「主題「' On * nix:'php -i | grep Thread' – 2013-09-02 09:33:18

+4

注意自我:'php -i |找到「Architecture」來檢查它是x86還是x64 – checksum 2015-03-07 15:06:24

0

檢查您的安裝是Apache模塊還是CGI二進制。請參閱堆棧溢出問題What is thread safe or non-thread safe in PHP?

+0

如何檢查?當然它被IIS使用..但我怎麼找出它是什麼模塊?這是我的問題......我不是故意問一下線程安全/非線程安全的區別。我需要知道是否安裝的版本是線程安全的/不是 – Josh 2011-04-27 05:43:49

+0

好吧,我只是調查了一下,是的[2 builds](http://windows.php.net/download/)可用;安全和不安全。根據這個[IIS7的安裝指南](http://www.php.net/manual/en/install.windows.iis7.php),推薦使用非線程安全的安裝。你能打開一個phpinfo()和se如果'thread'這個詞在任何地方出現嗎? – Phliplip 2011-04-27 06:02:47

+0

是的,phpinfo有它的信息...只是發現它...謝謝@Philiplip – Josh 2011-04-27 07:56:26

3

創建一個新的PHP文件中插入該代碼它:

<?php 
phpinfo(); ?> 

然後運行這個頁面,你會發現所有的PHP信息。搜索你想要的術語,它會顯示它已啓用。

17

如果你喜歡使用命令行:

  • 的* nix:

    /path/to/php.exe -i | grep -i "Thread" 
    
  • 的Windows:

    php -i | findstr -i "thread" 
    

這應該給ÿ OU是這樣的:

Thread Safety => enabled 

Thread Safety => disabled 
+0

不是一個好主意,因爲服務器使用的PHP版本可能與操作系統(默認)拾取的版本不同。 – Buffalo 2017-08-02 07:18:40

2

從腳本:

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

我只是覺得它更容易看[版本]文件名爲PHP .dll文件中php的根文件夾。它的php [版本] .dll或php [版本] ts.dll(ts代表線程安全)。所以,如果您安裝了php7.0.10,請轉到具有該名稱的目錄,您將找到一個名爲php7ts.dll的文件。這是一個非常難過的發現,但它的作品!

0

然後有沒有記錄的ZEND_THREAD_SAFE常量,它似乎自PHP 4.3以來就存在。

<?php 

if (ZEND_THREAD_SAFE) { 
    echo 'Thread safe'; 
} else { 
    echo 'Not thread safe'; 
} 

https://3v4l.org/tALKX