【问题标题】:While I am debugging PHP Script in Eclipse, it doesn't load mysql extension当我在 Eclipse 中调试 PHP 脚本时,它不会加载 mysql 扩展
【发布时间】:2011-08-18 17:27:04
【问题描述】:

我已经在 Ubuntu 10.10 上安装了 Eclipse 和 xDebug。
当我将一些 php 文件作为页面调试时,效果很好。
当我尝试将其作为脚本进行调试时,我给出未加载 mysql 扩展的消息。
我为 PHP 可执行文件设置了以下选项:

  • 可执行路径:/usr/bin/php
  • PHP ini 文件:/etc/php5/apache2/php.ini
  • SAPI 类型:CLI
  • PHP 调试器:XDebug

我写了以下脚本:

test.php
<?php
$ext = get_loaded_extensions();
print_r($ext);
?>

当我输入命令行 /usr/bin/php test.php
我给了 50 个加载的模块,包括 mysql 和 mysqli。
当我在 Eclipse 中将它作为一个页面进行调试时,我给出了相同的模块和 xdebug。
当我在 Eclipse 中将它作为一个页面进行调试时,我给出了 45 个模块,包括 xdebug,但没有加载 mysql 和 mysqli。

【问题讨论】:

  • 我在 ubuntu 10.4 上遇到了同样的问题。 php 5.3.5 和日食 3.6.2。我发现了一个关于特别是 eclipse 插件 Makegood 的类似问题,但一般来说 eclipse 没有。调试和运行模式都有相同的问题

标签: php eclipse ubuntu xdebug


【解决方案1】:

尝试调用此处描述的函数:http://php.net/manual/en/function.php-ini-loaded-file.php 并查看它是否返回完全相同的路径。 在 Ubuntu 和 Debian 上,php 配置被分割成许多文件。查看 /etc/php5(或类似路径)。

作为最后的手段,我会编写自己的配置并在 eclipse php 运行中引用它作为脚本配置,并确保配置包含并引用 mysql 扩展。

【讨论】:

    【解决方案2】:

    在今天为这个问题苦苦挣扎了几个小时后,我决定手动将cat 的所有信息放在一个.ini 文件中,并使用eclipse -clean 启动eclipse。类似以下脚本的东西应该可以解决问题:

    #!/bin/bash
    mkdir /etc/php5/cli_eclipse
    cat /etc/php5/cli/php.ini /etc/php5/conf.d/* > /etc/php5/cli_eclipse/php.ini
    

    (您显然可以检查目录是否已经存在等,但此脚本仅用于说明目的。您需要使用超级用户帐户/sudo 来执行此操作)。

    window -&gt; preferences -&gt; PHP -&gt; PHP Executables 下将您的php 运行时指向您创建的文件并使用-clean 标志重新启动一次eclipse。 pdt 应该创建包含所有必要信息的临时“php.ini”。

    【讨论】:

    • 您可以在“已安装的 PHPs”的“PHP 可执行文件”选项卡中将 /etc/php5/cli_eclipse/php.ini 定义为“PHP ini 文件(可选)”。至少在氧气版本的 Eclipse
    【解决方案3】:

    Eclipse PDT 团队决定引入 -n 选项来修复 the Bug #324073。所以只有 /tmp/zend_debug/... 中的 php.ini 被加载了,所有额外的 INI 文件都没有加载。

    这是自 PDT 2.2.0 M201010110334 (2010/10/11) 以来引入的。

    有关详细信息,请参阅以下链接:

    【讨论】:

      猜你喜欢
      • 2011-08-12
      • 2017-04-10
      • 2010-10-26
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 2013-11-10
      • 1970-01-01
      相关资源
      最近更新 更多