windows 不执行 php 脚本,真正执行的是 php 解释器或集成环境;关闭 php 执行需按场景操作:终止进程、禁用 web 服务器模块、限制文件关联或 ntfs 权限、禁用 cli 入口。

Windows 本身不“执行 PHP 脚本”,真正执行 PHP 的是 PHP 解释器(php.exe)或集成环境(如 Apache/Nginx + PHP 模块、PhpStudy、XAMPP 等)。所以“关闭 PHP 脚本执行”实际是指:阻止 PHP 解释器运行、禁用 Web 服务器中的 PHP 处理模块,或限制特定目录下 PHP 文件被解析。不同场景对应不同方法。
一、停止 PHP 解释器进程(命令行方式)
如果你是通过 php script.php 在 CMD/PowerShell 中直接运行脚本,只需关闭当前终端窗口即可终止。若脚本在后台长期运行(如用 start /min php server.php),可用以下命令强制结束:
-
taskkill /F /IM php.exe /T—— 结束所有 php.exe 进程及其子进程 -
taskkill /F /IM php-cgi.exe /T—— 若使用 CGI 模式 - 如只关某个脚本,可先用
tasklist | findstr php查 PID,再用taskkill /PID XXXX /F
二、禁用 Web 服务器的 PHP 支持
这是最常见需求——让网站目录下的 .php 文件不再被解析执行,而是当作普通文本下载或返回 403/404。
-
Apache(含宝塔 Windows 版):在虚拟主机或目录配置中加入:
<directory><br><filesmatch><br> Require all denied<br></filesmatch><br></directory>
或旧版 Apache 2.2 用Order deny,allow+Deny from all -
IIS:打开 IIS 管理器 → 选择站点或目录 → “处理程序映射” → 找到
PHP_via_FastCGI或类似条目 → 右键“删除”或“编辑”并取消勾选该路径 -
Nginx:注释或删除
location ~ \.php$ { ... }块,并重载配置(nginx -s reload)
三、从系统级阻止 PHP 文件运行(安全加固)
适用于禁止用户双击运行 .php 文件,或防止误执行恶意脚本:
- 修改文件关联:运行
assoc .php=(清空关联),或ftype phpfile=(清空执行命令) - 重命名或移除
php.exe:例如将C:\php\php.exe改为php-disabled.exe - 设置 NTFS 权限:右键 PHP 安装目录 → 属性 → 安全 → 编辑 → 拒绝当前用户对
php.exe的“读取和执行”权限
四、禁用 PHP CLI 执行策略(防脚本自动运行)
若你用 PowerShell/CMD 运行 .ps1 或 .bat 调用 PHP,但想临时阻断,可:
- 检查是否启用了全局 PHP 自启动(如 Windows 服务、计划任务、开机启动项),用
services.msc或taskschd.msc查找并禁用 - 在批处理中主动退出:在 .bat 开头加
echo PHP execution is disabled. & pause & exit /b 1 - 不推荐修改系统级执行策略来“封 PHP”,因会影响其他合法用途;应聚焦于具体入口点控制
关键提醒:家庭版 Windows 无法通过组策略完全禁用更新服务,同理,彻底“关闭 PHP 执行”也不现实——只要解释器存在且有权限,就可能被调用。真正有效的做法是按需切断执行链:删入口、关服务、锁权限、改配置。操作前建议备份注册表或配置文件。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











