Как настроить PEAR в Mac OS X 10.5 Leopard - PullRequest
10 голосов
/ 10 марта 2009

В конечном итоге я пытаюсь установить PEAR, чтобы я мог легко установить PHPUnit. Я хочу настроить среду разработки Mac, Apache, MySQL, PHP, PHPUnit, чтобы я мог тестировать локально. У меня уже работают Apach, MySQL и PHP. Теперь все, что мне нужно, это PHPUnit, а это значит, что мне нужен PEAR для его установки.

Я обыскал все, и есть несколько вариантов "учебника" по установке PEAR в Mac OS X 10.5. Тем не менее, я не могу заставить их работать! Кто-нибудь имел успех с этим? Я не совсем уверен, что у меня все настроено так, как должно быть, поэтому, если бы вы могли включить пути по умолчанию для Mac OS X 10.5, или простое объяснение того, куда все должно идти, я был бы признателен.

После этого урока я делаю следующее:

curl http://pear.php.net/go-pear > go-pear.php
sudo php -q go-pear.php

Я нажимаю ввод, пока не попаду в список с 7 включенными путями:

1. Installation prefix ($prefix) : /Users/andrew
2. Temporary files directory     : $prefix/temp
3. Binaries directory            : $prefix/bin
4. PHP code directory ($php_dir) : $prefix/PEAR
5. Documentation base directory  : $php_dir/docs
6. Data base directory           : $php_dir/data
7. Tests base directory          : $php_dir/tests

Я изменяю Installation prefix на /usr/local, нажмите Enter, чтобы продолжить, введите Y, чтобы также установить PEAR_Frontend_Web-beta, PEAR_Frontend_Gtk2, MDB2. В конце концов, все установлено.

Далее ...

С первой попытки, я думаю, include_path был закомментирован из файла php.ini, но так как я уже изменил эту строку, и я не первый раз пытался установить, я получаю следующее сообщение:

WARNING!  The include_path defined in the currently used php.ini does not
contain the PEAR PHP directory you just specified:
</usr/local/PEAR>
If the specified directory is also not in the include_path used by
your scripts, you will have problems getting any PEAR packages working.

Would you like to alter php.ini </private/etc/php.ini>? [Y/n] : 

Я набираю Y и позволяю Pear автоматически обновлять мой путь включения:

php.ini </private/etc/php.ini> include_path updated.

Current include path           : .:/usr/share/pear
Configured directory           : /usr/local/PEAR
Currently used php.ini (guess) : /private/etc/php.ini

Я нажимаю ввод, чтобы продолжить, и получаю следующее сообщение:

The 'pear' command is now at your service at /usr/local/bin/pear

** The 'pear' command is not currently in your PATH, so you need to
** use '/usr/local/bin/pear' until you have added
** '/usr/local/bin' to your PATH environment variable.

Run it without parameters to see the available actions, try 'pear list'
to see what packages are installed, or 'pear help' for help.

For more information about PEAR, see:

  http://pear.php.net/faq.php
  http://pear.php.net/manual/

Thanks for using go-pear!

PHP Warning:  rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237

Warning: rmdir(/usr/local/temp): Not a directory in /Users/andrew/go-pear.php on line 1237

Обновление: Мне кажется, я знаю, почему всплыли последние два предупреждения. Ранее я пытался исправить проблему с временным каталогом, создав символическую ссылку на / tmp, но если я правильно понял, PEAR пытается создать свой собственный временный каталог для установки, а затем удалит его, когда он будет завершен. Поэтому я не должен был создавать эту символическую ссылку, поскольку он попытается удалить временный каталог после завершения установки.

Ответы [ 3 ]

16 голосов
/ 10 марта 2009

Здесь есть несколько вещей, которые могут пойти не так, это только догадки.

