搭建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项目有了唯一的项目名,类的命名空间等,可以在这些项目之间互相引用。
搭建packagist私服和composer的更多相关文章
- 用nexus搭建maven私服
首先介绍一下背景,公司访问外网有限制,项目组大部分人员不能访问maven的central repository,因此在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到这台私服上 环 ...
- 搭建Maven私服
最近从SVN下载的代码,在本地构建时出现了诸多问题,部分依赖下载超时,就想起在局域网搭建Maven私服,废话不说了,在测试服务器上建的已经成功,就随便找台机子再练习一遍顺道写个日志.1.前往http: ...
- Maven学习 (四) 使用Nexus搭建Maven私服
为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...
- Maven-004-使用 Nexus 搭建 maven 私服
从去年至今,自己一直在学习自动化测试工具,想利用自动化工具尽可能的将重复的.关键的.耗时耗力的工作实现自动化,减轻日常测试工作,提升测试效率.在学习的过程中,将 maven 作为了项目开发管理工具,进 ...
- Maven学习总结(九)——使用Nexus搭建Maven私服
一.搭建nexus私服的目的 为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建n ...
- Ubuntu server下搭建Maven私服Nexus
Ubuntu server下搭建Maven私服Nexus Maven私服Nexus的作用,主要是为了节省资源,在内部作为maven开发资源共享服务器来使用. 1.下载 通过root用户进去Ubuntu ...
- Linux_Centos中搭建nexus私服
1.在Linux下搭建Nexus私服 1).下载并且解压 下载 nexus-2.11.2-03-bundle.zip unzip nexus-2.11.2-03-bundle.z ...
- Maven使用笔记(五)Sonatype Nexus 搭建Maven 私服
1. 为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地, 而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载 ...
- Maven——使用Nexus搭建Maven私服
原文:http://www.cnblogs.com/xdp-gacl/p/4068967.html Maven学习总结(九)--使用Nexus搭建Maven私服 一.搭建nexus私服的目的 为什么要 ...
随机推荐
- 剑指offer——面试题14:剪绳子
// 面试题14:剪绳子 // 题目:给你一根长度为n绳子,请把绳子剪成m段(m.n都是整数,n>1并且m≥1). // 每段的绳子的长度记为k[0].k[1].…….k[m].k[0]*k[1 ...
- jar 启动关闭
1.后台启动 startTest.sh #设置工程路径project_path=/root/testcd $project_path#nohup后台启动,输出日志到test.lognohup java ...
- 【3dsMax安装失败,如何卸载、安装3dMax 2014?】
AUTODESK系列软件着实令人头疼,安装失败之后不能完全卸载!!!(比如maya,cad,3dsmax等).有时手动删除注册表重装之后还是会出现各种问题,每个版本的C++Runtime和.NET f ...
- Flask中的的SQLAlchemy
好久没有更新Blog了 今天来聊一聊 Python 的 ORM 框架 SQLAlchemy 有的孩子已经听说过这个框架的大名了,也听说了 SQLAlchemy 没有 Django 的 Models 好 ...
- 牛客网Java刷题知识点之TCP、UDP、TCP和UDP的区别、socket、TCP编程的客户端一般步骤、TCP编程的服务器端一般步骤、UDP编程的客户端一般步骤、UDP编程的服务器端一般步骤
福利 => 每天都推送 欢迎大家,关注微信扫码并加入我的4个微信公众号: 大数据躺过的坑 Java从入门到架构师 人工智能躺过的坑 Java全栈大联盟 ...
- React.js 小书 Lesson8 - 组件的组合、嵌套和组件树
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson8 转载请注明出处,保留原文链接和作者信息. 继续拓展前面的例子,现在我们已经有了 Heade ...
- Shell脚本检测程序,如果挂了就重启程序
脚本如下: #!/bin/sh #要检查的进程名 PROGRESS_NAME="heihu_server" #----------------------------------- ...
- [转]<加密算法c#>——— 3DES加密之ECB模式 和 CBC模式
本文转自:http://www.cnblogs.com/qq278360339/archive/2013/06/05/3119222.html 最近 一个项目.net 要调用JAVA的WEB SERV ...
- flask在centos下搭建web服务【uwsgi,nginx】
centos操作系统 uWSGI是一个web服务器,Nginx进行反向代理的其实跟这些服务器可以说没有任何关系,你提供动态内容的服务器可以是apache/nginx/tomcat,当然也可以是uWSG ...
- artDialog组件应用学习(三)
一.可以加载url的对话框 预览: 对话框编写代码 //弹出一个对话框,加载页面 function OpenBox(url, title, width, height) { seajs.use(['j ...