我从事过几个 PHP 项目,但在组织工作时总是遇到问题。您在哪里开发您的应用程序 - 在本地主机、远程服务器或生产服务器上(!)?当我在创建一些主要路径后在本地主机上工作时,我通过 ftp 发送新文件 - 但有时它碰巧忘记了一个文件,浏览多个方向以复制更改的文件只是很累。您提出了哪些最佳实践?
6 回答
这是我们管理商业网站的方式:
- 在本地沙盒中开发
- 签到 SVN
- 从 SVN 到内部开发服务器的自动构建/测试
- 使用 rsync 脚本化部署到 QA/UAT 的登台服务器
- 脚本化部署到生产服务器上。
暂存和生产服务器都由 ISP 托管,硬件和版本匹配并运行 RHEL,内部开发服务器与 CentOS 版本匹配。
这样,当代码到达生产服务器时,不应该有任何令人讨厌的意外,因为即使部署脚本在第 4 阶段也得到检查。
Google App Engine有一个合适的工具,可以自动将修改后的文件上传到生产环境;不知道PHP是否有类似的东西。因此,执行 dev2prod 脚本(自动执行此操作的脚本)应该是一个很好的解决方案。
做本地源文件管理,大家可能会建议你使用源代码控制系统。
我正在一台开发机器上进行开发,该机器具有与生产环境相同的环境 - 由于不同的版本或配置,它可以防止一些不同的行为。完成后,我只是将所有文件移到生产服务器上。
Winmerge是一个不错的免费 Windows 工具,用于在开发机器和生产机器之间区分文件。
在本地机器上使用与开发环境相同的配置(即 apache mods、php 扩展等)进行开发,使用版本控制系统(我更喜欢 SVN)来跟踪修改过的文件等等。
然后,您可以在生产或测试环境中编写脚本,将存储库中的文件复制/更新到 Web 服务器路径。
可能会因为重定向旧帖子而被告知,但这是我使用免费工具的方法:
我使用 Netbeans、Git、bitbucket、源代码树、gitflow 和 FTPloy。
Bitbucket.com:注册免费帐户。SourceTree:从 bitbucket 中免费。管理 git 存储库的好工具。所有的提交、合并和拉取都可以在这里完成。可以跟踪 bitbucket 中的问题。
在 sourcetree 中,选择 master 分支并单击“git flow” - google gitflow - 这是功能、修补程序、开发和发布分支的出色工作流程,并且 sourcetree 有助于自动化该过程。
FTPloy.com 自动部署您的主分支。免费是一个存储库/服务器。但如果您想将开发分支推送到服务器沙箱进行测试,则值得升级。
希望这对搜索网络的人有所帮助!
这是我自己的 PHP 开发生命周期。
- 在 Github 或 Bitbucket 上创建 GIT 私有存储库。
- 将 GIT 与 cPanel 连接。(将更改提交到 repo 以及生产服务器非常容易)。
- 使用 Visual Studio Code 或 Sublime Text 在 Localhost(可能在 Windows 上的 Xampp)上开发
- 初始化 GIT 并连接到私有存储库。
- 将更改推送到 GIT 存储库(主/分支) - 主更改将自动上传到生产服务器。