Настройка MAMP, Pear, PHPUnit на MacOS X Snow Leopard

Настройка по сути своей не зависит от версий MAMP, PHPUnit или MacOS. Команды универсальны. Я собрала здесь процесс настройки и установки воедино после долгих блужданий и пониманий различных конфигурационных ошибок. Всегда в Unix-системах убивает то, что нужно сложить воедино очень много кубиков, чтобы прийти к результату.

Если вы уже пытались заставить работать PHPUnit, но у вас ничего не получается, все время выдает ошибки запуска, например: PHP Warning: require_once(File/Iterator/Autoload.php): failed to open stream: No such file or directory in /usr/lib/php/PHPUnit/Autoload.php on line 45. То вам сюда! Вы смело можете пропустить установку MAMP, и обратиться напрямую к конфигурированию PEAR - это ваш ответ!

Установка MAMP

Заходим на сайт MAMP и скачиваем архив: http://www.mamp.info/en/index.html

MAMP главное окно

Устанавливаем MAMP и запускаем. Обратите внимание на настройки в закладке Preferences. Важный момент не забывать на каком порту запускается ваш сервер (по умолчанию 8888, то есть http://localhost:8888/) и какой PHP вы будете использовать (Preferences -> PHP ->PHP Version.

Еще один важный момент - PHPUnit с каждым релизом поддерживает все более новую версию PHP и PEAR. Именно поэтому нам и нужны сведения о версиях.

MAMP Preferences Ports MAMP Preferences PHP

По моим скриншотам видно, что я буду использовать PHP 5.4.4.

MAMP можно закрывать, в дальнейшем для настройки он нам не понадобится.

Настройка PEAR

Поскольку мы работаем с MacOS, а она изначально в поставке содержит Apache и PHP с PEAR, то возможные конфликтные ситуации двух серверов Apache. Чтобы этих конфликтов не происходило, а мы намерены использовать именно MAMP, то все установки нужно сделать именно для MAMP.

Прежде всего проверим, что PHP подходит для самого свежего PHPUnit, для этого мы посмотрим требования:

Открываем Google, вводим в поиск PHPUnit, в самом верху поиска у вас должна быть ссылка на github.com или phpunit.de

Переходим в github или phpunit.de.

PHPUnit page

Прокручиваем страницу до секции: Requirements. Здесь мы видим требования по PHP. Если ваша версия PHP не соответствует требованиям, установите новый MAMP. Не волнуйтесь, ваши проекты никуда не пропадут, базы данных не потеряются. Новая установка MAMP переместить ваш старый пакет в другую папку рядом в /Applications/.

После того, как вы убедились в том, что версия PHP соответствует требованиям, идем проверять наш PEAR и обновлять его до последней версии.

Открываем Терминал (Программы -> Служебные программы -> Терминал или Applications -> Utilities -> Terminal)

В командной строке пишем:

/Applications/MAMP/bin/php/php5.4.4/bin/pear -V

(Этой командой вы запускаете PEAR с флагом -V, который и выведет вам информацию о PEAR и PHP)

PEAR version

Прежде, чем делать какие-либо манипуляции дальше, необходимо настройти директории, куда PEAR установит обновления и сам PHPUnit (помните возможные конфликты с встроенным Apache).

Запускаем команду

sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-show

Внимательно посмотрите конфиг, от него и зависит успешность установки. Если PEAR или PHPUnit будет установлен в системные каталоги /usr/, ваши программы не смогут работать с PEAR или PHPUnit. И вы будете все время видить ошибки.

Ваша задача прописать директории так, чтобы PEAR ссылался не на системые каталоги MacOS, а на каталоги MAMP. Вот эти строчки:

PEAR executables directory bin_dir /Applications/MAMP/bin/php/php5.4.4/bin
PEAR documentation directory doc_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/doc/
PEAR directory php_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/ PEAR configuration file cfg_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/cfg
PEAR data directory data_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/data
PHP CLI/CGI binary php_bin /Applications/MAMP/bin/php/php5.4.4/bin/php
PEAR test directory test_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/test

Подробное описание настроек по умолчания: PEAR Manual

Как их поменять, если они ссылаются на системные каталоги:

В терминале для каждой переменной, например, bin_dir, запускаем команду:

sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set bin_dir /Applications/MAMP/bin/php/php5.4.4/bin

, где php5.4.4 нужно поменять на вашу версию PHP

Итак, поменяем все переменные:

sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set bin_dir /Applications/MAMP/bin/php/php5.4.4/bin
sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set doc_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/doc
sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set php_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/
sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set cfg_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/cfg
sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set data_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/data
sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set php_bin /Applications/MAMP/bin/php/php5.4.4/bin/php
sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set test_dir /Applications/MAMP/bin/php/php5.4.4/lib/php/test

Теперь проверяем, чтобы эти каталоги реально существовали в системе. Это можно сделать через Finder (пройдясь до нужного каталога) или через Терминал с помощью команд cd и ls.

Проверяем, что все нужные переменные заданы в конфиге правильно, повторно

sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-show

Приступаем у обновлению PEAR.

sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear upgrade pear

Проверяем PEAR /Applications/MAMP/bin/php/php5.4.4/bin/pear -V

Устанавливаем PHPUnit:

sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear config-set auto_discover 1

sudo /Applications/MAMP/bin/php/php5.4.4/bin/pear install pear.phpunit.de/PHPUnit

Проверяем установку phpunit /Applications/MAMP/bin/php/php5.4.4/bin/phpunit --version

У вас должно появиться: PHPUnit x.x.xx by Sebastian Bergmann.

Если у вас появляется ошибка MAMP “unserialize()”, то у вас есть несоответсвие между конфигурацией PEAR и версией PEAR. Чтобы убрать эту ошибку, переименуйте конфиграционный файл PEAR, и если он вам понадобится позже, вы всегда сможете его восстановить:

/Applications/MAMP/bin/php/php5.4.4/conf/pear.conf /Applications/MAMP/bin/php/php5.4.4/conf/pear.conf.old


конец страницы