如何在Apache2服务器上启用线程安全


How to enable Thread Safety on Apache2 server

我正在尝试在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