1
haiyang416 2013-08-28 18:14:28 +08:00 via Android 1
你可以在本地安装好,然后打包复制提交到服务器,服务器就不用装composer。
|
2
thenewbie OP @haiyang416 原来也是直接复制粘贴就好啊~ thx
PS: 第一次接触 Laravel 4 和 composer 什么的... 总担心会不会出问题... >_< |
3
KiseXu 2013-08-28 18:38:19 +08:00 1
从某种意义上说composer就是个下载软件,把各种包下载到vendor文件夹中,下载完后直接把所有文件上传到服务器上是可以运行的啊
|
4
PrideChung 2013-08-28 18:42:30 +08:00 1
直接用FTP上传整个网站目录是可以,但是就失去了使用composer做包管理的好处了,例如区分开发和生产环境启用的包。
比较好的做法是把composer生成的vendor目录加入.gitignore,通过git来部署到服务器,在服务器跑composer install。 再正式一点的话可以用Mina之类的部署工具。 |
5
thenewbie OP @PrideChung 这个看起来好赞~
|
6
holystrike 2013-08-28 19:27:13 +08:00 1
自己另写一个安装脚本,把composer安装vendor的指令放进去,用自己的脚本来安装
|
7
thenewbie OP @holystrike 这个... 自己写个装,和直接用 composer 装... 有什么不同么...
|
8
sobigfish 2013-08-28 19:50:28 +08:00 1
用 composer 装:服务器下载快啊,比直接上传方便很多啊
|
10
holystrike 2013-08-29 12:54:56 +08:00 1
没什么大的区别,无非就是加点其他的指令进去,比如设置目录权限、清空缓存、备份之类的,这就看你的习惯了。
也可以用 Composer 的 script 这项配置来加载执行vendor安装、更新完后的其他指令,效果差不多 |
11
holystrike 2013-08-29 12:56:05 +08:00 1
接上,
区别就是,composer 的 script 是让你写php,自己写脚本那就直接shell语句了 |
12
brikhoff 2013-08-29 13:41:00 +08:00 1
@PrideChung 那岂不是要在服务器上面装git?
|
13
darkyoung 2013-08-29 13:44:26 +08:00 1
用git同步上去,composer install/update
|
14
PrideChung 2013-08-29 15:54:32 +08:00 2
@brikhoff 服务器不用装git,开发机在repo上面git add remote,通过SSH指定服务器上的一个目录就行。
|
15
hizhou 2013-08-30 10:40:51 +08:00 1
composer 是包依赖管理软件,开发时才用到。和部署,没啥关系。
|
16
chuck911 2013-09-06 22:12:56 +08:00 1
vendor里面的代码的确可以一起推上服务器去,只是显得稍傻。vendor里面的代码都是第三方的,下载了又上传...
参考 https://github.com/andrew13/Laravel-4-Bootstrap-Starter-Site /vendor文件夹都直接写在.gitignore里了 |
17
caoglish 2013-09-27 21:57:55 +08:00 1
个人感觉用composer部署很危险,因为composer可能已经吧依赖更新了,而你自己的程序因为某些关系,吧依赖已经hack了,这样就必定产生冲突了。
部署还是用专门的部署工具吧。 |
19
caoglish 2013-09-28 08:39:10 +08:00 1
@thenewbie git不是部署工具,它是版本控制工具。当然部署工具的基础之一。
你要研究PHP部署,可以从phing开始看起,这个比较简单。它是build和部署工具,现在还比较流行,类似javascript的grunt和java的ant。 当然更高级的是持续集成系统(CI),当然这个用来作为测试部署的,一般不是用来作为最终的部署,但是可以大大减少部署的压力。 |
20
caoglish 2013-09-28 09:01:51 +08:00 2
@thenewbie 我之前也是用git部署的,但是git部署有个很大的问题,就是下载的是开发版本,所以很多配置和很多调整,还有很多删除。每次git部署后的调整可能会很麻烦。而且必须保留一份git的文件夹在正式版的文件夹内。
所以我现在是先在最终部署好后,git保存所有部署的设置文档(新建一个独立的文件夹来保存),然后用phing进行build,一般就是 1.先下载git, 2.复制需要的文件, 3.copy最终部署好的设置 4.删除不必要的文件(log,unit test,还有本地git的folder) (phing可以设置更多的步骤,比如对javascipt和css进行压缩,测试,上传ftp等等) build后的package有了之后(还在本地),我一般会用sync软件(freefilesync)和正式版本比较,尽量只sync不一样的文件。用sync软件部署的好处是,不会破坏正式版本产生的一些文件(如log文件)。 其实phing也可以吧sync这个步骤包含在里面,只是最终部署的时候谨慎一点比较好。如果是持续集成测试的话,就一定要吧sync步骤放在phing里面,要不然就不是自动化测试了 |