在 phpEnv 集成环境中,Apache 已经随环境一并安装,我们可以通过修改其配置来使用 AddOutputFilterByType 指令,对特定的响应类型启用压缩输出,从而减少传输体积、加快页面加载。

一、确认并启用 deflate 模块
AddOutputFilterByType 指令依赖 mod_deflate 模块。在 phpEnv 中,Apache 的配置文件通常位于软件目录下的 phpEnvserverapacheconfhttpd.conf。打开该文件,查找如下内容并确保前面没有 # 注释符:
LoadModule deflate_module modules/mod_deflate.so
如果行首有 #,删掉它并保存,然后重启 phpEnv 中的 Apache 服务。
二、使用 AddOutputFilterByType 压缩指定类型
我们可以在 httpd.conf 末尾,或虚拟主机配置块中添加以下指令,针对文本类资源启用 gzip 压缩:
<IfModule mod_deflate.c>
# 对 html、css、js 等类型启用压缩
AddOutputFilterByType DEFLATE text/html text/plain text/css
AddOutputFilterByType DEFLATE application/javascript application/json
AddOutputFilterByType DEFLATE image/svg+xml
</IfModule>
上述配置表示当响应的 Content-Type 匹配这些类型时,Apache 会自动通过 DEFLATE 过滤器压缩内容。
三、在虚拟主机中配置示例
若你使用 phpEnv 的站点管理功能,也可在对应虚拟主机配置里写入规则:
<VirtualHost *:80>
DocumentRoot "C:/phpEnv/www/demo"
ServerName demo.local
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/css application/javascript
</IfModule>
</VirtualHost>
四、验证压缩是否生效
配置完成后重启 Apache,在命令行使用 curl 检查响应头:
curl -I -H "Accept-Encoding: gzip" http://demo.local/style.css
若返回头中包含 Content-Encoding: gzip,说明指定类型的压缩已正常工作。
常见问题
- 修改配置后未重启 Apache,导致规则不生效。
- 图片类资源已压缩(如 jpg、png),无需再用 DEFLATE 处理,反而浪费 CPU。
- phpEnv 中若使用 PHP 内置压缩,需避免与 Apache 压缩冲突。
通过 phpEnv 下的 Apache 配置 AddOutputFilterByType,你可以灵活控制哪些类型文件被压缩,在本地开发时获得更接近生产环境的性能表现。
phpEnvApacheAddOutputFilterByType修改时间:2026-07-26 03:48:16