【问题标题】:Can't locate xdebug.so on linux在 linux 上找不到 xdebug.so
【发布时间】:2017-11-06 01:14:30
【问题描述】:

我在使用 php7 和 Apache2 在 ElementaryOS (Ubuntu 16.04.2) 上运行 xdebug 时遇到了一些问题。

我使用sudo apt-get install php-xdebug 安装它。安装没有报告任何错误。我已经添加了

xdebug.remote_enable=1
xdebug.remote_host=127.0.0.1
xdebug.remote_connect_back=1 ; Not safe for production servers
xdebug.remote_port=9000
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_autostart=true

/etc/php/7.0/apache2/php.ini

我还需要添加 xdebug.so 文件位置,例如 zend_extension="/path/to/xdebug.so"。但是,安装后我一直找不到 xdebug.so。

有谁知道 xdebug.so 在哪里,或者说自从 php7.0 发布以来指令发生了变化。大多数说明/帮助似乎都是针对 php5 在线的。

谢谢。

【问题讨论】:

  • 我发现了一个类似的问题。也许它会help
  • 谢谢我找到了,忘记了这篇文章。
  • 我投票结束这个问题,因为这不是一个与编程相关的问题,它应该是unix.stackexchange.com的主题

标签: php ubuntu xdebug


【解决方案1】:

检查 xDebug 是否已安装。

php -m

运行locate xdebug.so

为我返回 /usr/lib/php/20151012/xdebug.so,但 20151012 将来可能会改变。

如果locate 没有返回任何内容或者你刚刚安装了locate,你必须执行sudo updatedb

【讨论】:

  • 如果locate 没有返回任何内容并且您刚刚安装了locate,您必须sudo updatedb
  • 首先安装mlocate,然后才能使用locate。对于 CentO sudo yum -y install mlocate
【解决方案2】:

对于新版本只需添加 xdebug 文件名,例如:

zend_extension=xdebug.so

xdebug.default_enable = 1
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_port=9000
...

如果它不起作用,请使用 Linux find 命令,如下所示:

find / -name "xdebug.so"

这个命令有什么作用?

  • 查找 = 只是查找
  • / = 在 / (all) 内的所有目录中
  • -name "xdebug.so" = 名称等于 xdebug.so

【讨论】:

  • 根据官方 xdebug 安装文档 (xdebug.org/docs/install) 不包括 xdebug.so 的完整路径会导致问题。 注意:我不知道这是否仅适用于使用 PECL 的 xdebug 安装 注意:您应该忽略将“extension=xdebug.so”添加到 php.ini 的任何提示 - 这将导致问题。
【解决方案3】:

使用 phpinfo() 创建一个文件。找到项目 extension_dir。在那里,您将看到 xdebug.so 所在的位置。我的是:

/usr/local/lib/php/extensions/no-debug-non-zts-20170718

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-20
    • 2012-06-29
    • 1970-01-01
    相关资源
    最近更新 更多