更改为实时站点(Codeigniter,但不是特定的)

时间:2011-06-07 17:54:20

标签: php mysql codeigniter

我正在使用Codeigniter,如果这样可以更容易。我想知道一个网站是否有人口密集的数据库和用户访问,我有一个新的想法实现到网站,我该怎么办?你直接在现场工作吗?

或者您将数据库和文件复制到本地服务器(MAMP / WAMP / XAMMP)并在那里进行处理,如果有效则使用更改更新实时站点。对于第二种方法,无论如何都要检查哪些文件已被更改并仅上传了这些文件?如果它在本地服务器上运行,但在更新实时站点后它不起作用怎么办?

Codeigniter配置还具有默认数据库和其他数据库的选项。我想知道这些可以用于测试吗?

3 个答案:

答案 0 :(得分:8)

不要直接在实际网站上工作。相反,拥有一个开发环境(在您的计算机上使用vmware或virtualbox)并克隆实时环境。在版本控制中获取代码(我再说一遍:在版本控制中获取代码),在开发机器上进行开发,在版本控制中对开发分支进行开发。在完成测试并对更改感到满意后,将它们提交到“部署”或“实时”分支,然后从那里部署到实际站点。在推出新代码之前,请务必备份数据库。

修改:使用符号链接在现场网站上展示您的新代码。如果它不起作用,只需将其切换回旧目录即可。为你节省很多钱!

答案 1 :(得分:5)

  1. 阅读版本控制(svn,git,et al。)。
  2. 永远不要在实际网站上工作,最好是在其他服务器上工作(以防止while(1){..}崩溃等),但至少在另一个文档/域上的同一台服务器上工作,最好只能访问您的IP。< / LI>
  3. 通常我只复制表定义(mysqldump -t对此很好),如果你需要最新的&amp;最好的数据,你可以将你的主数据库复制到一个测试数据库,如果你还没有一个,你也可以获得廉价备份的优势。
  4. 我通常在Apache / Vhost配置(SetEnv DEV=1)中设置一个开关,这样在代码中我可以使用if(getenv('DEV')==1)检查我是否可以在错误条件下转储变量,这限制了可能性意外地提交/上传带有“开关开关”的代码意外。

答案 2 :(得分:2)

这个问题的典型答案是在测试环境中工作,而不是生产环境。我同意这通常是处理变更的最佳方式。如果您拥有测试环境的奢侈品,那么请充分利用它。毕竟,这就是它的用途 - 进行测试。

但是,这并不意味着在生产环境中工作是完全禁止的。您的决定应基于以下几个因素:

  • 您网站的运营是否对您的业务需求至关重要?

如果是这样,请在测试环境中完成所有工作,并在完全测试更改后将其部署到实际环境中。

  • 您即将进行的更改是否会对网站的其他部分产生重大影响?

例如,您要更改数据库架构吗?您是否要更改用户登录或退出网站的方式?如果是这样,请在测试环境中完成工作。如果您要更改在其他地方没有任何影响的页面行为,您可以在生产环境中进行更改。

  • 您的更改需要多长时间才能实施?

如果您无法保证更改的时间不会超过15-20分钟,请在测试环境中完成工作。