2011-06-04 65 views
3

我已经在Ubuntu 11.4上为AMD64和Xdebug设置了Eclipse 3.6.2。Eclipse和Xdebug不解析/etc/php5/conf.d中的其他ini文件

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

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

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

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

回答

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 $*
+0

非常感谢!我只是从Windows切换到Ubuntu作为开发平台。我迷路了。 – 2011-06-05 13:22:00

0

答案@atlanto给作为工作周围没有和它仍然可以工作,但最近的Eclipse(我在霓虹灯)的版本有可能为你工作一个修复,如果你不介意使用php.iniconf.d默认设置为th e php可执行文件。

如果您在定义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表示