【问题标题】:Problems installing xdebug.so extension on local AMP environment在本地 AMP 环境中安装 xdebug.so 扩展时出现问题
【发布时间】:2016-01-15 10:13:38
【问题描述】:

编辑:我现在删除了 xdebug.so 我手动安装的版本,并通过 Homebrew 安装了 XDebug。当我在命令行输入“php -i”时,xdebug 似乎已安装;但是当我运行 phpinfo() 时,仍然没有 XDebug 的迹象。

我刚买了一台新 Mac,所以每次购买新 Mac 时,我都会重建我的本地 Web 开发环境(这一次,遵循一个很棒的教程:https://echo.co/blog/os-x-1010-yosemite-local-development-environment-apache-php-and-mysql-homebrew

在我开始安装 XDebug 扩展之前,一切都很顺利。我使用 Komodo 作为开发环境,所以就像我过去一直做的那样,我按照这里的说明进行操作:http://docs.activestate.com/komodo/7.1/debugphp.html#debugphp_top

我按照信中的说明进行操作,但无法让 xdebug.so 出现在我的 phpinfo.php() 页面中。这是我所做的:

  1. 创建了一个 phpinfo.php 文件,以便我可以找到正确的 php.ini 文件
  2. 查看那个phpinfo.php文件,发现“加载的配置文件”是“/usr/local/etc/php/5.6/php.ini”
  3. 编辑了 php.ini,在文件底部添加以下行:

_

zend_extension=/usr/local/Cellar/php56/5.6.14/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_mode=req
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.idekey=<idekey>
; You may also want this - to always start a remote debugging     connection.
;xdebug.remote_autostart=1
  1. 运行“brew services restart httpd22”(为了确定,“sudo apachectl restart”)

当我重新加载 phpinfo.php 时,它包含对 xdebug.so 的引用。

我可以确认 xdebug.so 存在于 /usr/local/Cellar/php56/5.6.14/lib/php/extensions/no-debug-non-zts-20131226 并且 /usr/local/Cellar/php56/5.6.14/lib/php/extensions/no-debug-non-zts-20131226 被设置为 php.ini 中的“extension_dir”。

我错过了什么?!

【问题讨论】:

  • 如果您使用的是 extension_dir 那么您的 zend_extension 不应该设置为 xdebug.so,而不是完整路径吗?
  • 谢谢!两种方法我都试过了,似乎都不管用。虽然现在(见编辑)我似乎有 xdebug 在命令行工作,只是不是通过我的网络服务器......
  • PHP 通过 CLI(命令行)和通过 Apache 是不同的东西,并且通过不同的文件进行配置(通常)。另外,在你的控制台中输入“which php”,试试看你是否真的在使用你安装的 PHP,而不是别的 :)
  • 你说的很对,当然!似乎 PHP 的 Web 版本与 PHP 的 CLI 版本不同。由于某种原因,我使用的教程错过了我必须向 httpd.conf 添加一个 LoadModule 行。我现在已经这样做了,但是当我尝试重新加载 Apache 时收到一条错误消息:httpd:/usr/local/etc/apache2/2.2/httpd.conf 的第 118 行的语法错误:无法加载 /usr/local/ opt/php56/libexec/apache2/libphp5.so 进入服务器
  • 谢谢 :) 我对 PHP FPM 一无所知,所以我使用了我熟悉的方法。我终于让它工作了!问题是我在安装 PHP 之后安装了 Apache,Apache 并没有在寻找 PHP 的 Homebrew 版本。当我重新安装 PHP 时,这是固定的。然后我通过 Homebrew 安装了 xdebug,并调整了 Listener 端口,以便它与 Komodo(我的​​ IDE)很好地配合。现在一切正常:)

标签: php macos homebrew xdebug


【解决方案1】:

最终证明这是因为我做事的顺序不对。我使用 Homebrew 安装 Apache 和 PHP,但我安装了 Apache 2nd:这意味着它没有设置为与我随后安装的 PHP 版本一起使用。

我使用命令 brew reinstall php54 --homebrew-apxs 重新安装了 PHP,这确保了 Apache 和 PHP 可以相互通信。

然后,为了安装 xdebug,我运行了brew install homebrew/php/php56-xdebug。重启 Apache 后,XDebug 立即出现在 phpinfo() 中!

然后我必须让 XDebug 与 Komodo 对话。为此,我在原始帖子的配置行中添加了在 Homebrew 安装期间创建的特定 xdebug 配置文件(我的位于 /usr/local/etc/php/5.6/conf.d/ext-xdebug.ini),然后确保 Komodo 正在侦听正确的端口( 9000不行,所以我改成9001)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-13
    • 2011-07-05
    • 1970-01-01
    • 2015-05-27
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    • 1970-01-01
    相关资源
    最近更新 更多