加载失败xdebug确实发现了mach-o,但php7的架构错误

时间:2016-07-12 15:55:54

标签: macos php-7 acquia

我是否通过自制软件安装:

brew install homebrew/php/php70-xdebug

或使用./configure或以下内容从位于http://xdebug.org的来源进行编译:

./configure --enable-xdebug CC="gcc -arch i386" CXX="g++ -arch i386"
make

运行与Acquia DevDesktop捆绑的php7时仍然会收到以下内容:

Failed loading /Applications/DevDesktop/php7_0/ext/xdebug.so:  dlopen(/Applications/DevDesktop/php7_0/ext/xdebug.so, 9): no suitable image found.  Did find:
    /Applications/DevDesktop/php7_0/ext/xdebug.so: mach-o, but wrong architecture

我确认的事情:

  • 我将xdebug.so从/usr/local/Cellar/php70-xdebug/2.4.0复制到正确的目录中(在自制软件安装的情况下)
  • 或来自xdebug-2.4.0 / module
  • 的新编译的
  • which php返回/ Applications / DevDesktop / php7_0 / bin / php
  • php -i显示正确的.ini文件(/Applications/DevDesktop/php7_0/bin/php.ini),没有其他人
  • opcache.so已关闭
  • zend_extension="/Applications/DevDesktop/php7_0/ext/xdebug.so"位于php.ini

完整消息php --version返回:

$ php --version
Failed loading /Applications/DevDesktop/php7_0/ext/xdebug.so:  dlopen(/Applications/DevDesktop/php7_0/ext/xdebug.so, 9): no suitable image found.  Did find:
    /Applications/DevDesktop/php7_0/ext/xdebug.so: mach-o, but wrong architecture
PHP 7.0.4 (cli) (built: Mar 18 2016 02:12:27) ( ZTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies

操作系统是MacBook Air上全新安装的Mac OS 10.11.5。

有谁知道为什么抱怨错误的架构?

2 个答案:

答案 0 :(得分:3)

这对DevDesktop来说非常有用:

  1. 下载并解压缩xdebug源代码(我使用的是xdebug-2.5.5)。
  2. $ cd xdebug-2.5.5
  3. $ /Applications/DevDesktop/php7_0/bin/phpize
  4. 现在是导致最悲伤的那一步......

    1. $ ./configure --with-php-config=/Applications/DevDesktop/php7_0/bin/php-config CC="gcc -arch i386" CXX="g++ -arch i386"
    2. $ make
    3. $ cp modules/xdebug.so /Applications/DevDesktop/php7_0/ext/

    4. 打开php7_0/bin/php.ini文件并(假设它是默认值)替换:

      zend_extension="/Applications/DevDesktop/php5_6/ext/opcache.so"

    5. ;zend_extension="/Applications/DevDesktop/php5_6/ext/opcache.so"
      [Xdebug]
      zend_extension="/Applications/DevDesktop/php7_0/ext/xdebug.so"
      xdebug.remote_enable=1
      xdebug.remote_host=localhost
      xdebug.remote_port=9000
      
      1. 在DevDesktop中停止并启动服务器实例并进行调试。

答案 1 :(得分:0)

• Open the php.ini file inside of Applications/DevDesktop/php(version#)/bin/php.ini
• Commented out the  following two lines:
    ○ zend_extension="/Applications/DevDesktop/php7_0/ext/xdebug.so"
    ○ xdebug.remote_enable=1
• Stop and restart DevDesktop

此主题中的评论对我有用。 资料来源:Install XDebug and load in Acquia Drupal Stack?