apahce 的 worker.c 模式

本文介绍从Apache Prefork模式切换到Worker模式过程中遇到的问题及解决方法,特别是如何解决因PHP非线程安全导致的启动失败问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于最近公司开发新项目,要求多线程并发,不得已只能配置apache从prefork模式转向worker模式。

原本以为就是换换运行文件,把httpd.work改名为httpd 替换掉默认文件就行了。(默认的httpd是httpd.prefork)


但突然就发现系统不支持mysql了,后来发现,只要phpinfo()里查到,预编译命令里加了--without-XXX的组合,即不接受动态加载。

所以不得已只能重新手动编译PHP,但是apahce启动的时候出现错误: 

 Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. Pre-configuration failed Action 'configtest' failed.


这个错误提示是,apache是多线程模式(我已经用httpd.work替换了默认的httpd),而php是非线程模式必须重新编译。

后来发现预编译的时候需要加入预编译项   --enable-maintainer-zts ,不能加入 --with-openssl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值