Git 将CakePHP web应用部署到共享主机的最佳选择
我总是在Coda或类似的网站上通过FTP连接实时编辑代码,但是我刚刚为用户注册等编写了第一个PHP web应用程序,我非常担心我需要一个比“实时编辑”更好的计划。我使用共享主机,所以我认为像SVN和GIT这样的东西可能已经过时了,但是否有任何软件/脚本/解决方案允许我将代码实时推送到web服务器,并将主副本放在Mac上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
人们对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上进行编辑 它分不同阶段运行-它们是:
- 因为我在负载平衡器后面的多个web服务器上运行代码,所以我排除了core.php和database.php。然后,我将每个web服务器上的这些文件符号链接到一个可集中访问的NFS
- rsync-to-live运行,但它只上传一次(到NFS)。然后,部署脚本在远程服务器上运行命令(通过ssh)启动NFS和web服务器之间的rsync。这是一个bash脚本,意味着我可以轻松地管理web节点以及文件如何被推出
希望有帮助 我编写了自己的部署系统,以避免在live上进行编辑 它分不同阶段运行-它们是:
- 因为我在负载平衡器后面的多个web服务器上运行代码,所以我排除了core.php和database.php。然后,我将每个web服务器上的这些文件符号链接到一个可集中访问的NFS
- rsync-to-live运行,但它只上传一次(到NFS)。然后,部署脚本在远程服务器上运行命令(通过ssh)启动NFS和web服务器之间的rsync。这是一个bash脚本,意味着我可以轻松地管理web节点以及文件如何被推出