Packagist 镜像

请各位使用本镜像的同学注意:

本镜像已经依照 composer 官方的数据源安全策略完全升级并支持 https 协议!请各位同学 按照下面所示的两个方法将 

还没安装 Composer 吗?请往下看如何安装 Composer 。

用法:

有两种方式启用本镜像服务:

  • 系统全局配置: 即将配置信息添加到 Composer 的全局配置文件 config.json 中。见composer.json文件中。见 打开命令行窗口(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.*"
    },
    "require-dev": {
    "fzaninotto/faker": "~1.4",
    "mockery/mockery": "0.9.*",
    "phpunit/phpunit": "~4.0",
    "symfony/css-selector": "2.8.*|3.0.*",
    "symfony/dom-crawler": "2.8.*|3.0.*"
    },
    "autoload": {
    "classmap": [
    "database"
    ],
    "psr-4": {
    "App\\": "app/"
    }
    },
    "autoload-dev": {
    "classmap": [
    "tests/TestCase.php"
    ]
    },
    "scripts": {
    "post-root-package-install": [
    "php -r \"copy('.env.example', '.env');\""
    ],
    "post-create-project-cmd": [
    "php artisan key:generate"
    ],
    "post-install-cmd": [
    "php artisan clear-compiled",
    "php artisan optimize"
    ],
    "pre-update-cmd": [
    "php artisan clear-compiled"
    ],
    "post-update-cmd": [
    "php artisan optimize"
    ]
    },
    "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.orggithub.com 发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。

    如何安装 Composer

    安装前请务必确保已经正确安装了 PHP -v 查看是否正确输出版本号。

    打开命令行并执行下列命令安装最新版本的 Composer (以下指令摘自 https://getcomposer.org/download/ ,请前往查看最新的安装指令):

    php -r "readfile('https://getcomposer.org/installer');" > composer-setup.php
    
    php composer-setup.php
    
    php -r "unlink('composer-setup.php');"
    

    执行第一条命令下载下来的 composer-setup.php 脚本将简单的检测 php.ini 中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的 composer.phar 文件到当前目录。

    上述 3 条命令的作用依次是:

    1. 下载安装脚本(composer-setup.php)到当前目录。
    2. 执行安装过程。
    3. 删除安装脚本 -- composer-setup.php 。

    局部安装

    上述下载 Composer 的过程正确执行完毕后,可以将 composer.phar 文件复制到任意目录(比如项目根目录下),然后通过 php composer.phar 指令即可使用 Composer 了!

    全局安装

    全局安装是将 Composer 安装到系统环境变量 PATH 所包含的路径下面,然后就能够在命令行窗口中直接执行 composer 命令了。

    Mac 或 Linux 系统:打开命令行窗口并执行如下命令将前面下载的 composer.phar 文件移动到/usr/local/bin/ 目录下面:

    sudo mv composer.phar /usr/local/bin/composer
    

    Windows 系统:

    1. 找到并进入 PHP 的安装目录(和你在命令行中执行的 php 指令应该是同一套 PHP)。
    2. 将 composer.phar 复制到 PHP 的安装目录下面,也就是和 php.exe 在同一级目录。
    3. 在 PHP 安装目录下新建一个 composer.bat 文件,并将下列代码保存到此文件中。
    @php "%~dp0composer.phar" %*
    

    最后重新打开一个命令行窗口试一试执行 composer --version 看看是否正确输出版本号。

Composer更新慢的终极解决方案的更多相关文章

  1. Composer更新慢的终极解决方案-转

    转自:http://blog.csdn.net/fishermanmax/article/details/51975692 Packagist 镜像 请各位使用本镜像的同学注意: 本镜像已经依照 co ...

  2. Sqlite && EF Code FIRST 终极解决方案 2019.5.17

    Sqlite && EF Code FIRST 终极解决方案 2019.5.17 包括根据模型自动生成数据库,初始化数据,模型改变时的自动数据迁移等 2019.12.25 更新 支持E ...

  3. Eclipse不自动编译java文件的终极解决方案

    最近我的eclipse经常犯傻,项目中总是有很多,启动项目也是没有启动类.查了下项目中生成的class文件,我靠竟然没有,或者还是以前的.原来是eclipse犯傻了,它没帮我自动编译java文件.一般 ...

  4. 【转】JSP中文乱码问题终极解决方案

    原文地址:http://blog.csdn.net/beijiguangyong/article/details/7414247 在介绍方法之前我们首先应该清楚具体的问题有哪些,笔者在本博客当中论述的 ...

  5. Xcode-调试断点不能停在代码区终极解决方案

    转发 调试断点不能停在代码区终极解决方案:  http://mobile.51cto.com/iphone-390082.htm

  6. VIM、GVIM在WINDOWS下中文乱码的终极解决方案

    文章转自:http://www.liuhuadong.com/archives/68 vim.gvim在windows下中文乱码的终极解决方案在windows下vim的中文字体显示并不好,所以我们需要 ...

  7. Android大图片裁剪终极解决方案(上:原理分析)

    转载声明:Ryan的博客文章欢迎您的转载,但在转载的同时,请注明文章的来源出处,不胜感激! :-)  http://my.oschina.net/ryanhoo/blog/86842 约几个月前,我正 ...

  8. 【原创】CHROME 最小字体限制为12PX的终极解决方案

    CHROME 最小字体限制为12PX的终极解决方案 本文由五月雨恋提供,转载请注明出处. 相信不少做网站的用户会有这样一个问题,Chrome 默认最小字体是12px(最新版英文也有此问题),这个是 C ...

  9. 绝对好文C#调用C++DLL传递结构体数组的终极解决方案

    C#调用C++DLL传递结构体数组的终极解决方案 时间 2013-09-17 18:40:56 CSDN博客相似文章 (0) 原文  http://blog.csdn.net/xxdddail/art ...

