我有一个托管服务器(rochenhost.com),我运行一些PHP代码。 在过去,在我开始作为软件开发人员工作之前,我自学了以后打印出变量。
现在经过几年的学习和开发人员工作,在我学会使用调试器之后,我更聪明了:在托管服务器上运行的PHP代码是否有任何好的调试工具?
答案 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。他们将日志消息放在浏览器的控制台日志中。他们节省了我几个小时的调试时间。