欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

composer 安装 laravel 镜像 有大用 有大大用 有大大大用 有大大大大用 有大大大大大用

Composer 中文镜像 / Packagist 中国全量镜像正式发布!            

               

           

file            


           

Laravel China 社区镜像,将于 2019 年 9 月 4 号停用。详见:博客:Laravel China 镜像完成历史使命,将于两个月后停用
替代镜像请见 Wiki:Wiki:Composer 国内加速:可用镜像列表                

『Composer 中国全量镜像』是由 Laravel China 社区联合 又拍云 与 优帆远扬 共同合作推出的公益项目,旨在为广大 PHP 用户提供稳定和高速的 Composer 国内镜像服务。

镜像的由来?

几个月前,我有幸加入了 优帆远扬 的远程工程师团队。 Summer 在与我沟通过后,提议我们一起合作,以 Laravel China 社区的名义来构建一个高可用性,快速稳定的 Composer 全量镜像。

如何使用?

请尽可能用比较新的 Composer 版本。

使用 Composer 镜像加速有两种选项:

  • 选项一:全局配置,这样所有项目都能惠及(推荐);

  • 选项二:单独项目配置;

选项一、全局配置(推荐)

$ composer config -g repo.packagist composer https://packagist.laravel-china.org
           

选项二、单独使用

如果仅限当前工程使用镜像,去掉 -g 即可,如下:

$ composer config repo.packagist composer https://packagist.laravel-china.org
           

取消镜像

composer config -g --unset repos.packagist
           

遇到问题?

composer 命令后面加上 -vvv (是 3 个 v)可以打印出调错信息,命令如下:

$ composer -vvv create-project laravel/laravel blog
$ composer -vvv require psr/log
    composer -vvv create-project laravel/laravel --prefer-dist wangzhan "5.5.*" 

