【问题标题】:How to debug a site move, for a PHP5/MySQL web application如何为 PHP5/MySQL Web 应用程序调试站点移动
【发布时间】:2016-10-29 17:56:54
【问题描述】:

多年来,我一直在自己的服务器上运行 PHP 站点。我最近购买了一个专用服务器包,并试图将我的站点移至专用服务器。我最近升级到 PHP 5,我当前的服务器运行的是 PHP 5.6.16。我移动了文件和数据库,并将其放在实时测试域中,但该站点在新的专用服务器上无法正常运行。几个关键脚本不起作用。我确保专用服务器运行的是 5.6 版本。我已将其配置为与旧服务器上相同的设置。我可以看到该站点正在与 MySQL 数据库通信。我打开了错误报告,我没有看到任何重大错误表明为什么这些重要的脚本现在不起作用。我确保包含路径在那里,如果它不是什么都行。我在看什么?一台服务器和另一台服务器之间有什么不同可能会影响 PHP 功能?我基本上在这里无所适从,所以如果这些看起来很愚蠢,请原谅我,但我不知道下一步该往哪里看。

【问题讨论】:

  • 有什么错误?
  • 听起来您需要聘请顾问。这不是编程问题。我有点担心更新到 PHP 5 需要 12 年时间,如果您运行自己的服务器,那么势在必行您必须保持补丁和最新状态。

标签: php mysql server system-administration


【解决方案1】:

从基础开始。

  • 您的网络服务器是否响应静态页面请求?
  • 您的 Web 服务器是否配置为使用 PHP?
  • 您的 Web 服务器可以执行和/或连接到 PHP 吗?
  • 如果您有一个包含<?php phpinfo(); 的简单脚本,它可以工作吗?
  • phpinfo() 输出中是否包含所有预期的模块?
  • 您是否有需要重新配置的重写规则? (检查您的网络服务器错误日志。检查您的响应状态代码。)

假设 PHP 一切正常,进入您的应用程序。

  • 您确定错误日志记录已开启吗? (再次检查phpinfo() 输出。尝试强制出错,可能是语法错误或其他什么,看看您是否看到错误。)
  • 您如何知道您的应用程序正在连接到 MySQL?
  • 从一个基本的脚本开始,它只是回应一些事情。
  • 注释掉大量代码,看看是否可以通过这种方式缩小问题范围,并在执行过程中重新启用代码块。 (你想把问题分成两半,一分为二,一分为二,直到你弄清楚到底是什么问题。)

需要检查的其他系统级事项...

一旦你找出问题,一些建议:

  • 经常做这种事情。编写一个配置脚本,通过一个命令为自己构建一台新机器,并定期执行此操作。如今,有了云提供商(无论是否有物理硬件),您没有理由不能定期清理您的应用程序服务器并重新配置它们。考虑将此作为您的系统升级策略。 (当您可以拥有一个带有新内核和其他补丁的全新服务器时,为什么要重新启动以获得新内核?)
  • 确保您的开发环境与您的生产环境紧密匹配。 (请考虑 Vagrant。)
  • 您正在使用版本控制,对吗?如果没有,请开始使用版本控制,这样您就可以针对此类事情修改您的代码,并在完成后轻松回滚。

【讨论】:

  • 谢谢你,布拉德。你确实给了我一些工作要做。我知道有一个 MySQL 连接,因为有几十个脚本成功查询数据库。我会看看模块、权限和磁盘空间。
  • @DRice 你怎么知道有几十个脚本成功查询数据库?
  • 因为我已经测试过了。这个站点非常大——我有数百页的脚本,从论坛到主页。我浏览了网站的大部分内容,并测试了功能,包括使用搜索功能生成结果。
  • @DRice 那么,您的网站是否有效?这完全改变了你问题的背景。在这种情况下,您可能只是在某些地方使用了一些不推荐使用的代码。再次,双重/三重检查您的错误记录。
  • 对,但我在这两种情况下都使用 PHP 5。在旧服务器上是 PHP 5.6.16,在新服务器上是 5.6.31。但是,当我第一次设置新服务器时,它使用的是旧版本的 PHP - 5.4.16。我将它升级到 5.6.31 以解决问题,但它没有。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多