Eclipse и Xdebug не анализируют дополнительные ini-файлы в /etc/php5/conf.d - PullRequest
4 голосов
/ 04 июня 2011

Я установил Eclipse 3.6.2 в Ubuntu 11.4 для AMD64 и Xdebug .

Eclipse был установлен с zip-загрузкой с eclipse.org. PHP и Xdebug были настроены с apt-get .

Когда я запускаю скрипт PHP в оболочке, они будут использовать файл /etc/php5/php.ini и анализировать дополнительные ini-файлы в /etc/php5/conf.d/.

Когда я запускаю в Eclipse (режим запуска или режим отладки), он будет анализировать только php.ini и никаких дополнительных INI-файлов.

В основном все расширения не загружены.

Ответы [ 2 ]

5 голосов
/ 05 июня 2011

Это преднамеренная ошибка.
PDT всегда выполняет php с опцией "-n". Это делает дополнительные INI-файлы недоступными.
см https://bugs.eclipse.org/bugs/show_bug.cgi?id=339547
также https://bugs.eclipse.org/bugs/show_bug.cgi?id=347618

Кстати, вы сможете добавить сценарий оболочки, который обрезает опцию "-n" как исполняемый файл PHP (Настройки> PHP> Исполняемые файлы PHP)
Например,

#!/bin/sh
if [ $1 = "-n" ]; then
  shift;
fi
/usr/bin/php $*
1 голос
/ 25 февраля 2017

Ответ @atlanto дает, поскольку обходной путь работал и все еще работает, но в последней версии Eclipse (я на Neon) есть исправление, которое может работать для вас, если вы не возражаете против использования php.ini иconf.d устанавливается по умолчанию для исполняемого файла php.

Ошибка загрузки дополнительных файлов происходит только сейчас, если вы указали явный файл php.ini при определении исполняемого файла PHP. Оставьте это поле пустым и установите флажок 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 для указания
...