日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Satis搭建composer私有库(自定义下载目录)

發布時間:2023/12/19 综合教程 28 生活家
生活随笔 收集整理的這篇文章主要介紹了 Satis搭建composer私有库(自定义下载目录) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在我們的日常php開發中需要使用大量的第三方包和類庫, 怎么管理是一個問題,

我們用的Yii2框架, 但是并沒有把composer用起來, 由于最近更換為docker部署項目, 于是想起來用composer來管理包并降低部署代碼的時間

安裝composer(在你當做私有庫的服務器上以及開發環境)

  參考 https://www.phpcomposer.com/ (有國內鏡像使用方法)


安裝satis(在你當做私有庫的服務器上)

mkdir /data      #我是在根目錄下
cd data/
mkdir satis
cd satis/
composer create-project composer/satis --stability=dev --keep-vcs
mv satis mypackages.com
cd mypackages.com/
vim satis.json   #配置文件需要手動創建

satis.json文件內容如下, 可以復制后修改成你的參數

{
    "name": "MyRepository",
    "homepage": "http://mydandan.wang",
    "repositories": [
        { "type": "vcs", "url": "https://github.com/LIzheng1993/test.git"},
        { "type": "vcs", "url": "https://git.oschina.net/1129103472/ceshi.git"}
    ],
         "require-all" : true,
        "archive":{
        "directory":"dist",
        "format":"tar",
        "prefix-url":"http://mydandan.wang",
        "skip-dev":true
    }
}

其中部分配置的含義

repositories: 包的存儲路徑,這里可以是內網, 為了演示, 我用github來存儲代碼
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包無效

生成(類似于build) 一般出問題的話都是目錄的權限問題

php bin/satis build satis.json public/

配置Nginx

server {
    listen  80;
    server_name mydandan.wang;
    root /data/satis/mypackages.com/public;
    index index.php index.html;
    access_log /var/log/nginx/mypackages.com.log;
    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;
    }
}

成功后進入mydandan.wang 會出現這樣的頁面

使用

在自己的項目中添加composer.json文件

{
     "repositories": [
        {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        },
    {
            "type": "composer",
            "url": "http://mydandan.wang"
        }
    ],
    "require": {
        "sapolang/ceshi": "*",
        "test/helloworld": "*"
    },
   
    "config": {
        "secure-http": false
    }
   
}

"secure-http": false 是檢查是否https, 設置false就可以使用http地址作為倉庫了, 否則會報錯

然后執行composer install 或 composer update
也可以添加 -vvv選項來觀察運行的詳情

自定義路徑

在這里我僅說明作為一個包使用者時如何把包下載到我們想安裝的任何位置

僅需要在composer.json文件中的 requires 中添加這個包 "composer/installers": "*"并在 extra 下設置installer-paths屬性。(extra和require是同級別的)

Drupal 的多站點設置就是一個很好的例子,其中的資源包應該被安裝到各自網站的子目錄。

在這里我們使用 composer/installers 來覆蓋安裝路徑:

{
    "extra": {
        "installer-paths": {
            "sites/example.com/modules/{$name}": ["vendor/package"]
        }
    }
}

上面的"sites/example.com/modules/{$name}": ["vendor/package"] 中sites/example.com/modules/ 可以是你項目中的任何目錄, {$name} 會被 : 后面的["vendor/package"] 替換掉

至此,可以用于公司內部的私有倉庫就搭建完成了

總結

本地 : 只需配置composer.json使用就行, 最多設置下目錄, 設置下https檢查為false

用作私有庫的服務器 : 主要是起了一個packagist的作用, 但是它是我們自己私有的, 而packagist是公開的, 如不理解可以看下packagist網站 https://packagist.org/

          需要做也很簡單, 安裝satis, 配置satis.json文件, 配置Nginx, 然后Build生成代碼庫

真正代碼存放的地方:

          可以是github也可以是你們公司本地的gitlab,應該也可以直接存到私有庫的服務器上(這里筆者沒嘗試)

          

總結

以上是生活随笔為你收集整理的Satis搭建composer私有库(自定义下载目录)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。