PhpDocumentor установлен через PEAR на OSX не работает - файлы отсутствуют? - PullRequest
8 голосов
/ 16 мая 2009

Я в основном новичок в PEAR (и PhpDocumentor); Я установил PhpDocumentor с помощью PEAR CLI, и все, казалось, прошло нормально ... до тех пор, пока я не стал его использовать, после чего я получил следующую ошибку:

Warning: require(PhpDocumentor/phpDocumentor/phpdoc.inc): 
failed to open stream: No such file or directory in 
/usr/local/bin/phpdoc on line 40

Fatal error: require(): Failed opening required 
'PhpDocumentor/phpDocumentor/phpdoc.inc' (include_path='.:/usr/share/pear') 
in /usr/local/bin/phpdoc on line 40

Мне не удалось найти в сети ничего об ошибке, поэтому я снова удалил / переустановил через командную строку без ошибок, но у меня та же проблема. Я что-то упустил? Как я уже сказал, я совсем новичок в PEAR:)

Спасибо. D

Ответы [ 3 ]

4 голосов
/ 16 мая 2009

Чтобы выяснить, куда PEAR помещает вещи, запустите pear config-show. Если ранее PEAR говорила, что успешно установила PhpDocumentor для вас, то искомый файл должен быть найден в значении параметра php_dir (на моем Mac это /usr/lib/php/PEAR).

Необходимо, чтобы это значение php_dir было установлено в вашем include_path для правильной работы большинства пакетов PEAR. Так как /usr/share/pear ДОЛЖЕН быть в вашем include_path, в соответствии с ошибкой, которую вы включили выше, я должен был бы предположить, что ваша установка PEAR имеет php_dir, установленную в другое место.

Теперь, если вы хотите изменить установку PEAR на /usr/share/pear, вам нужно кое-что понять о том, как PEAR устанавливает вещи. Многие пакеты используют install-time text replacement, который помещает настройки ВАШЕЙ установки в сам код пакета. Если вы посмотрите на вывод pear config-show, вы увидите несколько других настроек * _dir (data_dir, bin_dir, www_dir и т. Д.). Поэтому важно, чтобы они были установлены так, как вы этого хотите, прежде чем устанавливать пакеты. Не беспокойтесь, это не слишком поздно для пакетов, которые вы уже установили.

Чтобы изменить настройки PEAR, используйте pear config-set (setting name) (setting value), например pear config-set php_dir /usr/share/pear. Поскольку в вашем include_path абсолютно необходим только php_dir, вы, вероятно, можете оставить остальные настройки такими, какие они есть. Я обычно проверяю, все ли они указывают на один и тот же корневой каталог, чтобы все было в одном месте.

Как только вы измените ЛЮБОЙ из этих параметров, вы должны запустить pear update каждого пакета, который вы уже установили. Для этого нужно выполнить install-time text replacement, о котором я упоминал ранее, но в этот раз будут использоваться текущие настройки, то есть те, которые вы только что завершили. Сначала запустите это для основного пакета PEAR, pear update --force pear ... вам нужно будет включить флаг --force, потому что PEAR поймет , что вы просите меня обновить пакет, когда он уже «текущий» и останови себя. Как только вы запустите этот update для ВСЕХ установленных пакетов, в вашей установке PEAR будут храниться файлы, где ваш текущий include_path ожидает их найти.

4 голосов
/ 24 января 2012

Ну, этот вопрос устарел, но у меня возникла та же проблема, и я решил ее после долгих царапин, поэтому решил поделиться.

Я запустил pear config-show, как подробно @ashnazg, и мой php_dir установлен на /usr/lib/php. Я попытался запустить phpdoc -h оттуда и - вуаля! -- это сработало. Поэтому проблема для меня заключалась в том, что PHP нужно было знать об этом пути. Я отредактировал php.ini (который для меня находится в /private/etc/php.ini) и отредактировал include_path, чтобы включить /usr/lib/php. Мой тогда выглядел как:

include_path = ".:/usr/lib/php"

После этого он работает как шарм! Надеюсь, это поможет кому-то еще. FWIW, я на Snow Leopard и установил phpdoc, запустив sudo pear install phpdocumentor.

0 голосов
/ 16 мая 2009

Существует ли PhpDocumentor / phpDocumentor / phpdoc.inc? Существует ли он в / usr / share / pear? Если ответы «да» и «нет» соответственно, то вам нужно добавить любой каталог dir PhpDocumentor в путь включения.

Короче говоря, найдите phpdoc.inc, а затем работайте оттуда.

...