不能,直接在浏览器里双击访问PHP文件(file://协议)无法执行,必须通过http://localhost/路径由WAMP内置Apache解析执行。

直接在浏览器里访问 PHP 文件就能执行
WAMP 默认把 www 目录(通常是 C:\wamp64\www)设为 Web 根目录,只要把 PHP 脚本放进去,用浏览器打开对应 URL 就会由 Apache 解析执行——不是双击文件,也不是命令行运行。
常见错误现象:空白页、直接显示 PHP 源码、404 Not Found。这通常说明:文件没放对位置、Apache 没启动、或者后缀不是 .php。
- 确认 WAMP 系统托盘图标是绿色(代表 Apache + MySQL 正常运行)
- 把脚本保存为
test.php,放到C:\wamp64\www\下 - 浏览器访问
http://localhost/test.php,而不是双击打开file:///... - 确保文件以
.php结尾,且首行有<?php开头(不能是<?,除非启用了短标签——不建议)
命令行执行 PHP 脚本需要调用 php.exe
WAMP 自带 PHP 解释器,路径通常是 C:\wamp64\bin\php\php8.1.12\php.exe(版本号随安装变化),它和 Web 执行是两套机制:Web 由 Apache 的 PHP 模块处理,命令行靠独立的 php.exe。
容易踩的坑:php: command not found 或 Could not open input file,本质是环境变量没配或路径写错。
立即学习“PHP免费学习笔记(深入)”;
- 推荐方式:打开命令提示符,cd 到脚本所在目录,运行
C:\wamp64\bin\php\php8.1.12\php.exe test.php - 如果想全局用
php命令,需手动把 PHP 目录加到系统PATH(比如C:\wamp64\bin\php\php8.1.12) - 注意:命令行默认不加载
php.ini中的某些扩展(如mysqli),可通过php -m查看已启用模块
PHP 脚本里调用 exec() 无法执行外部命令?检查 Apache 权限和配置
Web 环境下用 exec()、shell_exec() 运行系统命令时失败,不是代码问题,而是 Apache 进程权限限制或 PHP 配置屏蔽了这些函数。
典型表现:exec('dir') 返回空数组,shell_exec() 返回 null,日志里可能有 Warning: exec() has been disabled。
- 打开
C:\wamp64\bin\php\php8.1.12\php.ini,搜索disable_functions,确认没禁用exec、shell_exec、system - 重启 Apache(右键托盘图标 → Restart All Services)
- Windows 上 Apache 默认以
LocalSystem身份运行,但部分命令(如访问网络驱动器、调用 GUI 程序)仍会被拦截——改用proc_open()并指定工作目录更可靠 - 调试时先用
echo getcwd();确认当前工作路径,避免因相对路径导致命令找不到文件
输出中文乱码?优先检查 PHP 文件编码和 HTTP 头
WAMP 默认用 ANSI(Windows-1252)编码保存文件,而 PHP 脚本含中文时,若没声明字符集,浏览器很可能解析成乱码——这不是数据库或 HTML 的锅,是源头编码不匹配。
关键点:PHP 文件本身必须是 UTF-8 无 BOM 编码,且输出前未被其他 header 干扰。
- 用 VS Code / Notepad++ 把 PHP 文件另存为
UTF-8 无 BOM格式 - 在
<?php后第一行加header('Content-Type: text/html; charset=utf-8');(注意必须在任何输出之前) - 不要依赖
<meta charset="utf-8">补救——HTTP header 优先级高于 meta - 如果用了
echo输出 JSON,记得加header('Content-Type: application/json; charset=utf-8');
php.ini 都可能读取不同副本。



















