Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 将CakePHP web应用部署到共享主机的最佳选择_Git_Svn_Cakephp_Deployment_Shared Hosting - Fatal编程技术网

Git 将CakePHP web应用部署到共享主机的最佳选择

Git 将CakePHP web应用部署到共享主机的最佳选择,git,svn,cakephp,deployment,shared-hosting,Git,Svn,Cakephp,Deployment,Shared Hosting,我总是在Coda或类似的网站上通过FTP连接实时编辑代码,但是我刚刚为用户注册等编写了第一个PHP web应用程序,我非常担心我需要一个比“实时编辑”更好的计划。我使用共享主机,所以我认为像SVN和GIT这样的东西可能已经过时了,但是否有任何软件/脚本/解决方案允许我将代码实时推送到web服务器,并将主副本放在Mac上 人们对web应用程序/部署和共享主机有什么体验?我使用了我编写的cakephp shell工具,它使用“rsynch”,只上传增量(到目前为止所做的更改)。 有了这样一个rsyn

我总是在Coda或类似的网站上通过FTP连接实时编辑代码,但是我刚刚为用户注册等编写了第一个PHP web应用程序,我非常担心我需要一个比“实时编辑”更好的计划。我使用共享主机,所以我认为像SVN和GIT这样的东西可能已经过时了,但是否有任何软件/脚本/解决方案允许我将代码实时推送到web服务器,并将主副本放在Mac上


人们对web应用程序/部署和共享主机有什么体验?

我使用了我编写的cakephp shell工具,它使用“rsynch”,只上传增量(到目前为止所做的更改)。 有了这样一个rsync脚本,可以快速上传更改过的文件。只需1-2秒

对于另一个项目,我必须提交所有内容并始终手动“svn更新”服务器。非常烦人+你甚至需要提交“测试阶段”

所以我还是建议使用上面的delta上传。 确保不上传任何tmp内容,甚至更糟糕的是,覆盖基于环境的文件,如上传、缓存文件等。 使用诸如rsynch之类的批处理脚本,通常可以排除某些目录

例如,我的配置是

server      xxx
username    xxx
password    xxx
local       C:\...\app\
remote      /var/www/site
protocol    ftp
permissions ignore
state       timesize
exclude     _*
exclude     *__*
exclude     *~*
exclude     .svn
exclude     .git
exclude     /tmp
exclude     /files/uploads/*
exclude     /webroot/files/tmp
exclude     /webroot/img/content/*

我使用我编写的cakephp shell工具,它使用“rsynch”,只上传增量(到目前为止所做的更改)。 有了这样一个rsync脚本,可以快速上传更改过的文件。只需1-2秒

对于另一个项目,我必须提交所有内容并始终手动“svn更新”服务器。非常烦人+你甚至需要提交“测试阶段”

所以我还是建议使用上面的delta上传。 确保不上传任何tmp内容,甚至更糟糕的是,覆盖基于环境的文件,如上传、缓存文件等。 使用诸如rsynch之类的批处理脚本,通常可以排除某些目录

例如,我的配置是

server      xxx
username    xxx
password    xxx
local       C:\...\app\
remote      /var/www/site
protocol    ftp
permissions ignore
state       timesize
exclude     _*
exclude     *__*
exclude     *~*
exclude     .svn
exclude     .git
exclude     /tmp
exclude     /files/uploads/*
exclude     /webroot/files/tmp
exclude     /webroot/img/content/*

我编写了自己的部署系统,以避免在live上进行编辑

它分不同阶段运行-它们是:

  • 从本地存储库导出SVN(这意味着您无法加载.SVN目录)
  • rsync将代码导出到live server,但处于--干运行模式,这样您就可以看到live的实际运行情况。此命令上有一些排除项:--exclude app/tmp
  • 正常模式下的rsync
  • 我放了一些额外的东西

    • 因为我在负载平衡器后面的多个web服务器上运行代码,所以我排除了core.php和database.php。然后,我将每个web服务器上的这些文件符号链接到一个可集中访问的NFS
    • rsync-to-live运行,但它只上传一次(到NFS)。然后,部署脚本在远程服务器上运行命令(通过ssh)启动NFS和web服务器之间的rsync。这是一个bash脚本,意味着我可以轻松地管理web节点以及文件如何被推出

    希望有帮助

    我编写了自己的部署系统,以避免在live上进行编辑

    它分不同阶段运行-它们是:

  • 从本地存储库导出SVN(这意味着您无法加载.SVN目录)
  • rsync将代码导出到live server,但处于--干运行模式,这样您就可以看到live的实际运行情况。此命令上有一些排除项:--exclude app/tmp
  • 正常模式下的rsync
  • 我放了一些额外的东西

    • 因为我在负载平衡器后面的多个web服务器上运行代码,所以我排除了core.php和database.php。然后,我将每个web服务器上的这些文件符号链接到一个可集中访问的NFS
    • rsync-to-live运行,但它只上传一次(到NFS)。然后,部署脚本在远程服务器上运行命令(通过ssh)启动NFS和web服务器之间的rsync。这是一个bash脚本,意味着我可以轻松地管理web节点以及文件如何被推出
    希望有帮助