You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
注册

Laravel 9升级至Laravel 10时Composer依赖冲突问题求助

解决Laravel 9升级到10时fideloper/proxy的依赖冲突问题
  • 移除冲突的第三方包
    执行以下命令彻底移除fideloper/proxy:

    composer remove fideloper/proxy
    
  • 删除冗余配置文件
    删掉项目根目录下的config/trustedproxy.php文件,Laravel 10已将信任代理配置整合到config/app.php或环境变量中。

  • 更新TrustProxies中间件
    打开app/Http/Middleware/TrustProxies.php,将其修改为继承Laravel官方的中间件类,并调整配置:

    <?php
    
    namespace App\Http\Middleware;
    
    use Illuminate\Http\Middleware\TrustProxies as Middleware;
    use Illuminate\Http\Request;
    
    class TrustProxies extends Middleware
    {
        /**
         * 信任的代理服务器列表
         *
         * @var array<int, string>|string|null
         */
        protected $proxies = env('TRUSTED_PROXIES');
    
        /**
         * 用于检测代理的请求头
         *
         * @var int
         */
        protected $headers = Request::HEADER_X_FORWARDED_FOR | 
                            Request::HEADER_X_FORWARDED_HOST | 
                            Request::HEADER_X_FORWARDED_PORT | 
                            Request::HEADER_X_FORWARDED_PROTO;
    }
    
  • 重新执行升级命令
    完成上述操作后,再次运行:

    composer update -W
    

补充说明:fideloper/proxy 4.x版本仅支持到Laravel 8,而Laravel 10内置的信任代理功能已经完全替代了这个第三方包的作用,所以移除它是解决依赖冲突的唯一可行方案。

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

火山引擎 最新活动