前言
Ubuntu默认安装的apache的mpm是prefork,也就是说是多进程模式。这是比较稳定的模式。但是由于每个并发连接需要使用一个完整的进程,内存消耗较大,性能上也较差。Apache有很多mpm,我们可以使用worker模式,这是多进程/多线程模式。允许一个进程启用多个线程来接受并发连接,这大大提高了响应速度和降低了内存使用。
对于php而言,默认的prefork模式使用的是mod_php,这在多进程环境下是性能较好的方式。但是对于多线程模式而言,mod_php就有问题了,它不支持多线程环境。因此对于我们要使用的mpm-worker而言,需要使用mod_fcgid来访问php-cgi,这样就可以使用php了。
具体操作如下:
1. 安装apache-mpm-worker和php-cgi
sudo apt-get install apache2-mpm-worker libapache2-mod-fcgid php5-cgi php5-cli
2. 修改fcgid配置文件以映射php
sudo vi /etc/apache2/mods-available/fcgid.conf
添加:
AddHandler fcgid-script .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
FCGIWrapper /usr/lib/cgi-bin/php5 .php
3. 启用 fcgid 模块
sudo a2enmod fcgid
4. 在相应的站点启用fcgid
修改站点配置文件,在<Directory /var/www>中的Options选项后,添加+ExecCGI。如:
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews +ExecCGI
AllowOverride None
Order allow,deny
allow from all
</Directory>
Options Indexes FollowSymLinks MultiViews +ExecCGI
AllowOverride None
Order allow,deny
allow from all
</Directory>
5. 重新加载apache配置文件
1 | sudo service apache2 force-reload |
(如果没有service命令,可以 sudo apt-get install service 来安装它。)
6. 测试 php 已经可以使用
在 /var/www/ 下建立一个phpinfo.php文件,其内写入
<?php phpinfo(); ?>
然后打开浏览器访问这个/phpinfo.php就可以知道是否已经可以使用 php 了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构