我在网络服务器上使用 php5.5。现在我想使用线程。这是我的 php 配置:http://dd19010.kasserver.com/infophp.php55
实现此代码后.....
<?php
class AsyncOperation extends Thread
{
public function __construct($threadId)
{
$this->threadId = $threadId;
}
public function run()
{
printf("T %s: Sleeping 3sec'n", $this->threadId);
sleep(3);
printf("T %s: Hello World'n", $this->threadId);
}
}
$start = microtime(true);
for ($i = 1; $i <= 5; $i++) {
$t[$i] = new AsyncOperation($i);
$t[$i]->start();
}
echo microtime(true) - $start . "'n";
echo "end'n";
?>
。问题是这个错误:致命错误:找不到类"线程"。我是否必须包含一些include_once或类似的东西才能使其正常工作?我必须做什么??
我遇到了这个问题并设法解决了它。
首先,考虑 PHP 的 VC 版本和扩展的 VC 版本。在我的版本中,我将扩展pthreads.dll
与 VC14 版本附加 http://windows.php.net/downloads/pecl/releases/pthreads/但我的 PHP VC 版本是 VC11。寻找与 PHP 的 VC 版本匹配的较低版本。
其次,也许您错过了PHP页面上的步骤#3。它指出您需要将pthreadVC2.dll
复制到其他文件夹。这是完整的说明。
通过使用 phpinfo() 找出您的"PHP 扩展构建"版本是什么。您可以使用这个 - http://localhost/?phpinfo=1
下载与您的 php 版本(32 位或 64 位)和 php 扩展构建(当前使用的 VC11)匹配的 pthreads。使用此链接进行下载 - http://windows.php.net/downloads/pecl/releases/pthreads/
提取拉链 - 将php_pthreads.dll移动到 'bin''php''ext''' 目录。 将 pthreadVC2.dll 移动到 'bin''php''' 目录。 将 pthreadVC2.dll 移动到 'bin''apache''bin' 目录。 将 pthreadVC2.dll 移动到 'C:''windows''system32' 目录。
打开 php''php.ini 并添加 扩展名=php_pthreads.dll
参考: https://secure.php.net/manual/en/pthreads.installation.php
1) 创建一个 php 文件
phpinfo();--> 运行
示例:信息
PHP 版本: 5.6.31
编译器:MSVC11(Visual C++ 2012)
架构:x64
2)转到网站:
http://windows.php.net/downloads/pecl/releases/pthreads/例 2.0.9 文件
编译器:VC11
架构:x64
php_pthreads-2.0.9-5.6-ts-vc11-x64.zip下载。
3)提取php_pthreads.dll和 pthreadVC2.dll。
wamp''bin''php''php5.6.31''ext'' --> copy php_pthreads.dll
wamp''bin''php''php5.6.31'' --> copy pthreadVC2.dll
wamp''bin''apache''apache2.4.27''bin --> copy pthreadVC2.dll
4)现在编辑 php.ini
wamp''bin''apache''apache2.4.27''bin''php.ini'' --> Add extension=php_pthreads.dll
wamp''bin''php''php5.6.31''php.ini'' --> 添加扩展名=php_pthreads.dll
5)现在重新启动Wamp
你的phpinfo显示你已经禁用了线程安全的php。您需要安装一个线程安全的 php 版本,以便使用 pthreads。不过,这可能会也可能不会解决您当前的问题。
您可能还需要将pthreadsVC2.dll
复制到 Web 服务的 bin 目录中。
/etc/php55/fpm/
您正在寻找包含 php.ini 的文件夹。
确保 php.ini 文件添加了以下行:
extension=php_pthreads.dll
我正在使用WAMP,发现pthreadVC2.dll应该转到Apache文件夹:
C:''wamp''bin''apache''apache2.4.9''bin
与用 README.md 编写的内容不同,您不需要将其放在PHP文件夹中,但php_pthreads.dll仍应转到:
在此C:''wamp''bin''php''php5.5.12''ext
之后,在此文件中搜索:
C:''wamp''bin''apache''apache2.4.9''bin''php.ini
对于;extension=php_pgsql.dll
,并在它后面的新行中添加extension=php_pthreads.dll
(是的,它是 Apache 文件夹中的 bin''php.ini,而不是 PHP 文件夹中的那个)。
退出 WAMP 并重新启动它。现在,您应该在 WAMP 菜单中的 PHP> PHP 扩展下看到新的 php_pthreads 扩展。
我认为您需要在 php.ini 文件中包含扩展名,因为我在配置中看不到它。您可以看到每个库都有自己的部分,例如MySQL,但是线程没有这样的部分。我从来没有使用过线程,但这应该是一个很好的起点。
默认情况下,线程不是在PHP中实现的,并且根据您的phpinfo,它似乎没有被加载。查看有关如何设置/配置模块的 PHP 手册。