Contents
  1. 1. 概述
  2. 2. 安装 satis
  3. 3. 配置
  4. 4. 构建
  5. 5. WEB 站点搭建
  6. 6. 使用 satis 私有库
    1. 6.1. composer create-project
    2. 6.2. composer.json 中指定要包含的私有composer项目:
  7. 7. 参考文献

概述

公司内网使用 composer 自动加载创建了几个 git 仓库,为支持使用 create-project 创建项目,需要建立类 packagist.org 功能的私有仓库。经过比较,选择轻量的 satis,以下是安装配置笔记。

安装 satis

命令行下执行: php create-project composer/satis --stability=dev --keep-vcs

配置

创建satis.json文件,如官方示例:

1
2
3
4
5
6
7
8
9
10
{
"name": "My Repository",
"homepage": "http://packages.example.org",
"repositories": [
{ "type": "vcs", "url": "https://github.com/mycompany/privaterepo" },
{ "type": "vcs", "url": "http://svn.example.org/private/repo" },
{ "type": "vcs", "url": "https://github.com/mycompany/privaterepo2" }
],
"require-all": true
}

reposiories 数组改成公司内网各个使用 composer 自动加载项目的地址,注意 URL中需要带 .git

构建

进入 satis 目录,使用如下命令构建 satis web站点:php bin/satis build satis.json public

: composer的 repo.packagist 配置项如果采用的是国内的镜像地址,可能上面的 build 语句会失败,需要暂时去掉镜像配置,Linux 下可直接编辑 ~/.config/composer/config.json 文件去掉,Windows 下的操作同理;由于自建的 composer 私有库使用的是 HTTP 协议,而默认 composer 要求必须使用 HTTPS 协议,故 composer create-project 时,必须指定 no-secure-http 参数,或者在配置项指定参数 "secure-http": false

WEB 站点搭建

使用 apache/nginx 或 php -S 命令创建 WEB 站点,文档根目录指向 satis/public 目录。

使用 satis 私有库

composer create-project

假设上面配置的 web 站点地址是 http://127.0.0.1,则可使用如下命令创建composer项目:

1
composer create-project vendor/project --no-secure-http --no-interaction --repository=http://127.0.0.1

或者配置下以下选项:

1
2
composer config -g secure-http false
composer config -g repo.my_repo composer http://127.0.0.1

然后,以后只需要使用下面的命令安装:

1
composer create-project vendor/project -n

composer.json 中指定要包含的私有composer项目:

通过repositories配置项指定私有composer库的地址,指定后就可以在 require 中使用私有 composer 项目了。

1
2
3
4
5
6
7
8
9
{
"repositories": [
{ "type": "composer", "url": "http://127.0.0.1/" }
],
"require": [
...
],
...
}

参考文献

Contents
  1. 1. 概述
  2. 2. 安装 satis
  3. 3. 配置
  4. 4. 构建
  5. 5. WEB 站点搭建
  6. 6. 使用 satis 私有库
    1. 6.1. composer create-project
    2. 6.2. composer.json 中指定要包含的私有composer项目:
  7. 7. 参考文献