随机推荐

  1. 每日一水 POJ8道水题

    1. POJ 3299 Humidex 链接: http://poj.org/problem?id=3299 这道题是已知H,D,T三者的运算关系,然后告诉你其中两个.求另一个. #include&l ...

  2. Linux Shell处理文本最常用的工具大盘点

    导读 本文将介绍Linux下使用Shell处理文本时最常用的工具:find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk:提供的例子和参数都是最常用和最为实 ...

  3. 如何在Linux中发现IP地址冲突

    导读 你们都知道什么是IP地址,是吧?它们被分配给网络上的设备来代表它们.它们通过DHCP服务器分配并且会经常改变.现在有两种IP地址.动态的一种会经常改变(几天一次),而静态的就如它的名字那样是静态 ...

  4. [Node.js]25. Level 5. Route params

    Create a route that responds to a GET request '/quotes/<name>', then use the param from the UR ...

  5. Linux上安装Bugzilla4.4小记

    因项目需要,我受命在一台Linux服务器上搭建一个Bugzilla,进过一天的调试,这项任务总算完成了.现在可以肯定的说,安装过程不复杂,基本就是解压,填参数,执行命令.Bugzilla要跑起来,本机 ...

  6. 推荐20个很有帮助的web前端开发教程

    1. CSS Vocabulary 一个伟大的指向和点击的小应用程序,让你加快速度掌握 CSS 语法的各个不同部分,学习各个属性的正确的名称. 2. Liquidapsive 一个简单的信息化布局,通 ...

  7. 基于Mongodb进行分布式数据存储

    http://blog.csdn.net/daizhj/article/details/5868360 注:本文是研究Mongodb分布式数据存储的副产品,通过本文的相关步骤可以将一个大表中的数据分布 ...

  8. Step by Step iOS Project In Action - 视图控制器

    1. 什么是视图控制器(View Controller) 简单来说,视图控制器用来管理你所有的视图. 他们是你的视图和模型的粘合剂. 如果你做过MVC的Web项目,我想你应该不会对它感到陌生. 2. ...

  9. php之快速入门学习-10(数组)

    PHP 数组 数组能够在单个变量中存储多个值: <?php $cars=array("Volvo","BMW","Toyota"); ...

  10. 转:Python yield 使用浅析

    初学 Python 的开发者经常会发现很多 Python 函数中用到了 yield 关键字,然而,带有 yield 的函数执行流程却和普通函数不一样,yield 到底用来做什么,为什么要设计 yiel ...