由於最近公司開發新項目,要求多線程併發,不得已只能配置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