使用satis 搭建私有Composer

前言

网上有很多教程,但是作为小白,遇见很多错误浪费了很多时间。
这里记录下我自己安装的整个流程

准备工作

  • 安装composer
    参考 http://docs.phpcomposer.com/00-intro.html#Globally

  • 使用国内镜像
    参考 https://pkg.phpcomposer.com/

安装

cd /data/satis
composer create-project composer/satis --stability=dev --keep-vcs
mv satis mypackages.com
cd mypackages.com
vi satis.json    # 配置文件需要手动创建

配置文件如下

{
    "name": "My Repository",
    "homepage": "http://mypackages.com",
    "repositories": [
        {"type": "vcs", "url": "https://github.com/bambooleaf/reps_demo.git"}
    ],
    "require":{
        "reps_demo/helloworld":"*"
    },
    "archive":{
        "directory":"dist",
        "format":"tar",
        "prefix-url":"http://mypackages.com/",
        "skip-dev":true
    }
}

其中部分配置的含义

  • repositories: 包的存储路径,这里可以是内网
  • require:具体的包的名称,后面的版本号实际就是git里的tag 。也可以直接使用 require-all:true 的配置获取全部。
  • archive:下载远端项目到本地存储,会自动生成tar包保存在dist里,可以加快后续composer的速度。

    PS:如果git使用的是ip访问,需要设置

composer config -g secure-http false

再PS:如果设置了archive,对于nginx用户请注意nginx用户与php-fpm的执行用户相同,否则会导致下载tar包无效

生成

php bin/satis build satis.json public/

一般出问题的话都是目录的权限问题

配置nginx

server {
    listen  80;
    server_name mypackages.com;
    root /data/satis/mypackages.com/public;
    index index.php index.html;
    access_log /var/log/nginx/mypackages.com.log main;
    error_log /var/log/nginx/mypackages.com.log.err debug;
    rewrite_log on;
    location ~* \.php$ {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass  unix:/var/run/php-cgi.sock;
        fastcgi_index index.php;

    }
    location = /favicon.ico {
            log_not_found off;
            access_log off;
    }
}

成功后会出现这样的页面
使用satis 搭建私有Composer_第1张图片

使用

在自己项目中的composer.json中添加如下

"repositories":[
        {"type":"composer","url":"mypackages.com"}
    ],
    "require":{
        "reps_demo/helloworld":"*"
    },

然后执行composer install 或 composer update
也可以添加 -vvv选项来观察运行的详情

至此,可以用于公司内部的私有仓库就搭建完成了

参考文章

使用 satis 搭建 Composer 私有库

你可能感兴趣的:(工作总结)