use*_*836 12 php testing environment web
我想为我用PHP编写的新网站设置两个环境.一 - 开发新版本并测试它们.第二次生产我的实际稳定版本的网站将可用.
PHP中的网站将包含许多PHP和其他文件(JS,图像等).所以我认为如何以最佳方式准备这个环境,以便轻松地进行源代码控制,从开发环境快速复制网站到生产环境,并为网络上的人们提供开发版本,这样他们就能看到实际的工作进度并建议更改或报告错误.
能否请您从这个起点向我提出一些建议?是否有关于此的书籍(从实际角度来看?)或者您是否有经验或提示需要注意哪些内容以及使这一过程变得轻松有益于我和其他参与开发新项目的人员的重要性?
ale*_*emb 13
首先使用以下三个:
SVN - 这将为您提供源代码控制并允许您跟踪更改.您可能希望在此基础上获得GUI(Tortoise是一种流行的)以简化学习曲线.
RSYNC - 这将允许您使用单个命令简化本地和远程站点之间的同步.RSYNC使用diff引擎进行同步,这意味着增量同步只需几秒钟即可完成.在激烈的编程过程中,我有时会在一小时内同步4-5次,因为我很容易就能快速推出一些变化.
MySQLDump - 这将允许您从生产站点导入/导出数据.我通常每周都会这样做一次,以便在我的本地服务器上获取生产数据,这不仅可以为我提供本地备份,还可以让我在本地测试环境中使用生产数据.
从长远来看,这三个人将为您节省大量时间,并允许您扩展.稍后,您可以查看自动构建工具,单元测试框架,xml文档框架等,以构建一些严肃的产品.
我使用这样的设置,所以我可以给你一些如何做到这一点的提示.我已经做了有一段时间了,在这里和那里工作了扭结,并觉得这是一个设置,我可以诚实地说,是相当不错的成效.
小记:我在OSX工作,所以如果你是一个Linux/Windows的用户所使用的特定应用程序可能会从你有点不同.
我开了一家生产"服务器"在我的Mac,使用甲基苯丙胺(www.mamp.info)轻松与PHP和MySQL的Apache服务器提供了我.您可以使用类似的工具,如XAMPP或手动安装所有内容,这完全取决于您.
然后我有我的实时服务器,我的网站和客户网站都托管在那里.对于每一个新的网站项目(让我们abc.com为例)我创建了一个名为staging.abc.com子域,关于这一点我做我的测试.在实际上线之前对完全相同的硬件和软件进行测试总是一件好事.
我使用Subversion(或简称,SVN)我的版本需要,具有额外的好处,我可以轻松地添加"钩子"每当我我的新的更新版本发送到SVN服务器自动更新我的在线生产服务器.SVN还允许您轻松地在同一个项目中与多个人合作.有关SVN的详细信息,以及如何使用它,我建议伟大的(而且免费)在线图书在这里找到:http://svnbook.red-bean.com/
简而言之:我在MAMP本地工作,为我提供了一个本地"工作"服务器.之后,我在staging.abc.com位置进行在线测试,看看是否一切正常,并且可能允许其他人看到项目(例如,如果您希望客户看到正在发生的事情),之后我实际上通过将项目放在实际域上来发布项目.
还有很多事情可以用来优化您的工作流程,但这应该可以帮助您入门.
希望这可以帮助!
戴夫
如果可能的话,我更喜欢在开发人员本地进行开发。如果涉及其他开发人员,您可能希望设置版本控制,以便数据库架构、javascript、css 和 php 代码都可以很容易地在开发人员的个人盒子上检出和设置(假设他们有正确的 LAMP/ WAMP 设置)
我还看到人们在进行积极开发的服务器上维护一个测试网站。对于主动开发,我会避免这种情况,但将其用于最新签入代码(最新版本)的黑盒测试。
一旦您的测试网站签出,就可以将代码从版本控制导出到实时网站所在的位置。使用 svn,您实际上可以使用 svn update 指定指示当前实时版本的修订或标记来更新实时代码。
我还建议将一些设置(例如数据库访问/用户名/密码)保留在不受版本控制的单独包含文件中。将其保留在其他地方,让开发人员在其 PC 上插入对本地数据库的访问权限。在您的服务器上,插入访问数据库所需的一切。这应该是非常简单的代码(定义了一些变量),因此不进行版本控制应该不是什么大问题。如果您愿意,您可以对模板版本进行版本控制,但我不会将真实的数据库信息放入版本控制中。