PHP 8.3本地环境报错主因是路径、配置、扩展三处未对齐:CLI与Web服务独立运行,需分别验证php -v和phpinfo();php.ini必须用php.ini-development模板并设绝对extension_dir;Composer依赖CLI版本,需确保which php指向正确路径。

别硬扛,PHP 8.3本地环境报错,90%出在三个地方:路径没对齐、配置没生效、扩展没加载对。不是你手速慢,是默认设置和实际运行逻辑有断层。
先确认你用的是哪个 PHP 进程
php -v 显示 8.3 ≠ 浏览器里 phpinfo() 是 8.3。CLI 和 Web 服务(Apache/Nginx)完全独立,改了 PATH 只影响命令行,不影响网页。
- 建一个 info.php,内容只有 <?php phpinfo(); ?>,用浏览器打开
- 重点看三行:PHP Version、Loaded Configuration File、PHP Extension Build(VC16/TS 必须匹配你的 Web 服务器)
- Apache 用户:检查 httpd.conf 里的 LoadModule 行是否指向 php8.3.dll 所在目录
- Nginx + PHP-FPM 用户:确认 fastcgi_pass 指向的是 8.3 的 fpm socket 或端口(如 127.0.0.1:9003)
php.ini 必须亲手配,不能靠“复制完就完事”
刚解压的 ZIP 包里有两个模板:php.ini-development 和 php.ini-production。用错一个,所有扩展都不加载、错误不报、Composer 直接卡死。
- 只复制 php.ini-development,重命名为 php.ini
- 取消注释关键扩展:extension=mbstring、extension=openssl、extension=pdo_mysql 等
- extension_dir 必须写绝对路径,比如 Windows 下写 extension_dir = "C:/php/ext",不能留默认的 "ext"
- 删掉已废弃指令,比如 track_errors=On —— PHP 8.3 会直接报 Fatal error
扩展装了≠启用了,尤其宝塔、phpStudy 这类面板
面板点“安装 Redis”显示成功,但 phpinfo() 里找不到 redis,大概率是脚本没打到对应版本目录,或 php.ini 没改对位置。
立即学习“PHP免费学习笔记(深入)”;
- 宝塔用户:手动进 /www/server/panel/install/redis.sh,把里面出现的 83 改成你实际的子版本号(如 83 → 85),再运行 bash /www/server/panel/install/redis.sh install83
- phpStudy 用户:确认 PHPTutorial\php\ 下有完整命名的文件夹(如 php-8.3.6-Win32-vs16-x64),且 Apache 的 httpd-vhosts.conf 里没残留 ScriptAlias /php/ 这类干扰配置
- Linux(apt)用户:CLI 和 FPM 的 php.ini 是两个文件,分别改 /etc/php/8.3/cli/php.ini 和 /etc/php/8.3/fpm/php.ini
Composer 报错?先查它到底调了哪个 PHP
php -v 是 8.3,composer install 却提示 “command not found” 或调用旧版,说明 Composer 记录的 PHP 路径没更新,或者当前终端没读到新 PATH。
- 执行 where php(Windows)或 which php(macOS/Linux),看输出路径是不是你装的 8.3
- PATH 修改后,必须关掉所有 CMD/终端窗口,重新打开才生效
- Composer 安装时若检测到多个 php.exe,可能记错路径;可手动指定:php composer.phar install



