如果自己解决不了,或发现 BUG,可以在 [@扣丁禅师](https://learnku.com/users/12063) 的 GitHub 上 创建 Issue

注意提问时请带上 -vvv 的输出,并且要求叙述清晰,第一次提问的同学请阅读 关于提问的智慧

常见问题

  1. 已存在 composer.lock 文件,先删除,再运行 composer install 重新生成。

    原因:composer.lock 缓存了之前的配置信息,从而导致新的镜像配置无效。

  2. 使用 laravel new 命令创建工程, 这个命令会从 这里 下一个 zip 包,里面自带了 composer.lock,和上面原因一样,也无法使用镜像加速,解决方法:

  • 方法一(推荐):
    不使用 laravel new,直接用 composer create-project laravel/laravel xxx 新建工程。

  • 方法二:
    运行 laravel new xxx,当看见屏幕出现 - Installing doctrine/inflector 时,Ctrl + C 终止命令,cd xxx 进入,删除 composer.lock,再运行 composer install

  • 缓存多久更新一次?

    • 0 时 - 早上 7 时,这个时间段考虑使用人数不会太频繁,间隔为 15 分钟

    • 其余时间,间隔为 5 分钟

      正常更新速度可在 1 分内完成 ,但更新太快,会降低 CDN 命中率,如果总有新文件让 CDN 去缓存,反而拖慢了速度,所以故意加了些延迟。我们每次采集中还会删减掉数千个僵尸包,以加快传输速度。

    安装 Composer

    Linux/Mac:

    wget https://dl.laravel-china.org/composer.phar -O /usr/local/bin/composer
    chmod a+x /usr/local/bin/composer
               

    如遇权限不足,可添加 sudo

    Windows:

    1. 直接下载 composer.phar,地址:https://dl.laravel-china.org/composer.phar

    2. 把下载的 composer.phar 放到 PHP 安装目录

    3. 新建 composer.bat, 添加如下内容,并保存:

    @php "%~dp0composer.phar" %*
               

    查看当前版本

    $ composer -V
               

    升级版本

    $ composer selfupdate
               

    注意 selfupdate 升级命令会连接官方服务器,速度很慢。建议直接下载我们的 composer.phar 镜像,每天都会更新到最新。

    致谢

    Composer 中国全量镜像的 CDN 由国内领先 CDN 服务商「又拍云」提供,相信这次联合合作能给 Composer 镜像提供稳定、快速的 CDN 支持。

               

    file            


               

    另外也在此特别感谢「优帆远扬」在项目开发中提供的技术支持。

               

    file            


               

    禅师 微信号 zencodex,可以聊 (撩)

               
     本帖已被设为精华帖!
    本帖由 Summer 于 1年前 取消置顶
           
               
    扣丁禅师                    
               
               
     讨论数量: 
               
    Infinity                        

    超快。好顶赞。

     3个月前 评论                
               
    fuzzyy                        

    厉害的禅师,现在国内唯一可用的 composer 中国镜像!!!:speak_no_evil:                        

     3个月前 评论                
               
    monanxiao                        

    创建项目时 发生 file_put_contents (/home/vagrant/.composer/cache/repo/https---packagist.laravel-china.org/provider-laravel$framework.json): failed to open stream: Permission denied
    https://packagist.laravel-china.org could not be fully loaded, package information was loaded from the local cache and may be out of date

     2个月前 评论                
               
    扣丁禅师                        

    @monanxiao 这个错误是提示文件无写入权限。sudo rm -rf home/vagrant/.composer/cache ,再重新执行。注意执行用户对目录是否有写入权限

     2个月前 评论                
               
    monanxiao                        

    @扣丁禅师 是的 解决了,谢谢

     2个月前 评论                
               
    chanjsq                        

    @扣丁禅师 报错了:Failed, trying the next URL (502: The "https://dl.laravel-china.org/laravel/frame..." file could not be downloaded (HTTP/1.1 502 Bad Gateway))

     2个月前 评论                
               
    litongleo                        
    • Installing laravel/framework (v5.8.17): Downloading (failed)
      Downloading (failed)
      Downloading (failed)
      Failed, trying the next URL (502: The "https://dl.laravel-china.org/laravel/frame..." file could not be downloaded (HTTP/1.1 502 Bad Gateway))Loading from cache

     2个月前 评论                
               
    扣丁禅师                        

    @chanjsq 我这边给第三方提下工单,有些文件上传失败

     2个月前 评论                
               
    扣丁禅师                        

    @litongleo @chanjsq 已经解决。感谢反馈。

    官方给查看 是因为同一文件,上传多次,但这不是 composer 层的逻辑,composer 本身业务逻辑是控制 20s 只能上传一个同名文件

                           

    file                        


                           

    所以估计是 upyun/php-sdk 的逻辑引起的,强制 uploadType 为 BLOCK
    $config->uploadType = 'BLOCK',目前貌似目前运行正常

     2个月前 评论                
               
    chanjsq                        
     2个月前 评论                
               
    litongleo                        
     2个月前 评论                
               
    j475523225                        

    炒鸡赞

     2个月前 评论                
               
    levi                        

    为什么我安装 laravel 30 分钟还没有动静。。。。。

     1个月前 评论                
               
    易大师                        

    怒赞

     1个月前 评论                
               
    raybon                        

    :thumbsup:                        

     1个月前 评论                
               
    5555                        

    hi 在哪里能看到这个最后一次的同步时间,现在好像很久没有同步了

     3周前 评论                
     扣丁禅师 (楼主) 3周前                                                     
     5555 (作者) 3周前                                                     
               
    waiting_for_time                        

    大佬,今天使用了镜像,但是需要我输入账号和密码,这是啥情况

                           

    file                        


                           

     3周前 评论                
     Summer 3周前                            
     1                             
     白小白 3周前                                                     
               
    truncate_xiaoxing123                        

    镜像出问题了
    Authentication required (packagist.laravel-china.org):
    Username:
    Password:
    Invalid credentials for 'https://packagist.laravel-china.org/packag...', aborting.
    https://packagist.laravel-china.org could not be fully loaded, package information was loaded from the local cache and may be out of date

     1周前 评论                
     笑逐颜凯 1周前                            
     1                             
     levi 1周前                                                     
     truncate_xiaoxing123 (作者) 3天前                                                     



    来自 https://learnku.com/composer/t/4484/composer-mirror-use-help



    假如出现如下的错

      [Composer\Downloader\TransportException]

      The "https://packagist.laravel-china.org/packages.json" file could not be d

      ownloaded: Peer certificate CN=`*.phphub.org' did not match expected CN=`pa

      ckagist.laravel-china.org'

      Failed to enable crypto

      failed to open stream: operation failed


    使用composer安装错误提示:

    The "https://packagist.laravel-china.org/packages.json" file could not be downloaded: Peer certificate CN=*.phphub.org' did not match expected CN=packagist.laravel-china.org'
    Failed to enable crypto
    failed to open stream: operation failed
    https://packagist.laravel-china.org could not be fully loaded, package information was loaded from the local cache and may be out of date

    解决:The    
    解决:The    

    换下镜像吧

    按说明是镜像地址请求出错,于是去https://packagist.laravel-china.org查看,发现Laravel China在一个月前发了篇文章《Laravel China 镜像完成历史使命,将于两个月后停用》,所以很明白了,你需要换镜像。

    阿里云 Composer 全量镜像

    Packagist 官方实时同步,推荐使用最新的 Composer 版本。

    • 镜像类型:全量镜像

    • 更新时间:1 分钟

    • 镜像说明:阿里云 CDN 加速,更新速度快,推荐使用

    全局配置(推荐)

    所有项目都会使用该镜像地址:

    取消配置:

    项目配置

    • 仅修改当前工程配置,仅当前工程可使用该镜像地址:composer config repo.packagist composer https://mirrors.aliyun.com/composer/

    • 取消配置:composer config --unset repos.packagist

    调试

    • composer 命令增加 -vvv 可输出详细的信息,命令如下:composer -vvv require alibabacloud/sdk


    来自  https://www.uedbox.com/post/58890/



    Laravel China 镜像完成历史使命,将于两个月后停用    

    备用镜像请见 Wiki:Composer 国内加速:可用镜像列表        

    随着 阿里开源镜像 发布以后,很多人在问我们 Laravel China 镜像何去何从。我与禅师讨论后,做了一个艰难的决定:Laravel China 镜像将于两个月后停用。

    我们的 CDN 资源是有限的,为了防止恶意流量消耗,本着牺牲少部分人的使用体验,让大部分人能正常使用的初衷,我们在后台做了诸多限制。例如说同一个 IP 下一分钟内只能下载多少次,最大允许下载的文件大小(后台观察到有超大的 zip 包,如下图)等。

       

    Laravel China 镜像将完成历史使命    


       

    限制加上去后,恶意流量有所减少,对成本控制起到很好的效果。但是随之而来又出现了另一个问题:

    误杀率较高,分析了下原因,有可能是带宽速度过快,触发「分钟内下载频率限制」,或多人共用一个 IP,这种常见于同一个公司有多名使用者,出口 IP 是同一个的情况。

    我们陷入一个两难的境地:基于 CDN 平台上提供的机制,实难分辨上面的这些请求。解开限制,又会出现流量成本超标的情况。误杀情况无法避免,可预知的,接下来还会出现更多的反馈「Composer 要求用户名」的帖子。

    与其维护一个残缺的镜像,还不如让贤,推广其他稳定、可用性高、流量不限制的大厂镜像。

    Laravel China 镜像创建的契机是 phpcomposer.com 出现了很长时间的不稳定,这是当时唯一的一个全量镜像,无其他选项。出现不稳定时,只能选择使用 Packagist 的源镜像,而源镜像速度慢且有时会连接不上,本地开发尚且可使用科学上网来解决,服务器部署的话,每台服务器上都得去装这些科学上网软件,非常不方便。正是在这种情况下,Laravel China 镜像应运而生。

    两年后的现在,国内全量镜像有了更多的选项,尤其是大厂的镜像,像阿里云、腾讯、华为,他们的资源是我们无法比拟的。再加上 镜像源码 的开放,降低了构建镜像的成本,相信以后还会有更多的选项。Laravel China 镜像在这个时候停用,也算是不辱使命,功成身退。

    鸣谢

    Laravel China 镜像,运行两年多可以说是很稳定了,这一切都是禅师的功劳。禅师自己也在和别人合伙创业,平时工作很忙,镜像出问题他的响应时间都是飞快,如他所说的:「不能耽误别人的工作」。不愧为 LC 镜像背后的男人。

    还要感谢 又拍云 的慷慨赞助。尤其是又拍云负责市场的傅总监,百忙之中积极响应我的请求,足见又拍云对开源事业的支持与热情。

    替代镜像

    请见 Wiki:Wiki:Composer 国内加速:可用镜像列表    

    镜像迁移

    老项目迁移到新镜像时,composer.lock 会有老镜像的下载链接残留,处理方法请见:Wiki:Laravel 安装和开发环境:修改项目依赖为新的镜像地址 。


    Practice makes perfect.

       

    来自  https://learnku.com/articles/30758



    如果报 zlib_decode(): data error 错,看看 

    /node-admin/5738

    /node-admin/5722

    /node-admin/9399

    普通分类: