我正在尝试在 AWS 云中的远程服务器上安装 Xdebug 以进行分析。我安装了 Xdebug 我使用 phpinfo() 检查并保留了一些设置以在服务器上启用分析选项,我验证它已启用。
我将 pro filer 的输出日志保存在远程服务器上的目录中。现在我想使用 Kcachedgrind 打开这些文件。所以我安装了 Kcachesgrind。
我在 PHP.ini 文件中使用的设置如下。
zend_extension="/opt/lampp/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so"
xdebug.profiler_output_dir = "/opt/lampp/htdocs/profiler/logs"
xdebug.profile_output_name = cachegrind.out.%t-%s
xdebug.remote_enable=On
xdebug.remote_host="ip-10-125-11-57"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.show_local_vars=On
xdebug.collect_return=On
xdebug.collect_params=4
xdebug.profiler_enable=On
xdebug.profiler_enable_trigger=1
在上述设置中,您可以看到名为 xdebug.remote_host 的文件,通常它是本地主机,但我在远程服务器中,所以我将服务器的主机名保留在那里。当我尝试使用 Kcachegrind 打开文件时出现以下错误。
Kcachegrind: Can't connect to X server
最佳答案
你基本上有两个明智的选择:
我强烈建议选项1。
请注意,Kcachegrind 是一个带有 GUI(图形用户界面)的程序,意思是:它有窗口和按钮之类的东西。您的远程服务器通常不需要任何 GUI 软件,因此不支持安装的窗口和按钮以及类似的东西(没有 X 服务器、没有 KDE 等)。虽然 TeTeT 解决方案在理论上是可行的,但请不要在远程服务器上安装 X 并通过 vnc 连接。它很慢,会占用大量的硬盘空间和内存,对于初学者来说是一个陡峭的学习曲线。
关于php - 在远程服务器上安装 Xdebug 以进行分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16891349/