在托管服务器上调试PHP代码

时间:2012-04-19 11:14:06

标签: php debugging

我有一个托管服务器(rochenhost.com),我运行一些PHP代码。 在过去,在我开始作为软件开发人员工作之前,我自学了以后打印出变量。

现在经过几年的学习和开发人员工作,在我学会使用调试器之后,我更聪明了:在托管服务器上运行的PHP代码是否有任何好的调试工具?

2 个答案:

答案 0 :(得分:4)

您正在生产服务器上直接处理“托管代码”吗?或者你有两个独立的代码库,一个用于开发(调试等),另一个用于生产(显示给你的实际用户)?您可能知道,直接在生产服务器上更改代码有点疯狂,几乎可以保证偶尔会降低您的网站或创建安全漏洞。所以我最大的建议是获取本地开发服务器。这可以像为您的计算机下载适当的XAMP堆栈一样简单,并在调试后使用您喜欢的VCS将文件与生产服务器同步。

拥有本地开发服务器后,请查看this question以获取具有步进功能的调试器列表,并查看this one以获取不同平台上可用的更大IDE列表。

如果您在远程服务器上调试代码时遇到困难,以下是其他一些可以提供帮助的实践。你可能已经在做了。

1)打开错误输出。您可以通过在开头插入以下行来为特定脚本执行此操作:

ini_set("display_errors","1");
error_reporting(E-ALL);

这将向页面打印(有时)信息性错误消息。将此信息公开给访问者被认为是一个主要的安全风险,因此请确保在完成测试后删除这些行。如果您有本地开发服务器或外部无法访问的服务器,则可以通过向php.ini添加行display errors = 1来打开所有页面的错误报告。

2)找到服务器的PHP错误日志。这通常包含有关页面死亡原因的信息,即使您无法为PHP加载足够的页面以显示错误消息。您还可以使用命令error_log('your message here')将消息打印到日志,这在您不能仅在页面上转储信息时非常有用。

答案 1 :(得分:3)

我使用适用于FireFox的FirePHP扩展程序和适用于Chrome的ChromePhp。他们将日志消息放在浏览器的控制台日志中。他们节省了我几个小时的调试时间。