Во-первых, два включают пути, о которых вам нужно беспокоиться. Во-первых, ваш путь включения PHP. Библиотеки PEAR - это (в основном) просто PHP-код, специально упакованный. Когда вы устанавливаете модуль PEAR, вы загружаете весь код PHP, необходимый для этой библиотеки, и любые другие библиотеки PEAR, на которые вы устанавливаете библиотеку (извините за это предложение, но я не уверен, что есть лучший способ сказать, тот). Этот включаемый путь задается в ваших файлах php.ini (один файл для вашей командной строки php, другой для вашего php веб-сервера; часто это тот же файл).

Второй путь включения, о котором вам нужно беспокоиться, - это путь включения UNIX / оболочки. Это путь, по которому ваш компьютер будет искать команды, когда вы вводите команду из терминала. Команда 'pear' - это команда командной строки.

Итак, нам нужно убедиться, что

  1. В файле php.ini для вашего сайта есть каталог PEAR в пути включения
  2. Файл php.ini для приложения php из командной строки содержит каталог PEAR в пути включения
  3. Ваше приложение оболочки (терминал, вероятно, BASH у вас на OS X) имеет каталог PEAR в своем пути включения

Итак, для номера 1 разместите на своем сервере страницу PHP, содержащую вызов функции

phpinfo();

В этом списке будет представлена ​​информация о вашем сервере. Ищите местоположение php.ini. Откройте этот файл в текстовом редакторе, найдите переменную include_path и добавьте путь к вашему каталогу PEAR (не удаляйте другие пути, просто добавьте свой).

Для номера 2 выполните следующую команду из командной строки

php -r "phpinfo();" | grep '.ini'

Будет напечатана куча строк, ищите ту, которая читает что-то вроде «Загруженный файл конфигурации». Откройте этот файл в текстовом редакторе, найдите переменную include_path и добавьте путь к вашему каталогу PEAR (не удаляйте другие пути, просто добавьте свой).

Наконец, и вот в чем я думаю, что ваша проблема в том, что мы должны убедиться, что команда командной строки pear находится в вашем пути shell / bash. Вот что эта ошибка ссылается на

** The 'pear' command is not currently in your PATH, so you need to

В вашем домашнем каталоге должен быть файл с именем .bash_profile. Это скрытый файл, поэтому он не будет отображаться в Finder. Откройте его с помощью текстового редактора. Если у вас возникли проблемы, потому что это скрытый файл, используйте редактор командной строки pico. Ctrl-X спасет от пико

cd ~
pico .bash_profile

Этот файл запускается вашей оболочкой каждый раз, когда вы открываете окно терминала. Мы собираемся добавить / usr / local / bin к вашему PATH, что означает, что когда вы пытаетесь выполнить команду, ваш компьютер будет искать команду в этой папке. Добавьте следующую строку в конец .bash_profile

export PATH=/usr/local/bin:$PATH

Это более или менее эквивалентно следующему коду PHP

$PATH = '/usr/local/bin:'.$PATH

Вы добавляете / usr / local / bin как первое разделенное двоеточиями место для поиска команды, а затем добавляете к ней оставшуюся часть существующего пути. Как только вы добавили эту строку, закройте терминал, снова откройте его и введите

pear

Это должно дать вам список допустимых команд pear, но, что более важно, даст вам знать, что pear находится на вашем пути.

Удачи!

2 голосов
/ 01 мая 2009

Я понял это. Вы «ДОЛЖНЫ» запустить go-pear.php там, где вы хотите установить Pear, поэтому вам нужно запустить его в / usr / local, если вы хотите, чтобы двоичный файл pear был установлен в / usr / local / bin

:-)

0 голосов
/ 05 ноября 2009

пользователь "Брайан Кеннеди" (выше) хотел знать синтаксис для изменения "include_path", необходимого в "php.ini"

(У меня была похожая проблема с OP, и я только что исправил проблему с помощью этого поста.)

изменение в php.ini будет выглядеть ...

include_path=".:/path_to_pear_dir/PEAR"

это выглядит так, когда вы позволяете go-pear.php внести изменения ....

;***** Added by go-pear
include_path=".:/usr/local/bin/PEAR"
;*****
...