php命令找不到,根本原因是path环境变量未正确配置;需确认php安装路径(如c:\php或/opt/homebrew/bin),将其目录添加到系统path,windows需重启命令行,macos/linux需source ~/.zshrc或~/.bash_profile生效。

php命令找不到:PATH没配对
终端执行 php -v 报错“不是内部或外部命令”,说明系统压根找不到 php.exe(Windows)或 php(macOS/Linux)。这不是PHP没装,而是“地图”没更新。
- 先确认PHP安装目录下确实存在
php.exe(Windows)或php(类Unix),常见路径如C:\php、/usr/local/bin/php - 把该目录完整路径加进系统
Path环境变量——注意只加目录,不加文件名;路径末尾别带反斜杠 - Windows改完后必须新开命令行窗口,旧窗口的环境变量不会自动刷新
- macOS/Linux用户若用zsh,需检查
~/.zshrc里是否执行了export PATH=...,改完要source ~/.zshrc
Web服务器不解析.php:模块没加载或Handler没配
浏览器访问 test.php 直接下载源码或显示空白,说明Apache/Nginx根本没把请求交给PHP处理,不是PHP坏了,是“路由没设好”。
- Apache:检查
httpd.conf是否启用LoadModule php_module和PHPIniDir指向正确路径;确认有AddHandler application/x-httpd-php .php - Nginx + PHP-FPM:检查
location ~ \.php$块里是否有fastcgi_pass 127.0.0.1:9000(或对应socket路径),且fastcgi_param SCRIPT_FILENAME指向真实文件路径 - 改完配置必须重启服务:
sudo systemctl restart apache2或sudo nginx -s reload,仅重载不够 - 用
php --ini确认实际加载的php.ini路径,避免改了错的配置文件
phpinfo()页面打不开但无报错:端口被占或服务未启
Apache/Nginx启动失败、页面空白、或提示“Connection refused”,大概率是监听端口冲突,而非代码问题。
- 查80/443/8000端口占用:
netstat -ano | findstr :80(Win)或lsof -i :80(macOS/Linux),记下PID后用taskkill /F /PID 12345或kill -9 12345干掉进程 - 临时换端口更省事:Apache改
Listen 8080,Nginx改listen 8080,然后访问http://localhost:8080/test.php - 集成环境(如phpstudy、XAMPP)务必点开控制面板,看Apache和MySQL图标是否为绿色运行中——红色代表根本没起来
- 查看对应服务日志:
error.log(Apache)或nginx/error.log末尾几行,比报错提示更准
扩展加载失败导致Fatal error:php.ini路径或扩展名写错
报错 Class 'PDO' not found 或 Call to undefined function mysqli_connect(),说明关键扩展没加载,不是PHP本身问题,是配置漏项。
- 先跑
php -m看已加载模块列表,对比缺哪些(如pdo_mysql、openssl、curl) - 打开
php.ini,取消对应行注释:extension=mysqli(Windows)或extension=php_mysqli.so(Linux/macOS),注意扩展名后缀必须匹配系统 - 确认
extension_dir指向正确——Windows通常是ext子目录,Linux/macOS可能是/usr/lib/php/20220829/这类带版本号的路径 - PHP 8.2+ 已彻底移除
mysql扩展(非mysqli),老教程里的mysql_connect()会直接报错,必须改用mysqli或PDO
php.ini 和Web服务器用的不是同一个,或者集成环境自带的PHP和你手动装的PHP混在一起。动手前先用 php --ini 和 phpinfo() 锁定实际生效的路径,比盲目修改强十倍。php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











