Ubuntu18.04下使用Satis安装Composer私服

一、说明

Composer 是 PHP5.3以上 的一个依赖包管理工具。它允许你声明项目所依赖的代码库,它会在你的项目中为你安装他们。Composer 不是一个包管理器。是的,它涉及 “packages” 和 “libraries”,但它在每个项目的基础上进行管理,在你项目的某个目录中(例如 vendor)进行安装。默认情况下它不会在全局安装任何东西。因此,这仅仅是一个依赖管理。

我们企业在使用各种服务的时候,首要的肯定是安全,composer虽然有公共的服务提供给全球用户,但是企业还是需要有自己的私有服务,主要有以下几点考虑:下载速度要快,允许个性化定制,有全部掌控权限,足够稳定。

二、安装

2.1:生成satis项目
cd /data/www/            //自定义安装目录  
composer create-project composer/satis --stability=dev --keep-vcs //创建satis项目  

如果系统没有安装composer命令,可以使用离线版composer.phar程序,下载地址见:ComposerA Dependency Manager for PHPicon-default.png?t=N7T8https://getcomposer.org/download/

2.2:配置satis
cd /data/www/satis  
vim satis.json  
....  
  
{  
    "name": "repo/dev",  
    "homepage": "http://192.168.90.234:9099",  
    "repositories": [  
        {  
            "type": "composer",  
            "url": "https://mirrors.aliyun.com/composer/"  
        },  
        {  
            "type":"git",  
            "url":"http://git.wjh.com/wjh/pinyin.git"  
        },  
        {  
            "type":"git",  
            "url":"http://git.wjh.com/wjh/aliyun-log-sdk.git"  
        },  
        {     
            "type":"git",  
            "url":"http://git.wjh.com/wjh/qywx-sdk.git"  
        }  
    ],  

    "config":{  
        "secure-http":false  
    },  
    "archive": {  
        "directory": "dist",  
        "format": "tar",  
        "prefix-url": "http://192.168.90.234:9099",  
        "skip-dev": true  
    },  
   "require": {  
       "php": ">=7.0.0",  
        "yiisoft/yii": "1.1.19",  
        "predis/predis":"1.1.1",  
        "guzzlehttp/guzzle":"6.3.0",  
        "aliyuncs/oss-sdk-php": "2.3.0",  
        "alibabacloud/client": "1.5.4",  
        "gregwar/captcha": "1.1.7",  
        "aliyunmq/mq-http-sdk": "1.0.1",  
        "elasticsearch/elasticsearch": "7.2.0",  
        "endroid/qr-code": "3.6.1",  
        "picqer/php-barcode-generator": "0.3",  
        "overtrue/pinyin": "4.0.3",  
        "phpoffice/phpspreadsheet":"1.12.0",  
        "phpoffice/phpexcel": "1.8.2",  
        "wjh/pinyin":"4.0.7",  
        "wjh/aliyun-log-sdk":"0.6.2",  
        "alibabacloud/polardb": "1.8.402",  
        "alibabacloud/sdk":"1.8.402",  
        "wjh/qywx-sdk":"1.0.1"  
    },  
    "require-dependencies": true,  
    "require-dev-dependencies": true  
}

我们简单解释一下这个json文件:
          name:仓库的名字,可以随便定义
  homepage:仓库建立之后的的主页地址
repositories:指定去哪获取包,url中需要带.git
       require:指定获取哪些包,如果想获取所有包,使用require-all: true, 一般不需要全获取
secure-http:如果你没有ssl证书配置https,请设置为false

2.3:初始化satis
php bin/satis build satis.json web/       //依照配置文件生成服务目录,服务目录为 ./web/  
或  
php bin/satis build satis.json web/ this/package that/other-package  //追加包名,完成下载  

使用上面的命令不出意外就会在web目录下生成相应的文件,如果出错,根据错误提示去解决即可,常见的错误可能是权限问题,或是git版本过低等。

2.4:启动satis服务(2种方式)

2.4.1:使用php启动一个服务器

php -S 0.0.0.0:9099 -t web/  

2.4.2:将web目录配置到nginx服务器进行访问

server {  
    listen  9099;  
    server_name 0.0.0.0;  
    root /data/www/satis/web;  
    index index.php index.html;  
    access_log /var/log/nginx/packages.dev.com.log main;  
    error_log /var/log/nginx/packages.dev.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;  
    }  
} 
2.5:使用satis服务

2.5.1:浏览器直接访问:http://ip:9099,可以进入包管理后台界面,你可以查询你想要的包是否存在

2.5.2:通过 composer.json文件,composer自动进行包下载:

vim composer.json  
....  


{  
    "repositories": [  
        { "type": "composer", "url": "http://192.168.90.234:9099/"},  //设置访问私服地址  
        {"packagist": false}  //这一步一定要,否则每次都会校验是否有新版本,过程会很慢  
    ],  
    "config":{  
        "secure-http":false     //使用http,不使用https (因为我们没有证书)  
    },  
    "require": {  
        "php": ">=7.0.0",  
        "yiisoft/yii": "1.1.19",  
        "predis/predis":"1.1.1",  
        "guzzlehttp/guzzle":"6.3.0",  
        "aliyuncs/oss-sdk-php": "2.3.0",  
        "alibabacloud/client": "1.5.4"  
    }  
}  
....  


php composer.phar  install  

2.6:安装可能遇到的问题

问题:生成项目过程中,遇到缺少php扩展的错误

解决:第一步composer生成satis项目时,需要依赖于部分php的基础扩展,比如php-mbstring等,如果没有安装扩展需要先安装所依赖的php扩展

:使用 satis 搭建一个私有的 Composer 包仓库-博客园icon-default.png?t=N7T8https://www.cnblogs.com/maxincai/p/5308284.html

Handling private packagesicon-default.png?t=N7T8https://getcomposer.org/doc/articles/handling-private-packages.md

Github上有一个基于satis的开源web版composer私服,感兴趣的可以自己动手搭建一下,我们公司实际使用体验还不错:project-satisfy/satisfyicon-default.png?t=N7T8https://github.com/project-satisfy/satisfy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

泪痕110

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值