CodeIgniter:开发和生产环境

6 php version-control frameworks codeigniter

我目前正在学习CodeIgniter PHP框架.目前,我正在寻找DEV环境和PRODUCTION环境.来自纯粹的C和JAVA背景,我习惯在本地拥有所有东西(带版本控制),但由于我将在网站上有PRODUCTION方面,我想知道几件不同的事情:

  1. 将DEV环境置于本地更好吗?
  2. 在DEV端进行更改以使其进入PRODUCTION端时(假设DEV env是本地的),这将是一种好的(和简单的)方式?
  3. 是否有可能(如果是这样,如何?)设置CodeIgniter以在同一代码空间中具有DEV&PROD环境(比如在服务器上但具有不同的数据库表)?
  4. 在我将在Framework中创建的应用程序上使用Version Control时,是否建议只为我的应用程序创建文件,或者添加整个Framework(以保持代码与Framework的版本一致)?

我很感激您提前提出的任何想法或建议.

谢谢!

Pas*_*TIN 8

我不使用CodeIgniter,所以我可能无法回答你的所有问题; 但是,仍然,这里有一些指示:

  • 开发环境:我喜欢每个开发人员拥有自己的环境; 当它在他的机器上时,它通常更容易/更快
    • 但是,如果您的开发机器正在运行Windows,并且您的生产服务器将运行Linux,则可能会带来一些问题(这两者之间存在一些差异,例如文件名中的区分大小写)
    • 在这种情况下,如果你有一个足够强大的计算机,使用VMWare或VirtualBox运行一个极简主义的虚拟机(Linux + Apache + PHP + MySQL就可以了;代码源也在它上面,通过samba共享导出)可能是一个很好的解决方案 - 这就是我半年多来所做的事情,而且效果非常好
  • 推动从dev到prod的变化:
    • 一种解决方案是登录生产服务器并执行"svn update"; 但我真的不喜欢(如果某些文件已直接在生产服务器上修改 - 是的,有时会发生这种情况),您可能会遇到冲突等; 这绝对不是很有趣,因为它可能会打破网站^^
    • 一个解决方案我更喜欢(需要更多的时间来部署,但如果你只部署,比方说,每周一次,它是相当好的 - 并且绝对更安全)是在其中一台开发机器上使用"svn export",创建一个tar/zip /无论存档,并将其上传到prod服务器.然后,将其解压缩到新目录; 完成后,您可以更改符号链接以将根目录指向该新目录.好的方面是:你保留了生产服务器上的旧资源,如果你部署的内容存在灾难性的问题,你只需要一个符号链接就可以改回以恢复到以前的版本 - 这有时可以节省一天的时间^ ^
    • 哦,并且,作为一个旁注:你应该编写一个脚本来自动为你做这件事:它会避免在手动操作时弄乱一天的步骤(并且会帮助那个总是这样做的那一天假期^^)
  • 关于在两个环境中使用一个源实例:即使您计划仅为框架执行此操作,我也不建议这样做:
    • 它意味着在同一台机器上使用dev和prod,这很糟糕:如果仍然在开发脚本中的某些人变得疯狂并做坏事怎么办?如果一个开发人员在错误的目录中键入了一些"rm -Rf"的kinf怎么办?
    • 你考虑过不同的数据库表(我宁愿选择不同的数据库;不同的用户,以避免任何人在错误的数据库上做任何错误的请求!),但这不是唯一的事情:临时文件怎么样?缓存,例如?
    • 我真的更喜欢完全分开的实例; 即使它意味着在机器上有两次源/框架 - 我真的建议有两台不同的机器!
  • 关于在SVN上建立框架:
    • 你在SVN上拥有的东西越多,最简单的方法就是建立一个新的开发环境:理想情况下,只需要一个"svn checkout",并为刚刚加入你团队的新开发者提供一个新的环境; 再加上Virtal Machine,你可以给他(从另一台机器上复制),你可以让开发人员准备好在几十分钟内完成你的项目 - 这很好;-)
    • 仍然,在SVN中使用Framework是一个PITA来更新它:你必须删除它,替换它,重新提交它,...
    • 使用svn:externals (如果你可以 - 取决于你的设置/你的框架),指向框架的SVN服务器本身,总是最新的可能是一件好事(不一定指向HEAD;使用标签或者一个分支可能对你来说足够好).

希望这几个笔记有所帮助......
玩得开心!