composer出现Invalid credentials for ‘https://packagist.phpcomposer.com/packages.json’的错误

本文详细介绍了当使用Composer遇到Invalidcredentials错误时的解决方案,主要原因是默认的镜像站出现问题。文章提供了更换镜像站的方法,包括查看和修改镜像地址的步骤,以及推荐的国内镜像站点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

composer出现Invalid credentials for ‘https://packagist.phpcomposer.com/packages.json’的错误

一、总结

一句话总结:出现原因是https://packagist.phpcomposer.com/这个镜像站出现了问题

问题的实质是phpstudy中自带的composer不能用,自己在电脑上面再重新下载安装一个,就一切正常了

在浏览器的地址栏直接访问这个地址,会出现403错误:

{"statusCode":403,"code":"AccountArrear","message":"There is an arrear problem with this JSS account that prevents the operation from completing successfully","resource":"/json-packagist-com-cn/","requestId":"87C62F713ECC933B"}

 

 

 解决方法:给composer换一个镜像站就好了

 

1、composer如何查看镜像地址?

composer查看全局设置:

composer config -gl

设置composer镜像为国内镜像:

composer config -g repo.packagist composer https://packagist.phpcomposer.com

上面地址前几天崩了,可以用下面这个:

composer config -g repo.packagist composer https://packagist.laravel-china.org
Do not run Composer as root/super user! See https://getcomposer.org/root for details
[repositories.packagist.org.type] composer
[repositories.packagist.org.url] https://packagist.phpcomposer.com
 

 

2、几个常见的 Composer 国内镜像?

 

几个常见的 Composer 国内镜像

现在写PHP好象不用Composer总感觉有点Low了吧?好吧,即使这样,你在使用composer update的时候是不是也发现网速、进度low的不行。一个composer update要等半天。不说这个吧,你就是一个composer init也要等半天,这只是个空项目,你都要等这么久?composer 如果不加-vvv参数,你就感觉整个世界都停在那里了。所以,如果连接原始的composer还是加个-vvv参数吧

国内常见镜像有三个:

http://pkg.phpcomposer.com/  
https://toran.reimu.io/  
http://packagist.cn/
使用方法很简单一种是在~/.composer/config.json中加入相应的信息,一种是在当前项目的composer.json中加入:
"repositories": [  
        {"type": "composer", "url": "http://pkg.phpcomposer.com/repo/packagist/"},  
        {"packagist": false}  
    ]  

加入的时候注意语法,如果是json的最后一个元素,记得不要加","即可,否则 会报错

OK这样就可以了,尽情的尝试吧(packagist.cn更新的有点慢,toran.reimu.io 是https的,如果你本机openssl版本低可能会更新失败)。好象话这么一说,只能用pkg.phpcomposer.com的源了(嗯,忍忍吧,如果他不能用,你再换)

 

3、如何修改composer镜像?

方法一: 修改 composer 的全局配置文件(推荐方式)
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户)并执行如下命令:

composer config -g repo.packagist composer https://packagist.phpcomposer.com  

方法二: 修改当前项目的 composer.json 配置文件:
打开命令行窗口(windows用户)或控制台(Linux、Mac 用户),进入你的项目的根目录(也就是 composer.json 文件所在目录),执行如下命令:

composer config repo.packagist composer https://packagist.phpcomposer.com  

上述命令将会在当前项目中的 composer.json 文件的末尾自动添加镜像的配置信息(可以自己手工添加):

"repositories": {  
    "packagist": {  
        "type": "composer",  
        "url": "https://packagist.phpcomposer.com"  
    }  
}  

以 laravel 项目的 composer.json 配置文件为例,执行上述命令后如下所示(注意最后几行):

{  
    "name": "laravel/laravel",  
    "description": "The Laravel Framework.",  
    "keywords": ["framework", "laravel"],  
    "license": "MIT",  
    "type": "project",  
    "require": {  
        "php": ">=5.5.9",  
        "laravel/framework": "5.2.*"  
    },  
    "config": {  
        "preferred-install": "dist"  
    },  
    "repositories": {  
        "packagist": {  
            "type": "composer",  
            "url": "https://packagist.phpcomposer.com"  
        }  
    }  
}  

