双击PHP文件打不开是因为PHP是服务端脚本,必须经Web服务器(如Apache/Nginx)或PHP内置服务器解析执行;直接双击走file://协议,PHP解释器未介入,浏览器仅显示源码或报错。

直接回答:别用双击打开,必须走 Web 服务器(如 Apache/Nginx)或 PHP 内置服务器,否则 php 代码不会执行,只显示源码或报错。
为什么双击 php 文件打不开?
浏览器直接打开 file:// 协议下的 .php 文件时,PHP 解释器根本没介入——它只是把文件当纯文本读取,所以你会看到 <?php echo 'hello'; ?> 原样输出,甚至被当成 HTML 标签过滤掉。
PHP 是服务端脚本,必须由 Web 服务器接收请求、调用 php 解释器处理、再返回 HTML 给浏览器。
Windows 下用 XAMPP 快速跑起来
这是新手最稳的路径,5 分钟内可验证成功:
- 下载 XAMPP(
https://www.apachefriends.org/),选PHP 8.2+版本,安装路径避开中文和空格(如D:\xampp) - 启动 XAMPP Control Panel,点
Apache行的Start(MySQL 不开也行,除非项目要连库) - 把你的
index.php放进D:\xampp\htdocs\(或子目录,如htdocs\myapp\index.php) - 浏览器访问
http://localhost/或http://localhost/myapp/——不是双击文件,是输网址 - 若看到空白页或 403 错误,检查 Apache 是否真在运行(状态栏绿色)、端口是否被 Skype/迅雷占用了(可在 XAMPP 面板点
Config → Apache (httpd.conf)改Listen 8080,然后访问http://localhost:8080)
Mac/Linux 用 PHP 内置服务器(免装 Apache)
适合单文件调试或轻量测试,不用配环境:
立即学习“PHP免费学习笔记(深入)”;
- 确保终端能运行
php -v(Homebrew 安装的 PHP 默认已加进PATH;若报错,先执行brew install php) - 进入项目目录,运行:
php -S localhost:8000
(PHP 5.4+ 自带,无需额外扩展) - 浏览器打开
http://localhost:8000,自动找当前目录下的index.php或index.html - 注意:这个服务器不解析
.htaccess,不支持重写规则;路由类项目(如 Laravel)需额外加路由器文件,例如:php -S localhost:8000 router.php
,其中router.php负责分发请求
常见错误和绕不开的坑
很多人卡在这几步:
Parse error: syntax error, unexpected ':说明 PHP 没生效,服务器把 <code>.php当静态文件返回了——确认 Apache 的AddHandler application/x-httpd-php .php已写进httpd.conf,且重启了服务-
Warning: Unknown: failed to open stream: No such file:路径写错,比如require 'config.php'但文件不在当前工作目录;用__DIR__显式拼路径更可靠:require __DIR__ . '/config.php';
- 修改了
php.ini没生效:XAMPP 的php.ini在D:\xampp\php\php.ini,不是apache\bin\下那个;改完必须重启 Apache,且用phpinfo()页面确认“Loaded Configuration File”指向的是你改的那个文件 - 中文乱码或警告“headers already sent”:别在
php标签前留空行或 BOM 字符,用 VS Code 打开文件,右下角确认编码是UTF-8 without BOM
真正的麻烦往往不在“怎么装”,而在“改了配置却没生效”——每次调整后,务必通过 phpinfo() 页面核对实际加载的配置路径和启用的扩展。



















