我正在尝试在Apache2服务器上启用线程安全,以便最终能够使用PHP pthreads模块(PHP多线程)。
到目前为止,我从带有选项的源代码(在COMMON_CONFIG
下)编译了PHP:
--enable-maintainer-zts
phpinfo说Thread Safety disabled
然后我用重新编译
--enable-maintainer-zts
--enable-roxen-zts
phpinfo说Thread Safety disabled
最后我尝试了:
--enable-maintainer-zts
--enable-roxen-zts
--with-tsrm-pthreads
phpinfo说Thread Safety disabled
作为最后一种情况,我仍然尝试使用pecl安装pthreads。在正确的CLI代表中移动pthreads.so
之后,PHP说:
~ # php -m
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/pthreads.so' - /usr/lib/php5/20121212/pthreads.so: undefined symbol: sapi_globals_id in Unknown on line 0
我做错了什么?我需要使用special从源代码编译Apache吗/配置选项?
非常感谢任何情报,谢谢!
通过从Apache.org和PHP.net下载源代码,一切都很顺利。然后使用正确的./configure
选项成功启用了Zend线程安全PHP端和Worker MPM Apache端。
如果您需要有关./configure
选项的信息,请发表评论。
注意:通过apt-get source
构建PHP和Apache包对我来说并不奏效。即使使用所需的配置选项编辑debian/rules
文件也是如此。软件包将安装,但不考虑--enable-maintainer-zts
和--with-mpm=Worker
。