composer satis 处理私有资源包
satis
satis 是一个静态的 composer 代码库生成器。他可以提供私有资源包更新服务;
安装
首先保证已经安装了composer;
然后到web根目录;
composer create-project composer/satis --stability=dev --keep-vcs
执行完毕之后,会生成一个satis目录;然后创建satis配置文件
vim satis/satis.json
配置文件内容;
{
"name": "something",
"homepage": "http://packages.local.com",
"repositories": [
{"type": "vcs", "url": "something.git"}
],
"require":{
"something":"*"
},
"archive":{
"directory":"dist",
"format":"tar",
"prefix-url":"http://packages.local.com/",
"skip-dev":true
}
}
在 repositories 里面即为私有资源包,里面url可以使用内网git地址;
PS:私有资源包里面必须要有composer.json文件;如果项目没有composer依赖使用,可以建立一个简单的composer.json文件;如下:
{
"name": "name",
"description": "description",
"license": "MIT",
"authors": [
{
"name": "name",
"email": "[email protected]"
}
],
"require":{
"php":">=7.0.0"
}
}
使用下面的命令既可以生成私有库站点;
php bin/satis build satis.json public/
这里执行完毕之后,配置web服务器,将配置文件 satis.json 里面 homepage 的域名配置到web服务器;
nginx的配置文件如下:
server {
listen 80;
server_name packages.local.com;
root /data/www/satis/public;
index index.php index.html index.htm;
access_log /tmp/nginx/packages.local.com.access.log;
error_log /tmp/nginx/packages.local.com.error.log;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php($|/) {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
然后在浏览器里面访问配置的域名packages.local.com就可以访问私有库了;
显示如下:
这时候在satis的站点里面就能看到我们的私有资源包了;
使用
在项目里面就可以获取私有库里面的资源包了;
在项目里面的 composer.json 里面增加
"repositories": {
"packages": {
"type": "composer",
"url": "http://packages.local.com"
},
"packagist": {
"type": "composer",
"url": "https://packagist.phpcomposer.com"
}
},
"require": {
"yourpackage": "~1.0",
"php": ">=7.0.0"
}
然后执行composer update 就可以获取到私有库里面的包了;
repositories 里面的配置项是所有资源包的更新站点,可以配置多个,composer会遍历寻找资源包的;
这里配置的是http的库站点,如果更新出错需要执行下面命令,将composer允许更新非https的站点;
composer config -g secure-http false