我正在尝试在我的 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 作为最后一种情况。移动后
pthreads.so
在正确的 CLI 代表中,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
我究竟做错了什么 ?我是否需要使用特殊的 ./configure 选项从源代码编译 Apache?
任何英特尔都非常感谢,谢谢!
最佳答案
从 Apache.org 和 PHP.net 下载源代码一切顺利。然后使用正确的./configure
options 成功启用 Zend Thread Safety PHP 端和 Worker MPM Apache 端。
如果您需要关于 ./configure
的信息选项请评论。
注意:通过 apt-get source
构建 PHP 和 Apache 包对我不起作用。即使通过编辑 debian/rules
具有所需配置选项的文件。软件包将安装但不考虑 --enable-maintainer-zts
和 --with-mpm=Worker
.
关于php - 如何在 Apache2 服务器上启用线程安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26471775/