在Ubuntu LAMP堆栈上安装xdebug - php

我一直抛出此错误,但是我安装了版本7.1.2。为什么我不能./configure

这是我的错误信息:

checking whether to enable Xdebug support... yes, shared
checking Check for supported PHP versions... configure: error: not supported. 
Need a PHP version >= 7.0.0 and < 7.3.0 (found 5.3.10-1ubuntu3.26)
    root@precise32:/var/www/xdebug# php -v
    PHP 7.1.2-3+deb.sury.org~precise+1 (cli) (built: Feb 22 2017 10:29:40) ( NTS )
    Copyright (c) 1997-2017 The PHP Group
    Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
        with Zend OPcache v7.1.2-3+deb.sury.org~precise+1, Copyright (c) 1999-2017, by Zend Technologies
    root@precise32:/var/www/xdebug# 

有没有其他人遇到这个问题。我试过重新安装php 7.0和其他一些策略。通读一堆类似的不同堆栈问题,但我无法弄清楚。

这意味着我无法继续:make

make install

cp modules/xdebug.so /etc/php.d/xdebug.so

参考方案

您正在使用OndřejSurý的PPA。因此,您可以使用apt-get install php7.1-xdebug轻松安装xdebug。

编辑:如何配置Xdebug(在基于Ubuntu的Linux系统上):

创建一个ini文件/etc/php/7.1/mods-available/custom.ini,并将以下配置放入其中:

; priority=90
[xdebug]
xdebug.remote_enable=1
; replace <Host-IP-Address> with the IP of your host system!
xdebug.remote_host=<Host-IP-Address>
; You'll need this later.
xdebug.idekey=PHPSTORM
xdebug.profiler_enable_trigger=1

现在,使用命令sudo phpenmod -v 7.1 -s ALL custom激活配置。不要忘记重新启动您的Web服务器。

其次,您需要一个支持dbgp协议的IDE。我使用的是PhpStorm,它运行速度很快(甚至可以运行数小时),并且具有本地Xdebug支持。

设置好IDE并在代码中设置至少一个断点后,可以非常简单地触发调试器:

第一个选项:添加查询参数XDEBUG_SESSION_START=PHPSTORM(其中PHPSTORM是配置文件中xdebug.idekey设置的值)。

第二个选择:随您的请求发送内容为XDEBUG_SESSION=PHPSTORM的cookie。 cURL示例:curl -H 'Cookie: XDEBUBG_SESSION=PHPSTORM' http://my-awesome.domain/awesome-script.php

如果设置正确,则可以使用Xdebug。

Xdebug-Documentation
PhpStorm-Configuring Xdebug
PhpStorm-Zero-configuration Web Application Debugging with Xdebug and PhpStorm

最后但并非最不重要的一点,是一些不错的Xdebug设置:

; enable colors for the command-line interface
xdebug.cli_color=1

; show more data when using var_dump
xdebug.max_nesting_level=500
xdebug.var_display_max_children=512
xdebug.var_display_max_data=2560
xdebug.var_display_max_depth=200

; enable trigger for easy profiling
xdebug.profiler_enable_trigger=1

进行良好的调试:)

PHP-将日期插入日期时间字段 - php

我已在数据库中使用datetime字段存储日期,使用PHP将“今天的日期”插入该字段的正确方法是什么?干杯, 参考方案 我认为您可以使用php date()函数

PHP-如何获取类的成员函数列表? - php

如果我知道班级的名字。有没有办法知道类的成员函数列表? 参考方案 get_class_methods()是你的朋友

PHP-我们应在会话中包含哪些数据? - php

这是一个初学者的问题...在网站中,会话中应该包含或不应该包含什么类型的数据?我了解我不应该包含任何需要保持安全的信息。我对编程最佳实践更感兴趣。例如,有可能在会话中包括一些数据,否则这些数据将作为依赖项注入从一个页面发送到另一个页面。这不等于创建全局变量吗?一般来说,哪种数据在会话表中已经存在或没有?谢谢,JDelage 参考方案 您应该将会话视为一次写入…

php ziparchive类源代码 - php

Improve this question 我如何获取ziparchive类本身的源代码。 参考方案 假设您在谈论PHP ZipArchive class:下载PHP source code并查找适当的文件。如果您希望源代码是PHP代码,您可能会感到失望,因为源代码是用C语言编写的。或者,也可以在PHP Github Development Reposito…

PHP getallheaders替代 - php

我正在尝试从服务器上的apache切换到nginx。唯一的问题是我在PHP脚本中使用的getallheaders()函数,该函数不适用于Nginx。我已经尝试过用户在getallheaders函数上的php站点上提供的注释,但这并不返回所有请求标头。请告诉我如何解决这个问题。我真的想切换到Nginx。 参考方案 您仍然可以使用它,但是您必须像这里一样重新定义…