Ubuntu18.04下使用Satis安装Composer私服
  FT5dbaNQcmaA 2023年11月02日 76 0


一、说明

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

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

二、安装

2.1:生成satis项目

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

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

如果系统没有安装composer命令,可以使用离线版composer.phar程序,下载地址见:ComposerA Dependency Manager for PHPhttps://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  
}

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

我们简单解释一下这个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  //追加包名,完成下载

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

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

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

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

php -S 0.0.0.0:9099 -t web/

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

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;  
    }  
}

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

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

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

2.6:安装可能遇到的问题

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

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

使用 satis 搭建一个私有的 Composer 包仓库-博客园 https://www.cnblogs.com/maxincai/p/5308284.html

Handling private packages  https://getcomposer.org/doc/articles/handling-private-packages.md

Github上有一个基于satis的开源web版composer私服,感兴趣的可以自己动手搭建一下,我们公司实际使用体验还不错:

project-satisfy/satisfy




【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  NT5NRjELxLp1   2024年04月29日   70   0   0 PHP
  iALoCqVB8AGc   2023年12月25日   36   0   0 PHP
  yThMa20bw7iV   2024年02月19日   71   0   0 PHP
  iyViKl6W0XQr   2024年05月17日   53   0   0 PHP
  NT5NRjELxLp1   2024年03月14日   83   0   0 PHP
FT5dbaNQcmaA