欢迎各位兄弟 发布技术文章
这里的技术是共享的
还没安装 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.*" }, "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
发生故障(主要是连接速度太慢和被墙),你仍然可以下载、更新安装包。
Packagist 中国全量镜像从 2014 年 9 月上线以来,一直为国内的 PHP 开发者和企业提供免费的 Packagist 镜像服务,而且将一直运行下去,直到这个镜像没有存在意义为止。在这两年半的时间里,又拍云 一直默默的为我们赞助 CDN 和云存储服务(连个 logo 都没有给他加过);我们也一直为提高这个镜像的稳定性和可用度而努力,中间进行了几次大的重构和无数次完善,几乎踩遍了所有的坑。
从今年(2017)起,我们舍弃了 UCloud 的服务器赞助,转而自己从国外云服务商处采购服务器,这能够让镜像同步服务更灵活,部署、灾备、迁移更方便,不受机房和地域限制。
作为一个免费服务,镜像自身不产生收入,如果您觉得这个镜像对您有用,请给我们赞助资金用于采购服务器以及运维工具。
赞助类别及回馈:
个人赞助:赞助费用在 50 元及以上,我们会将您的姓名、个人网址等展示到个人赞助者列表中。
企业赞助:至少赞助一年的服务器费用(1650 元),您的企业 logo 将会出现在我们网站首页的赞助商列表中。
更大额度的赞助请发邮件联系我们协商回馈方式:packagist@bootcss.com
赞助通道:
注:由于微信支付无法获取付款方信息,请务必发邮件告知您希望在赞助者列表中希望展示的信息。通过支付宝捐赠请发邮件或加好友告知您希望展示的信息。packagist@bootcss.com
安装前请务必确保已经正确安装了 PHP。打开命令行窗口并执行
php -v
查看是否正确输出版本号。
打开命令行并依次执行下列命令安装最新版本的 Composer:
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
执行第一条命令下载下来的 composer-setup.php
脚本将简单地检测 php.ini
中的参数设置,如果某些参数未正确设置则会给出警告;然后下载最新版本的 composer.phar
文件到当前目录。
上述 3 条命令的作用依次是:
下载安装脚本 - composer-setup.php
- 到当前目录。
执行安装过程。
删除安装脚本。
上述下载 Composer 的过程正确执行完毕后,可以将 composer.phar
文件复制到任意目录(比如项目根目录下),然后通过 php composer.phar
指令即可使用 Composer 了!
全局安装是将 Composer 安装到系统环境变量 PATH
所包含的路径下面,然后就能够在命令行窗口中直接执行 composer
命令了。
打开命令行窗口并执行如下命令将前面下载的 composer.phar
文件移动到 /usr/local/bin/
目录下面:
sudo mv composer.phar /usr/local/bin/composer
找到并进入 PHP 的安装目录(和你在命令行中执行的 php
指令应该是同一套 PHP)。
将 composer.phar
复制到 PHP 的安装目录下面,也就是和 php.exe
在同一级目录。
在 PHP 安装目录下新建一个 composer.bat
文件,并将下列代码保存到此文件中。
@php "%~dp0composer.phar" %*
最后重新打开一个命令行窗口试一试执行 composer --version
看看是否正确输出版本号。
提示:不要忘了经常执行
composer selfupdate
以保持 Composer 一直是最新版本哦!
最好通过邮箱提问或者报告故障:packagist@bootcss.com
一般我会每天查收邮件的,遇到紧急情况会立即处理。如果你的问题我也需要复现或者测试的话一般两天左右给出答复。 请把遇到的问题说清楚,比如系统环境、软件版本、所在城市(用于定位网络异常的情况)等,并且务必截图、截图、再截图, 多发截图有助于问题快速解决,一图顶千言!
注意: 如果你的问题涉及到执行 composer 命令,请在命令末尾添加 -vvv 参数输出详细日志,例如:
composer install -vvv composer update -vvv
经过 2017 年 2 月底到 3 月初的升级, 目前的更新频率是 1 分钟一次,在本页面上部就能看到本镜像的“最后同步时间”。但是,一般有两种情况会影响到上面所展示的“最后同步时间”:
一是镜像同步时没有检查到需要更新的内容时,这时我们选择不修改“最后同步时间”
二是镜像同步时检查到大量更新,尤其是需要同步大量 zip 安装包到国内时,消耗的时间较多,“最后同步时间”会间隔稍多一些
另外还有“不一般”的情况:例如 packagist.org 或 Github 的服务器出现故障或服务遭遇大量攻击而不能响应时, 我们的镜像只能等待这两个服务完全正常之后才能继续同步。这时咱们都只能一起耐心等待了!
根据 packagist.org 关于页面上的 Update Schedule 规则说明:packagist.org 会对新提交的 package 立即抓取一次。已经提交的 package 一般是每周抓取一次更新。如果你的 package 源码托管在 Github 或 Bitbucket 上,可以通过设置 service hook 让 packagist.org 在你每次 commit 后抓取更新。
所以建议同学们为自己维护的 package 设置 service hook,这样你每次向 Github 仓库提交代码时就能快速被 packagist.org 抓取了。
总之,是否能够从我们的镜像上下载到 package 的新版本完全取决于 package 的设置和 packagist.org 的更新频率。我们的镜像目前的更新频率是 1 分钟,所以只要 packagist.org 抓取到了新版本,很快就能同步到我们的镜像上。
yii2 通过 fxp/composer-asset-plugin 插件来安前端开发所用到依赖包,此插件会在安装完 php 依赖包之后再安装前端开发所依赖的 npm 或 bower 包, 所以导致再次前往 Github 下载资源,从而绕开了我们中国镜像。
参考:http://www.yiiframework.com/doc-2.0/guide-start-installation.html#installing-from-composer
参考:https://github.com/fxpio/composer-asset-plugin/blob/master/Resources/doc/index.md
composer-asset-plugin 插件的用途是解决 php 项目中管理、安装 bower、 npm (nodejs包管理)包的,如果你采用的是 yii2 框架,请参考其文档。
Packagist 中国全量镜像一直是免费的,并且将一直免费下去,直到这个镜像没有存在意义为止。目前没有收费服务或企业版的计划,如果您觉得这个镜像对您有用,请赞助我们。
来自 https://pkg.phpcomposer.com/