Eclipse和Xdebug不解析/etc/php5/conf.d中的其他ini文件

时间:2011-06-04 19:19:59

标签: php eclipse ubuntu xdebug eclipse-pdt

我在Ubuntu 11.4 for AMD64和Xdebug上设置了Eclipse 3.6.2。

Eclipse安装了eclipse.org的zip下载。 PHP和Xdebug设置为apt-get

当我在shell中运行PHP脚本时,他们将使用/etc/php5/php.ini文件并解析/etc/php5/conf.d/中的其他ini文件。

当我在Eclipse(运行模式或调试模式)中运行时,它只会解析php.ini而不会解析其他ini文件。

基本上,所有扩展都没有加载。

2 个答案:

答案 0 :(得分:5)

这是一个故意的错误 PDT始终使用“-n”选项执行php。它使得额外的ini文件不可用 见https://bugs.eclipse.org/bugs/show_bug.cgi?id=339547
也是https://bugs.eclipse.org/bugs/show_bug.cgi?id=347618

顺便说一下,您将能够添加一个shell脚本,将“-n”选项修剪为PHP可执行文件。(首选项> PHP> PHP可执行文件)
例如,

#!/bin/sh
if [ $1 = "-n" ]; then
  shift;
fi
/usr/bin/php $*

答案 1 :(得分:1)

答案@atlanto作为一个解决方案做了并且仍然有效,但最近版本的Eclipse(我在霓虹灯上)有一个可能对你有用的修复,如果你不介意使用对于php可执行文件,默认设置php.iniconf.d

如果在定义PHP可执行文件时放入显式php.ini文件,则现在只会发生无法加载其他文件的错误。 将此选项留空选中 Use system default php.ini configurate框。

enter image description here

现在,如果您使用在构建可执行文件时指定为默认位置的位置/ php.ini,它将尊重conf.d目录的扫描。

以下是检查php是否已启用扫描conf.d以及适当的默认位置位置的方法:

    php -i "(command-line 'phpinfo()')" | grep "Configure Command"

您应该看到类似的内容:

Configure Command =>  './configure'  '--prefix=/usr/local/Cellar/php5/5.6.29_5' 
'--localstatedir=/usr/local/var' '--sysconfdir=/usr/local/etc/php/5.6' 
'--with-config-file-path=/usr/local/etc/php/5.6' 
'--with-config-file-scan-dir=/usr/local/etc/php/5.6/conf.d' 
'--mandir=/usr/local/Cellar/php56/5.6.29_5/share/man' 

... and so on...

重要的事项是:

  • with-config-file-path:此处将查找您的php.ini文件
  • with-config-file-scan-dir:这是将被扫描的conf.d

如果您仍希望选择与可执行文件的默认位置不同的位置,则选项为:

  • conf.d中的模块指令内联到您的候补php.ini
  • 重建php并将上述选项设置为默认的新位置
  • 使用包装器脚本@atlanto指示