zoukankan      html  css  js  c++  java
  • 搭建packagist私服和composer

    1.下载源码

    https://github.com/composer/packagist

    2.修改配置文件

    cp app/config/parameters.yml.dist  app/config/parameters.yml

    数据库的信息填写以下,github的key填写一下(我是随意写的)

    3.安装composer

    curl -sS https://getcomposer.org/installer | php

    mv composer.phar /usr/local/bin/composer

    4.安装intl扩展

    wget http://download.icu-project.org/files/icu4c/53.1/icu4c-53_1-src.tgz
    tar -xzf icu4c-53_1-src.tgz
    cd icu/source
    ./configure –prefix=/usr/local/icu
    make
    make install


    pecl install intl

    5.下载packagist依赖

    因为packagist的项目也是用composer管理的所以这里运行一下composer install就可以了

    6.建立数据库和部署WEB

    app/console doctrine:schema:create

    app/console assets:install web

    7.修改NGINX conf

    location ~ ^/(css|js|font|js|bundles)/ {
      root /home/deploy/packagist/web;
    }

    location / {
      try_files $uri /app.php$is_args$args;
    }

    location ~ ^/app.php(/|$) {

      root /home/deploy/packagist/web;
      fastcgi_pass 10.83.68.139:9000;
      fastcgi_split_path_info ^(.+.php)(/.*)$;
      fastcgi_index app.php;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
      include fastcgi_params;
    }

    8.提交你的REPO

    访问 http://localhost/app.php 注册账号,输入你的git的repo地址,我这里用的是自己搭建的gitlab,所以地址填写的是gitlab的地址,提交的的项目需要有composer.json文件提供项目信息,格式在这里 https://getcomposer.org/doc/04-schema.md

    注意:

    (1).确保可以使fpm的用户可以git clone代码,需要配置deploy key

    (2).你自己的项目如果想应用composer首先你提交到packagist的项目的类命名规范要符合PSR-0或者PSR-4,如果不符合就只能用CLASSMAP了,项目当与每次BUILD的时候生成一次CLASS和FILE的对应关系,以后根据这个来加载,从官方的项目上来看大多数都是PSR-0这种规则

    9.修改composer的配置文件,从你的packagist私服拉包

    提交到packagist中的项目都加上这句

    "repositories": [
    {"type": "composer", "url": "http://localhost"},        //composer这里会自动去找http://localhost/packags.json这个文件
    {"packagist": false}                                               //不从源拉包
    ]

    10.composer 推进了PHP代码规范的统一

    composer不仅仅是一个打包工具,他还按照PSR的规范,统一了PHP代码的加载规则,使得所有packagist中的PHP项目有了唯一的项目名,类的命名空间等,可以在这些项目之间互相引用。

  • 相关阅读:
    JWT在ASP.NET Core3.1的应用
    .NET Core 3.0中IAsyncEnumerable<T>有什么大不了的?
    C#类继承中构造函数的执行序列
    C#中的out 参数,ref参数,值参数
    ABP之启动配置
    ABP之模块系统
    ABP之N层架构
    ABP之什么是ABP(ASP.NET Boilerplate)
    如何使用ASP.NET Core、EF Core、ABP(ASP.NET Boilerplate)创建分层的Web应用程序(第一部分)
    ABP之Setting
  • 原文地址:https://www.cnblogs.com/23lalala/p/4011886.html
Copyright © 2011-2022 走看看