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

hog*_*i89 1 php debugging

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

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

oct*_*ern 5

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

一旦您拥有本地开发服务器,请查看此问题以获取具有单步调试功能的调试器列表,并查看此问题以获取不同平台上可用的 IDE 的更大列表。

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

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

ini_set("display_errors","1");
error_reporting(E-ALL);
Run Code Online (Sandbox Code Playgroud)

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

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