在 windows 上,可以把独立安装的 php.exe 加入用户 path,在项目根目录运行 php -s 127.0.0.1:8000 -t public 来启动本地 php 项目。先用 php -v 确认终端能找到 php,再准备 public/index.php,最后访问 127.0.0.1:8000 验证页面。
PowerShell 找不到 PHP 或命中了旧版本怎么办
先从 PHP 官方 Windows 下载页获取适合系统架构的 PHP ZIP,解压到固定目录。将 php.exe 所在目录加到用户 Path,重新打开 PowerShell,再用 Get-Command php 和 php -v 确认命中的文件及版本。

Get-Command php php -v

如果命中的 php.exe 来自另一个目录,可以运行 Get-Command php -All 列出匹配项。调整 Path 后重新打开终端,或者先用完整路径运行目标 php.exe。

为什么把入口文件放在 public 目录
在项目根目录建立 public 文件夹,在其中新建 index.php。文件内容写成 <?php echo "PHP OK";。将 public 设为文档根目录,可以将项目根目录中的配置文件留在公开目录之外。
立即学习“PHP免费学习笔记(深入)”;
- 进入项目根目录:cd D:\path\to\your\project
- 创建public目录:mkdir public
- 创建入口文件:New-Item public\index.php -ItemType File
- 编辑文件内容:Set-Content public\index.php 'echo "PHP OK";'
启动命令里的 -t public 使用相对路径,执行前先切换到项目根目录。用 Get-ChildItem public 确认 index.php 已存在,并检查文件名有没有被保存成 index.php.txt。
让 Windows 桌面程序在开机时静默自启并隐藏到系统托盘。特别适用于 Flutter、Electron 等无视 VBS/ProcessStartInfo 窗口样式、难以隐藏的顽固应用。提供「VBS 启动器 + Python ctypes/Win32 API」的隐藏窗口方案,可稳定把窗口收进托盘且不闪控制台。
启动 PHP 内置服务器并打开页面
从项目根目录运行下面的命令。127.0.0.1 将服务绑定到本机,-t public 指定文档根目录。如果提示找不到 public,先用 Get-Location 确认终端所在的目录。
php -S 127.0.0.1:8000 -t public
终端开始监听后,在浏览器访问 http://127.0.0.1:8000/。看到 PHP OK 就说明入口文件已执行。用 Ctrl+C 停止服务,内置服务器仅用于本地开发和测试。
从空目录创建一个可运行的 PHP 项目
下面使用 PowerShell 创建独立练习目录。执行前先运行 php -v。Set-Content 写入 public/index.php,已有同名练习目录时请另选名称。
New-Item -ItemType Directory -Path .\php-local-demo\public
Set-Location .\php-local-demo
@'
<?php
declare(strict_types=1);
header('Content-Type: text/plain; charset=utf-8');
echo "PHP OK\n";
'@ | Set-Content -Encoding ascii .\public\index.php
php -S 127.0.0.1:8000 -t public保持这个窗口打开。另开 PowerShell 检查 HTTP 响应,也可以在浏览器打开 http://127.0.0.1:8000/。
页面打不开时怎么确认响应和端口
在第二个窗口执行。curl.exe 的 -i 会同时显示 HTTP 响应头和正文。只有启动失败或怀疑端口冲突时,才需要检查监听进程。
curl.exe -i http://127.0.0.1:8000/
Get-NetTCPConnection -LocalPort 8000 -State Listen |
Select-Object LocalAddress, LocalPort, OwningProcess预期看到 200 响应和 PHP OK。若 8000 被占用,可回到项目目录,用 php -S 127.0.0.1:8080 -t public 启动,并把访问地址改为 8080。


















