Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在本地AMP环境中安装xdebug.so扩展时出现问题_Php_Macos_Homebrew_Xdebug - Fatal编程技术网

Php 在本地AMP环境中安装xdebug.so扩展时出现问题

Php 在本地AMP环境中安装xdebug.so扩展时出现问题,php,macos,homebrew,xdebug,Php,Macos,Homebrew,Xdebug,编辑:我现在删除了xdebug的版本。因此我手动安装,并通过自制安装了xdebug。当我在命令行中键入“php-I”时,xdebug似乎已安装;但是当我运行phpinfo()时,仍然没有XDebug的迹象。 我刚买了一台新的Mac电脑,所以,就像每次我买一台新的Mac电脑一样,我都重建了我的本地web开发环境(这次,遵循一个令人惊叹的教程:) 在安装XDebug扩展之前,一切都进展顺利。我使用Komodo作为开发环境,因此,正如我过去一直做的那样,我遵循以下说明: 我严格按照说明进行操作,但是我

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

我刚买了一台新的Mac电脑,所以,就像每次我买一台新的Mac电脑一样,我都重建了我的本地web开发环境(这次,遵循一个令人惊叹的教程:)

在安装XDebug扩展之前,一切都进展顺利。我使用Komodo作为开发环境,因此,正如我过去一直做的那样,我遵循以下说明:

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

  • 创建了一个phpinfo.php文件,以便找到正确的php.ini文件
  • 检查phpinfo.php文件,发现“加载的配置文件”是“/usr/local/etc/php/5.6/php.ini”
  • 编辑该php.ini,在文件底部添加以下行:
  • _

    zend_extension=/usr/local/ceral/php56/5.6.14/lib/php/extensions/no-debug-non-zts-20131226/xdebug.so
    xdebug.remote\u enable=1
    xdebug.remote_handler=dbgp
    xdebug.remote_mode=req
    xdebug.remote\u host=localhost
    xdebug.remote_port=9000
    xdebug.idekey=
    ; 您可能还希望这样—始终启动远程调试连接。
    ;xdebug.remote\u autostart=1
    
  • 运行“brew服务重新启动httpd22”(当然还有“sudo apachectl重新启动”)
  • 当我重新加载phpinfo.php时,它包含对xdebug.so的引用

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


    我错过了什么

    最终,这被证明是我按错误的顺序做事造成的。我曾使用自制软件安装Apache和PHP,但我安装了Apache2nd:这意味着它不能与我当时安装的PHP版本一起使用

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

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


    然后我不得不让XDebug和Komodo谈谈。为此,我在原始帖子的配置行中添加了在自制安装过程中创建的特定xdebug配置文件(我的文件位于
    /usr/local/etc/php/5.6/conf.d/ext xdebug.ini
    ),然后确保Komodo在正确的端口上侦听(9000不起作用,所以我改为9001).

    如果您使用的是扩展名\u dir,那么您的zend\u扩展名不应该设置为xdebug.so,而不是完整路径吗?谢谢!我试过两种方法,但两种方法都不管用。虽然现在(请参见编辑)我似乎让xdebug在命令行上工作,但不是通过我的web服务器……PHP通过CLI(命令行)和Apache是不同的事情,并且通过不同的文件(通常)进行配置。另外,在控制台中键入“which php”,尝试看看您是否真的在使用您安装的php,而不是其他东西:)当然,您是完全正确的!PHP的web版本似乎与PHP的CLI版本不同。出于某种原因,我使用的教程遗漏了我必须向httpd.conf添加LoadModule行的内容。我现在已经这样做了,但是当我尝试在/usr/local/etc/apache2/2.2/httpd.conf:Cannot load/usr/local/opt/php56/libexec/apache2/libphp5.so的第118行将Apache:httpd:Syntax error重新加载到服务器时,会收到一条错误消息谢谢:)我对PHP FPM一无所知,所以我使用了我熟悉的方法。我终于让它工作了!问题是我在安装PHP之后安装了Apache,Apache并不是在寻找PHP的自制版本;当我重新安装PHP时,这是固定的。然后,我通过自制安装了xdebug,并调整了侦听器端口,使其与Komodo(我的IDE)配合得很好。现在一切正常:)
    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