PHP无法运行通常因环境配置错误:PATH未设、Web服务器未关联PHP、php.ini路径错误或扩展未启用;应通过php -v、php --ini、phpinfo()定位真实配置。

PHP 下载安装后无法运行,绝大多数情况不是 PHP 本身坏了,而是环境没接通——php.exe 没进系统路径、Web 服务器没配对、或 CLI 与 Web 使用的 php.ini 不是同一份。
命令行执行 php -v 报“不是内部或外部命令”
这是 Windows 上最常见问题:系统根本找不到 php.exe。
- 确认你解压/安装的 PHP 目录里确实存在
php.exe(比如C:\php\php.exe) - 把 PHP 目录路径(如
C:\php)添加到系统PATH环境变量,**不是**加C:\php\php.exe - 改完 PATH 后,**必须新开一个命令行窗口**再试
php -v,旧窗口不会自动刷新环境变量 - 如果用的是 Thread Safe(TS)版本但搭配了非 TS 的 Apache 模块,也会静默失败——优先选 Non-Thread Safe(NTS)+
php-cgi.exe或直接用php -S内置服务器测试
浏览器访问 localhost 显示空白或下载 .php 文件
说明 Web 服务器(Apache/Nginx)没有把 .php 请求交给 PHP 处理,只是当普通文件返回了。
- Apache 用户检查
httpd.conf是否启用了LoadModule php_module,且AddHandler application/x-httpd-php .php已配置 - Nginx 用户重点核对
location ~ \.php$块里fastcgi_pass是否指向正确的 PHP-FPM 地址(如127.0.0.1:9000),并确认 PHP-FPM 进程正在运行(php-fpm.exe或服务方式启动) - 用内置服务器快速验证 PHP 是否可用:
php -S localhost:8000
,然后访问http://localhost:8000—— 这步绕过所有 Web 服务器配置,直击 PHP 解释器本身
phpinfo() 页面不显示或报错“Call to undefined function”
函数不存在,通常是因为扩展没启用,或 php.ini 加载错了位置。
立即学习“PHP免费学习笔记(深入)”;
- 运行
php --ini查看实际加载的php.ini路径,别凭感觉去改别的文件 - 打开那个
php.ini,取消注释(去掉分号)extension_dir和关键扩展如extension=mysqli、extension=mbstring - Windows 下扩展名是
.dll,确保extension_dir指向的目录里有对应文件(如php_mysqli.dll),且该 DLL 依赖的vcruntime140.dll等运行库已安装 - 修改
php.ini后,Apache/Nginx 必须重启,PHP-FPM 必须 reload,内置服务器要重开
页面报错“Maximum execution time of X seconds exceeded”或白屏无提示
不是卡死,是 PHP 出了致命错误但错误报告被关了,导致什么也不输出。
- 在
php.ini中设好这三项:display_errors = On
display_startup_errors = On
error_reporting = E_ALL - CLI 模式下这些设置可能不生效,需在脚本开头加:
- 白屏还可能是
output_buffering开着但内容未 flush,或 BOM 头导致 header 发送失败——用编辑器另存为「UTF-8 无 BOM」格式
真正麻烦的从来不是装不上,而是你以为它在运行,其实用的是另一套配置、另一个 php.ini、甚至另一个 PHP 版本。每次怀疑出问题,第一反应不应该是重装,而是跑一遍 where php、php --ini、php -r "print phpinfo();" —— 把实际在跑的东西揪出来,比猜快得多。











