Lab / OSX

Создаём окружение для тестирования PHP приложений под Mac OS

В данной заметке я хотел бы затронуть тему встроенного веб сервера в PHP для тестирования приложений на локальной машине. Этот способ интересен тем, что вам не нужно настраивать полноценную среду разработки на вашей машине или устанавливать дополнительное ПО. Так же данный метод не будет запускать сервер всякий раз при старте системы расходуя ресурсы впустую.

Как вам наверное уже известно PHP начиная с версии 5.4 содержит встроенный веб сервер, навеянный имением такового например в том же Node JS. И в других современных языках программирования. Честно говоря реализован он явно с задней мыслью — "Ок, ок, у нас он тоже теперь есть. Довольны? Вот и отвалите наконец от нас!". В общем то и на том спасибо. Нам этого достаточно.

Как узнать присутствует ли в вашем маке данные сервер? Очень просто необходимо выполнить в терминале следующую команду:

php -v

Если ваша версия PHP выше 5.4 c большей вероятностью вы счастливый обладатель данного сервера. Для того что бы убедится что всё работает давайте создадим в домашней дирректории вашего юзера папку test и положим туда файл index.php в который вставим следующую строку <?php phpinfo(); ?> после чего перейдём в эту папку и запустим наш php сервер:

cd test

php -S 127.0.0.1:8080

Всё, ваш сервер запущен и работает, что бы увидеть его в браузере достаточно перейти по адресу 127.0.0.1:8080 и насладится отладкой вашего приложения. Что бы остановить сервер нужно нажать Control + C да, да вы не ослышались Control а не Command.

У меня получилась вот такая вот картина:

osx1.jpg

Обновить версию PHP в Mac Os

Как мы видим по умолчанию стоит не самая новая версия PHP, а на моём аймаке 2011 года который я не очень хочу обновлять с OSX Maverics и подавно стоит PHP версии 5.4. Давайте исправим это для начала скачаем и установим стабильную версию PHP 7

curl -s http://php-osx.liip.ch/install.sh | bash -s 7.0

Текущая версия не перезаписывает бинарники системы, а устанавливается в свою отдельную папку /usr/local/php5/bin/php. Для того, что бы подключить её по умолчанию и в php -v так же отображалась нужная нам версия, необходимо добавить путь в настройки Bash, открываем:

touch ~/.bash_profile
open ~/.bash_profile

И добавляем туда строку

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

Теперь вводя php -v мы получим такой ответ

Marks-MacBook-Pro:~ mark$ php -v
PHP 7.0.8 (cli) (built: Jun 26 2016 12:30:44) ( NTS )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies
 with Zend OPcache v7.0.8, Copyright (c) 1999-2016, by Zend Technologies
 with Xdebug v2.4.0RC3, Copyright (c) 2002-2015, by Derick Rethans

Так-же я часто использую программу MAMP для быстрого поднятия рабочего окружения на моём макбуке, и часто встаёт вопрос, как в командной строке выполнять команды в PHP который предоставляет MAMP. Всё очень просто, нужно по примеру выше подключить PHP в баш файле вот таким образом:

export PATH=/Applications/MAMP/bin/php/php7.1/bin/:$PATH

В этом месте: php7.1/bin/:$PATH укажите правильную версию PHP используемую вами у хостов.