Debian系统Apache2如何配置.ext后缀文件以PHP方式解析
实现方法
前置检查:是否需要安装额外软件包
- 如果你当前已经可以正常在Apache下访问.php文件、PHP代码能正常执行,不需要安装任何额外软件包。
- 如果还没安装Apache的PHP处理模块,先执行以下命令安装:
sudo apt update && sudo apt install libapache2-mod-php7.4
安装完成后先重启一次Apache:
sudo systemctl restart apache2
配置Apache将.ext后缀解析为PHP
你可以选择全局配置(对所有站点生效)或者单站点/目录配置两种方式,二选一即可。
方式1:全局配置(推荐)
- 编辑PHP7.4对应的Apache模块配置文件:
sudo nano /etc/apache2/mods-available/php7.4.conf
- 找到默认的文件匹配规则段,原始内容大概如下:
<FilesMatch ".+\.ph(ar|p|tml)$"> SetHandler application/x-httpd-php </FilesMatch>
- 修改正则匹配规则,加入.ext后缀支持,修改后为:
<FilesMatch ".+\.(ph(ar|p|tml)|ext)$"> SetHandler application/x-httpd-php </FilesMatch>
保存退出编辑器。
方式2:单站点/单目录配置
如果只想让指定站点或者目录下的.ext文件被解析,不需要改全局配置,可以把下面的配置段加到对应站点的VirtualHost配置块里,或者站点根目录的.htaccess文件中(注意用.htaccess需要提前把对应目录的AllowOverride设置为All):
<FilesMatch ".+\.ext$"> SetHandler application/x-httpd-php </FilesMatch>
生效配置并验证
- 先检查Apache配置是否有语法错误:
sudo apache2ctl configtest
如果输出Syntax OK就可以继续,要是有报错就回到上一步检查配置书写是否正确。
2. 重启Apache加载新配置:
sudo systemctl restart apache2
- 验证效果:在网站根目录新建一个
test.ext文件,写入内容<?php phpinfo();,通过浏览器访问该文件,如果正常显示PHP版本信息页面,说明配置生效;如果弹出下载或者显示源码,回到配置步骤检查规则是否书写正确。
注:上述配置针对默认的mod_php运行模式,如果你是手动配置过PHP-FPM模式运行PHP,需要在对应FPM代理的FilesMatch规则中加入.ext后缀匹配即可,逻辑一致。
内容的提问来源于stack exchange,提问作者Fun_Dan3
相关产品推荐
相关产品推荐

