参考 :
http://www.ehow.com/how_12021626_activate-worker-mpm-apache2-ubuntu.html
背景: apache2,php5默认安装的时候都是使用的 mpm_prefork 模式, 我们想要将其调整为mpm_worker模式,问题来了,php5与mpm_worker不兼容的,如何处理?
ubuntu 14.04 apache2.4.x php5.x.x
1. 安全先备份 php.ini
写道
cd /etc/php5/cgi/
sudo cp php.ini php.ini.back
sudo cp php.ini php.ini.back
2. 安装 Apache2 worker MPM
写道
sudo apt-get install apache2-mpm-worker php5-cgi
** 可能会提示 the "apache2-mpm-prefork" and "libapache2-mod-php5" are removed.
** 可能会提示 the "apache2-mpm-prefork" and "libapache2-mod-php5" are removed.
3. 启用cgi和cgid
写道
sudo a2enmod cgi
sudo a2enmod cgid
sudo a2enmod cgid
4. 激活 mod_actions
写道
cd /etc/apache2/mods-enabled
sudo ln -sf ../mods-available/actions.load
sudo ln -sf ../mods-available/actions.conf
sudo ln -sf ../mods-available/actions.load
sudo ln -sf ../mods-available/actions.conf
5. 编辑 actions.conf
写道
<IfModule mod_actions.c>
Action application/x-httpd-php /cgi-bin/php5
</IfModule>
Action application/x-httpd-php /cgi-bin/php5
</IfModule>
6. 编辑 apache2.conf
写道
sudo vim /etc/apache2/apache2.conf
<IfModule mpm_worker_module> StartServers 10 ServerLimit 1000 MaxClients 1000 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule>
7. 检查语法都对了没有
写道
/usr/sbin/apache2ctl -t
** 成功会有 "Syntax OK" 字样
** 成功会有 "Syntax OK" 字样
8. 重启 apache
写道
sudo /etc/init.d/apache2 restart
** 我在操作的时候 (ubuntu server 14.04 64bit时 出现 worker还原成 prefork的情况 )
写道
sudo a2dismod mpm_prefork
sudo a2enmod mpm_worker
sudo a2enmod mpm_worker
重新启用mpm_worker即可
相关推荐
2. **事件模型**:与早期版本的多进程(MPM_prefork)和多线程(MPM_worker)模型相比,2.4版本提供了MPM_event模型,提高了高并发场景下的性能。 3. **更好的内存管理**:优化了内存分配策略,减少了内存碎片,...
3. **性能提升**:Apache 2.4.12通过改进的工作模型(如Event MPM和Worker MPM)提高了并发处理能力,减少了响应时间,尤其在高流量网站中表现优异。此外,此版本还加强了对HTTP/2协议的支持,进一步提升了性能。 4...
4. **性能提升**:Apache2.2通过改进多线程模型(如使用`mpm_worker`或`mpm_event`模块)和内存管理,提升了服务器处理高并发请求的能力。 5. **错误日志和访问日志**:Apache2.2支持自定义日志格式,可以更好地...
例如,MPM(多进程模块)的改进使得Apache能够更好地处理高并发请求,提供了Event和Worker模式,以适应不同类型的负载。此外,2.4版本还引入了新的配置语法,提高了配置文件的可读性和易维护性。 在提供的压缩包中...
worker.list=worker1,worker2 worker.worker1.type=ajp13 worker.worker1.host=168.1.1.119 worker.worker1.port=8009 # 定义worker2 worker.worker2.type=ajp13 worker.worker2.host=168.1.1.120 worker.worker2....
例如,使用MPM(Multi-Processing Module)如prefork或worker,调整`MaxKeepAliveRequests`和`KeepAliveTimeout`参数,以及启用GZIP压缩等。 九、故障排查 当遇到问题时,Apache2的错误日志是排查故障的重要资源。...
Apache 提供了两种主要的 MPM:prefork 和 worker,它们各自有不同的工作原理和适用场景。 **prefork 模式** prefork 模式是一种非线程的、预派生的服务器模型,适用于那些没有线程安全库或需要避免线程兼容性问题...
对于Apache 2.0版本,还需要在worker MPM中调整MaxClients。同时,确保DirectoryIndex包含了index.php,以便服务器优先尝试加载PHP索引文件。最后,添加`AddType application/x-httpd-php .php`指令,使Apache能够...
2. **事件模型**:除了传统的多进程(MPM_prefork)和多线程(MPM_worker)模型,Apache 2.4引入了MPM_event模型,它结合了多线程的高效和单线程的低延迟,尤其适合处理大量的短连接请求。 3. **改进的访问控制**:...
5. **多线程支持**:虽然Apache传统上是以进程模型工作,但在2.2.x系列中,Apache引入了多线程的支持,即`mpm_worker`模块,结合了进程和线程的优点,提高了并发处理能力。 6. **错误日志和访问日志**:Apache能够...
3. **配置Apache**:编辑Apache的配置文件httpd.conf,添加PHP模块(mod_php)的支持,通常是`LoadModule php5_module "path/to/php/php5apache2_2.dll"`。 4. **配置PHP**:修改php.ini,设置PHP的相关配置,如...
例如,如果站点不使用CGI,可以禁用`mod_cgi`。 3. **使用MPM(多进程模块)**:如`prefork`或`worker`,根据服务器硬件和负载情况选择最适合的模型。 4. **LimitRequestFields和LimitRequestFieldsize**:限制...
4. **Apache配置**:编辑Apache的配置文件httpd.conf,添加对PHP的支持,如`LoadModule php5_module modules/libphp5.so`和`AddType application/x-httpd-php .php`。 5. **测试**:重启Apache服务,通过访问`...
- 运行配置命令,例如:`./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most --with-mpm=worker` - 编译和安装:`make`,然后`make install`。 - 配置项解释: - `--prefix`:指定...
Apache2还支持MPM(多进程模块),如prefork和worker,它们分别基于多进程和多线程模型。mod_proxy可以实现负载均衡和反向代理,mod_rewrite则能实现复杂的URL路由规则。 总的来说,Apache2中文手册提供了全面的...
- **Apache**:安装过程中需要注意启用MPM模式,以提升处理并发请求的能力。 - **PHP**:安装完成后需配置加速器eAccelerator,以及PHP的memcache扩展,以增强PHP应用性能。 #### 七、安装Squid - **Squid**:安装...
2. 解压缩源码,进入解压后的目录,并运行`./configure --prefix=/usr/local/apache2 --enable-so --enable-mods-shared=most --with-mpm=worker`来配置安装路径、启用动态加载模块和选择多路处理模块。 3. 执行`...
6. **支持多线程**:Apache2.2引入了多线程模式(MPM,Multi-Processing Module),如prefork和worker MPM,以适应不同的服务器环境和负载需求。 【与PHP5.2.8和MySQL5.5.27的集成】:Apache2.2.29通常与PHP和MySQL...
3. **MPM(多进程模块)改进**:Apache 2.4 引入了新的MPM(如worker和event),与之前的prefork MPM相比,这些改进减少了内存占用并提高了处理能力。 4. **访问控制增强**:Apache 2.4.4 提供了更精细的访问控制...