You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 14.04下Composer运行PHP代码报错,15.10正常求助

解决Ubuntu 14.04下Composer无法找到JsonPath\JsonObject的问题

我之前也碰到过类似的跨Ubuntu版本Composer依赖兼容问题,尤其是Ubuntu 14.04这种老版本环境,确实容易踩坑。咱们一步步来排查解决:

1. 确认Composer自动加载文件已正确引入

首先要确保你的test.php开头已经引入了Composer的自动加载文件,这是最容易忽略的点:

// 路径要根据你的项目结构调整,确保指向vendor/autoload.php
require __DIR__ . '/../vendor/autoload.php';

如果已经引入,运行以下命令重新生成自动加载缓存,修复老版本Composer可能出现的缓存异常:

composer dump-autoload

2. 检查JsonPath包的安装与版本兼容性

Ubuntu 14.04默认搭载PHP 5.5.9,而Ubuntu 15.10是PHP 7.0,两者对依赖包的版本支持差异很大:

  • 先检查JsonPath包是否已安装:
    composer show | grep jsonpath
    
  • 如果未安装,或者安装的是仅支持PHP 7+的高版本,需要指定兼容PHP 5.5的版本安装:
    # 安装适配PHP 5.5的JsonPath版本
    composer require flow/jsonpath:~0.3.0
    

3. 验证PHP扩展与版本

JsonPath依赖PHP的json扩展,Ubuntu 14.04可能默认未启用:

  • 检查json扩展是否存在:
    php -m | grep json
    
  • 如果没有输出,安装并启用该扩展:
    sudo apt-get update
    sudo apt-get install php5-json
    # 重启web服务,比如Apache
    sudo service apache2 restart
    

4. 修复文件权限问题

Ubuntu 14.04的web服务(如Apache)默认以www-data用户运行,确保vendor目录权限正确:

# 赋予web服务用户vendor目录的访问权限
sudo chown -R www-data:www-data /var/www/html/cesarefortelegram/vendor/
# 或者设置通用可读权限
chmod -R 755 /var/www/html/cesarefortelegram/vendor/

5. 适配Composer版本

Ubuntu 14.04的PHP 5.5不支持Composer 2.x版本,需要确保使用Composer 1.x:

  • 检查当前Composer版本:
    composer -V
    
  • 如果是2.x版本,切换到1.x:
    composer self-update --1
    

以上步骤应该能解决你遇到的类找不到问题,核心原因是Ubuntu 14.04的PHP 5.5与高版本依赖包、Composer 2.x的兼容性冲突,针对性调整版本即可。

内容的提问来源于stack exchange,提问作者Cesare

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:13:24