sra*_*vis 12 server apache2 14.04
我已将 FastCGI 和 PHP5-FPM 配置为在 ubuntu 上工作,运行良好。
但是我安装了“apache2 worker mpm”模块并想配置和替换apache2中默认的“prefork mpm”。
我发现的所有内容都是在 CentOS 中,/etc/sysconfig/httpd只需HTTPD=/usr/sbin/httpd.worker将“worker mpm”启用即可。
我们如何在 Ubuntu 中启用“worker mpm”?
此外,当我列出 apache 的已编译模块时,"/usr/sbin/apachectl -l"它不会列出"prefork.c"所谓的列表,因为我们默认使用它。但是当我这样做时,"/usr/sbin/apache2 -V | grep MPM"它显示“Server MPM:prefork”,有人可以解释一下吗?
$ /usr/sbin/apache2 -V | grep MPM
Server MPM: prefork
Run Code Online (Sandbox Code Playgroud)
phpinfo();
Server API : FPM/FastCGI
Run Code Online (Sandbox Code Playgroud)
sra*_*vis 31
经过一段时间的工作,我自己做了。您可以找到以下步骤。
检查当前正在运行的 MPM apache:
apachectl -V | grep -i mpm
Result:
Server MPM: prefork
Run Code Online (Sandbox Code Playgroud)
列出可用的 MPM 模块(确保列出 mpm_worker)
ls /etc/apache2/mods-available/mpm*
Result:
/etc/apache2/mods-available/mpm_event.conf /etc/apache2/mods-available/mpm_prefork.conf /etc/apache2/mods-available/mpm_worker.conf
/etc/apache2/mods-available/mpm_event.load /etc/apache2/mods-available/mpm_prefork.load /etc/apache2/mods-available/mpm_worker.load
Run Code Online (Sandbox Code Playgroud)
列出启用的 MPM 模块(如果 mpm_worker 未启用,我们应该启用它并禁用 mpm_prefork 模块)
ls -l /etc/apache2/mods-enabled/mpm*
Result:
/etc/apache2/mods-enabled/mpm_prefork.conf -> ../mods-available/mpm_prefork.conf
/etc/apache2/mods-enabled/mpm_prefork.load -> ../mods-available/mpm_prefork.load
Run Code Online (Sandbox Code Playgroud)
禁用 MPM_PREFORK 模块
a2dismod mpm_prefork
Run Code Online (Sandbox Code Playgroud)
启用 MPM_WORKER 模块
a2enmod mpm_worker
Run Code Online (Sandbox Code Playgroud)
检查 Apache 是否在 MPM WORKER 上运行
apachectl -V | grep -i mpm
Result:
Server MPM: worker
Run Code Online (Sandbox Code Playgroud)
如果在执行这些命令后出现此错误:
Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP
Run Code Online (Sandbox Code Playgroud)
尝试删除 libapache2 包:
apt-get remove libapache2-mod-php5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
69177 次 |
| 最近记录: |