PHP Pthreads最新版本3.1.6(64位)没有安装在Apache上


PHP Pthreads latest version 3.1.6 (64bit) not installing on Apache

我正在尝试为PHP安装最新的pthreads扩展3.1.6 64位

根据pthreads的作者建议,在http://github.com/krakjoe/pthreads

我已经把两个dll放到了指定的位置。

将pthreadVC2.dll(包含在Windows版本中)添加到与php.exe相同的目录中。C: ' Apache24 ' php将php_pthreads.dll添加到PHP扩展文件夹中。C: ' Apache ' php ' ext

和Windows'system32目录

并在[Apache http .conf][1]中添加LoadFile

我在php.ini

中添加了扩展名

. ini

但是Apache不会启动,当我检查Apache error.log时,我有下面的

[Tue Jun 28 11:38:31.184618 2016] [ssl:warn] [pid 8640:tid 352]告警解释AH01909: localhost:443:0服务端证书不包含ID匹配服务器名

[Tue Jun 28 11:38:31.215819 2016][core:warn] [pid 8640:tid 352] AH00098: pid文件C:/httpd/Apache24/日志。pid覆盖——先前的不干净关机Apache运行?

我已经移动了php_pthreads.dll扩展到扩展列表的顶部和底部,但没有快乐。它只是不会从这个pthreads dll开始。但是如果我回复;extension=php_pthreads.dll,我的Apache将重新启动,但不是使用这个pthreads.dll。

这是一个bug还是我做错了什么?

我的系统设置的小信息windows 7 64位,安装Apache 2.4。x VC14

PHP信息

  • System Windows NT NG10676 6.1 build 7601

  • (Windows 7企业版服务包1)AMD64

  • Build Date Jun 21 2016 15:08:19

  • 编译器MSVC14 (Visual c++ 2015)

  • 建筑x64

  • 启用线程安全

请注意,我在我的系统10,11,14上安装了所有的VC编译器,这些编译器都是64位的,并且也安装了32位,以防万一。

请注意,我已经尝试了所有以前关于pthreads安装的线程,它们对我的安装没有帮助。我已经尝试了每一个谷歌页面,但他们只是不工作,任何帮助将不胜感激。如果PHP pthreads设计器可以说明这个版本。

引用自README:

pthreads v3仅限于在CLI中操作:我花了很多年的时间试图解释web服务器中的线程只是没有意义,在1,111提交到pthreads之后,我已经意识到,我的建议被忽视了。

所以我要把这个建议变成一个事实:除了CLI,你不能在任何地方安全、合理地使用pthreads。

谢谢你的聆听;)

引用自博客解释v2的变化

EJB明确禁止程序员按照规范创建线程,现代Java甚至没有1:1的模型。显然,这主要是因为环境可能会迁移(在服务器集群内移动),很难想象将线程移到托管池之外。它不仅禁止创建线程,还禁止使用同步原语,因为如果在保留锁的情况下移动了节点怎么办?——一切都乱套了。

在Java中,通常不鼓励在servlet中手动创建线程,出于同样的原因,我不鼓励在pthreads中手动创建线程。

虽然不是每个环境都会禁止它,但它会尽可能地深入;每个人都同意在web响应上下文中创建真正的(1:1)线程是一个坏主意。