2016-06-28 54 views
0

我试图安装PHP的最新pthreads扩展3.1.6 64位。PHP Pthreads最新版本3.1.6(64位)没有在Apache上安装

按照并行线程的作者建议,在http://github.com/krakjoe/pthreads

我已经把两个dll文件到所需的位置。

添加pthreadVC2.dll(包含在Windows版本)到同一个目录中的php.exe如。 C:\ Apache24 \ php 将php_pthreads.dll添加到PHP扩展文件夹例如。 C:\ Apache的\ PHP \分机

而且同样适用于Windows \ system32目录中

而且还增加了在的LoadFile [阿帕奇Http.confd] [1]

而且我已经添加添加扩展我的PHP的.ini

php.ini

但是Apache将不会启动,当我检查了Apache的error.log,我有以下

[星期二11年6月28日:38:31.184618 2016] [SSL:警告] [PID 8640:TID 352] AH01909:本地主机:443:0服务器证书不包括ID 相匹配的服务器名称

[Tue Jun 28 11:38:31.215819 2016] [核心:warn] [pid 8640:tid 352] AH00098:pid文件 C:/Apache24/logs/httpd.pid被覆盖 - 以前 不正常关机Apache运行?

我已经将php_pthreads.dll扩展名移到了扩展名列表的顶部,但是没有喜悦。它只是不会从这个pthreads dll开始。但是,如果我评论回来;扩展= p​​hp_pthreads.dll,我的Apache将重新启动,但不是与此pthreads DLL。

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

我的系统设置 微软Windows 7 64位的小信息,与Apache 2.4.x的VCl 4

PHP信息

  • 系统的Windows NT NG10676 6。1个构建7601

  • (Windows 7企业版Service Pack 1)AMD64

  • 生产日期2016年6月21日15时08分19秒

  • 编译MSVC14(VISUAL C++ 2015年)

  • 架构x64

  • 已启用线程安全

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

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

+0

马库斯有我问了一个错误的问题?你降级了我的问题。 –

+0

马库斯我明白了,你提高了我的文章的可读性,谢谢。我有点新来堆栈溢出 - 将来会记住这个 –

+0

我投了这个问题。这不是一个很好的问题,但它将为未来的人们节省大量的时间。回答:在SAPI中没有pthread,太伤心了.... –

回答

2

Quote from README

并行线程V3被限制在CLI只经营:我花了很多年时间试图解释在Web服务器的线程只是没有任何意义,经过1111个到提交我并行线程有意识到,我的建议没有得到理解。

所以,我正在推广这个建议,以坚实而快速的事实:除了CLI之外,您无法安全且合理地使用pthread。

感谢收听;)

Quote from blog explaining change from v2

...

EJB的明确禁止程序员通过规范创建线程,和现代的Java甚至没有1 :1个模型。显然,这主要是因为环境可能会迁移(在一组服务器内移动),因此难以想象在其管理池之外移动线程。它比禁止创建线程更进一步,它禁止使用同步原语,因为如果在保留锁的同时移动节点 - 所有地狱崩溃。

在Java中,通常不鼓励在Servlet中手动创建线程,因为我对pthreads的所有理由都感到沮丧。

虽然不是每个环境都会真正禁止它,但它的运行深度可以;每个人都同意,在Web响应环境中创建真实(1:1)线程是一个坏主意。

...

+0

非常感谢您的回答。 –