Laravel 9.9生产环境Composer install报json_decode类型错误求助
解决Composer安装php-stripe库时的json_decode类型错误
PHP Fatal error: Uncaught TypeError: json_decode(): Argument #1 ($json) must be of type string, bool given in phar:///usr/local/bin/composer/src/Composer/Json/JsonFile.php:194 Stack trace:
针对仅生产服务器出现该问题、本地环境正常的情况,可按以下步骤排查解决:
清理Composer缓存与重建依赖
服务器端Composer缓存或依赖文件可能损坏,执行以下命令重置:composer clear-cache rm -rf vendor/ rm composer.lock composer install --no-dev同步本地正常的依赖配置文件
直接将本地环境验证通过的composer.json和composer.lock文件替换服务器上的对应文件(替换前务必备份服务器原有文件),避免服务器端配置出现语法或版本匹配问题。检查PHP环境兼容性
- 确认服务器PHP版本与本地一致(Laravel 9.9要求PHP 8.0及以上):
php -v - 验证
json扩展是否安装启用:
若缺失,Ubuntu系统可执行对应版本的安装命令(如PHP8.1版本:php -m | grep jsonapt install php8.1-json)。
- 确认服务器PHP版本与本地一致(Laravel 9.9要求PHP 8.0及以上):
修复项目目录权限
确保Composer拥有项目目录的读写权限:chown -R www-data:www-data /path/to/your/laravel-project chmod -R 755 /path/to/your/laravel-project锁定php-stripe库版本
在composer.json中明确指定与本地环境一致的php-stripe版本,避免服务器拉取不兼容的新版本:"require": { "stripe/stripe-php": "^7.100" // 替换为你本地使用的版本号 }执行更新命令:
composer update stripe/stripe-php
内容的提问来源于stack exchange,提问作者Muhammad Adnan
相关产品推荐
相关产品推荐

