正确部署用 Laravel 4 写的程序的方法是? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
thenewbie
V2EX    PHP

正确部署用 Laravel 4 写的程序的方法是?

  •  
  •   thenewbie 2013-08-28 18:07:25 +08:00 7868 次点击
    这是一个创建于 4427 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是应该:在生产环境的上安装 composer,用 composer 安装 Laravel 4 ,然后把写的代码放上去?
    还是说有什么 “打包” 的方式么?

    有没有一些简单的方式... 比如,类似用 Codeigniter 框架时,直接复制粘贴上去就能跑...
    21 条回复    2014-12-07 20:33:57 +08:00
    haiyang416
        1
    haiyang416  
       2013-08-28 18:14:28 +08:00 via Android   1
    你可以在本地安装好,然后打包复制提交到服务器,服务器就不用装composer。
    thenewbie
        2
    thenewbie  
    OP
       2013-08-28 18:24:04 +08:00
    @haiyang416 原来也是直接复制粘贴就好啊~ thx
    PS: 第一次接触 Laravel 4 和 composer 什么的... 总担心会不会出问题... >_<
    KiseXu
        3
    KiseXu  
       2013-08-28 18:38:19 +08:00   1
    从某种意义上说composer就是个下载软件,把各种包下载到vendor文件夹中,下载完后直接把所有文件上传到服务器上是可以运行的啊
    PrideChung
        4
    PrideChung  
       2013-08-28 18:42:30 +08:00   1
    直接用FTP上传整个网站目录是可以,但是就失去了使用composer做包管理的好处了,例如区分开发和生产环境启用的包。
    比较好的做法是把composer生成的vendor目录加入.gitignore,通过git来部署到服务器,在服务器跑composer install。
    再正式一点的话可以用Mina之类的部署工具。
    thenewbie
        5
    thenewbie  
    OP
       2013-08-28 19:06:49 +08:00
    @PrideChung 这个看起来好赞~
    holystrike
        6
    holystrike  
       2013-08-28 19:27:13 +08:00   1
    自己另写一个安装脚本,把composer安装vendor的指令放进去,用自己的脚本来安装
    thenewbie
        7
     
    OP
       2013-08-28 19:33:18 +08:00
    @holystrike 这个... 自己写个装,和直接用 composer 装... 有什么不同么...
    run2
        8
    run2  
       2013-08-28 19:50:28 +08:00   1
    用 composer 装:服务器下载快啊,比直接上传方便很多啊
    thenewbie
        9
    thenewbie  
    OP
       2013-08-28 19:55:02 +08:00
    @sobigfish 会不会有什么安全方面的设置需要注意呢?
    holystrike
        10
    holystrike  
       2013-08-29 12:54:56 +08:00   1
    没什么大的区别,无非就是加点其他的指令进去,比如设置目录权限、清空缓存、备份之类的,这就看你的习惯了。
    也可以用 Composer 的 script 这项配置来加载执行vendor安装、更新完后的其他指令,效果差不多
    holystrike
        11
    holystrike  
       2013-08-29 12:56:05 +08:00   1
    接上,
    区别就是,composer 的 script 是让你写php,自己写脚本那就直接shell语句了
    brikhoff
        12
    brikhoff  
       2013-08-29 13:41:00 +08:00   1
    @PrideChung 那岂不是要在服务器上面装git?
    darkyoung
        13
    darkyoung  
       2013-08-29 13:44:26 +08:00   1
    用git同步上去,composer install/update
    PrideChung
        14
    PrideChung  
       2013-08-29 15:54:32 +08:00   2
    @brikhoff 服务器不用装git,开发机在repo上面git add remote,通过SSH指定服务器上的一个目录就行。
    hizhou
        15
    hizhou  
       2013-08-30 10:40:51 +08:00   1
    composer 是包依赖管理软件,开发时才用到。和部署,没啥关系。
    chuck911
        16
    chuck911  
       2013-09-06 22:12:56 +08:00   1
    vendor里面的代码的确可以一起推上服务器去,只是显得稍傻。vendor里面的代码都是第三方的,下载了又上传...
    参考 https://github.com/andrew13/Laravel-4-Bootstrap-Starter-Site
    /vendor文件夹都直接写在.gitignore里了
    caoglish
        17
    caoglish  
       2013-09-27 21:57:55 +08:00   1
    个人感觉用composer部署很危险,因为composer可能已经吧依赖更新了,而你自己的程序因为某些关系,吧依赖已经hack了,这样就必定产生冲突了。

    部署还是用专门的部署工具吧。
    thenewbie
        18
    thenewbie  
    OP
       2013-09-27 22:57:36 +08:00
    @caoglish 专门的部署工具 ... 是指git之类?
    caoglish
        19
    caoglish  
       2013-09-28 08:39:10 +08:00   1
    @thenewbie git不是部署工具,它是版本控制工具。当然部署工具的基础之一。

    你要研究PHP部署,可以从phing开始看起,这个比较简单。它是build和部署工具,现在还比较流行,类似Javascript的grunt和java的ant。

    当然更高级的是持续集成系统(CI),当然这个用来作为测试部署的,一般不是用来作为最终的部署,但是可以大大减少部署的压力。
    caoglish
        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里面,要不然就不是自动化测试了
    joyce95
        21
    joyce95  
       2014-12-07 20:33:57 +08:00
    @thenewbie 我现在也遇到了相同的问题,想把laravel框架应用部署到新浪云平台上可以不知道该怎么部署,,请问前辈有没有什么解决办法啊~上面那些也没咋看懂。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     982 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 23:04 PVG 07:04 LAX 16:04 JFK 19:04
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86