OK,一切搞定!试一下 composer install 来体验飞一般的速度吧!

一般情况下,安装包的数据(主要是 zip 文件)一般是从 github.com 上下载的,安装包的元数据是从 packagist.org 上下载的。

然而,由于众所周知的原因,国外的网站连接速度很慢,并且随时可能被“墙”甚至“不存在”。

“Packagist 中国全量镜像”所做的就是缓存所有安装包和元数据到国内的机房并通过国内的 CDN 进行加速,这样就不必再去向国外的网站发起请求,从而达到加速 composer install以及 composer update 的过程,并且更加快速、稳定。因此,即使packagist.org、github.com 发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。

 

 

 

 

 

二、内容在总结中

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/Renyi-Fan/p/9742710.html

<think>我们有两个问题需要解决:1.避免以root用户运行Composer(解决权限问题)2.处理Packagist关于Composer1版本即将停用的警告(升级Composer到2.x)根据引用内容,我们知道Composer可以通过ComposerSetup安装(Windows)或手动安装(Linux)。但用户的问题可能出现在Linux系统上,因为root权限问题在Linux中更常见。步骤概览:1.升级Composer到2.x版本(解决版本警告)2.配置Composer以非root用户运行(解决权限问题)详细步骤:###一、升级Composer到最新版本(解决版本警告)Composer1.x版本即将停用,因此需要升级到2.x。升级命令如下:```bashcomposerself-update--2```如果当前安装的是1.x,该命令会升级到最新的2.x版本。注意:如果系统中有多个用户使用Composer,可能需要全局升级。但通常每个用户独立安装Composer,所以每个用户都需要执行升级。###二、避免以root用户运行Composer(解决权限问题)以root运行Composer存在安全风险,且Composer会发出警告。解决方法:####方法1:为当前用户全局安装Composer(推荐)1.下载安装脚本并验证签名(可选):```bashphp-r"copy('https://getcomposer.org/installer','composer-setup.php');"php-r"if(hash_file('sha384','composer-setup.php')==='55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae'){echo'Installerverified';}else{echo'Installercorrupt';unlink('composer-setup.php');}echoPHP_EOL;"```注意:上述哈希值可能随版本变化,请从[Composer官网](https://getcomposer.org/download/)获取最新的安装脚本和哈希值。2.为当前用户安装到本地目录(例如`~/.local/bin`):```bashphpcomposer-setup.php--install-dir=~/.local/bin--filename=composer```3.删除安装脚本:```bashphp-r"unlink('composer-setup.php');"```4.将`~/.local/bin`加入当前用户的PATH环境变量:```bashecho'exportPATH="$HOME/.local/bin:$PATH"'>>~/.bashrcsource~/.bashrc```####方法2:修改全局安装的Composer权限(如果已经全局安装)如果已经全局安装了Composer(例如在`/usr/local/bin/composer`),但不想重新安装,可以修改目录权限:1.创建Composer的全局缓存和配置目录,并赋予当前用户权限:```bashsudomkdir-p/usr/local/share/composersudochown-R$USER/usr/local/share/composer```2.设置Composer使用的环境变量,使其使用用户目录:```bashecho'exportCOMPOSER_HOME="$HOME/.config/composer"'>>~/.bashrcecho'exportCOMPOSER_CACHE_DIR="$HOME/.cache/composer"'>>~/.bashrcsource~/.bashrc```这样,Composer就会使用当前用户的主目录来存储配置和缓存,避免需要root权限。###三、验证1.检查Composer版本:```bashcomposer--version```应显示2.x版本。2.运行Composer命令(如`composerinit`)不应出现root警告。###四、处理现有项目如果已有项目是通过root用户安装的,需要更新依赖项的所有权:```bashsudochown-R$USER:$USERvendorsudochown-R$USER:$USERcomposer.lock```然后以普通用户重新安装依赖:```bashcomposerinstall```###常见问题1.**升级Composer时出现权限错误**:如果之前是以root安装,可能需要使用sudo升级:```bashsudocomposerself-update--2```升级后,再按照方法2修改目录权限,以后就可以不用sudo运行。2.**安装后composer命令未找到**:检查PATH环境变量是否包含`~/.local/bin`,并确保`source~/.bashrc`已执行。3.**哈希验证失败**:从[Composer官网](https://getcomposer.org/download/)获取最新的安装脚本和哈希值。###相关建议-定期更新Composer:`composerself-update`-使用Composer时避免使用`sudo`,如果必须使用,请检查目录权限。§§相关问题§§1.如何为特定项目设置Composer镜像加速?2.Composer安装包时出现内存不足错误如何解决?3.如何回滚Composer到之前的版本?4.如何清理Composer的缓存?</think>### 解决 Composer 权限问题与版本警告指南 #### 一、避免以 root 用户运行 Composer(权限问题) **根本原因**:Composer 强烈建议避免使用 root 权限执行,因其可能: 1. 在 `vendor/` 目录创建 root 属主的文件 2. 导致后续非 root 用户操作时出现权限错误 3. 触发安全警告:`Do not run Composer as root/super user!` --- ##### ✅ 解决方案(3种方法) **方法 1:专用用户安装(推荐)** ```bash # 创建专用用户 sudo useradd -m -s /bin/bash composeruser # 切换用户并安装 sudo -u composeruser -i curl -sS https://getcomposer.org/installer | php -- --install-dir=~/.local/bin echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc ``` 此后所有项目操作使用: ```bash sudo -u composeruser composer install ``` **方法 2:修复现有项目权限** ```bash # 重置项目文件属主 sudo chown -R $USER:$USER . # 清除root创建的缓存 rm -rf ~/.cache/composer # 或 sudo rm -rf /root/.composer # 重新以普通用户安装 composer install ``` **方法 3:全局配置修复** ```bash # 设置Composer使用当前用户目录 echo 'export COMPOSER_HOME="$HOME/.config/composer"' >> ~/.bashrc echo 'export COMPOSER_CACHE_DIR="$HOME/.cache/composer"' >> ~/.bashrc source ~/.bashrc ``` --- #### 二、处理 Composer 1 版本停用警告 **警告示例**: `Warning: You are running Composer 1 which is deprecated...` ##### ✅ 升级到 Composer 2 步骤 **1. 检查当前版本** ```bash composer --version # 输出如 Composer version 1.10.1 ``` **2. 升级 Composer** ```bash # 常规升级 composer self-update --2 # 如遇权限错误(需sudo时) sudo composer self-update --2 ``` **3. 验证升级结果** ```bash composer --version # 应显示 2.x.x ``` **4. 项目兼容性处理** ```bash # 更新项目依赖 composer update --with-dependencies # 优化自动加载(引用[3]) composer dump-autoload -o --no-dev ``` --- ### 关键操作说明 | 操作 | 命令 | 作用 | |------|------|------| | **创建专用用户** | `sudo useradd -m -s /bin/bash composeruser` | 隔离Composer运行环境 | | **安全升级** | `composer self-update --2` | 升级到V2且保留配置 | | **权限修复** | `sudo chown -R $USER:$USER .` | 重置项目文件属主 | | **缓存清理** | `rm -rf ~/.cache/composer` | 清除root创建的缓存 | --- ### 常见问题处理 **Q1: 升级后出现 `Your requirements could not be resolved` 错误** ```bash # 清除旧版本缓存 composer clear-cache # 更新依赖树 composer update --lock ``` **Q2: 生产环境如何禁用开发者包?**(引用[3]) ```bash composer install --no-dev composer dump-autoload -o --no-dev ``` **Q3: 无法升级时的备用方案** ```bash # 下载最新版二进制 curl -sS https://getcomposer.org/installer | php -- --filename=composer2 # 使用新版本 php composer2.phar install ``` --- ### 安全建议 1. **定期更新**:`composer self-update` 2. **镜像加速**:配置中国镜像提升速度 ```bash composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/ ``` 3. **权限隔离**:永远避免 `sudo composer ...` > 通过上述操作,可同时解决权限问题和版本过时警告,确保Composer在安全环境下运行[^1][^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值