Advertisement
  1. Computer Skills
  2. Web Servers

Обновление нативно установленного PHP на OS X Mountain Lion

Scroll to top
Read Time: 10 min

Russian (Pусский) translation by Anton L (you can also view the original English article)

Давайте посмотрим как можно вручную обновить нативно установленный на OS X 10.8 PHP до новой версии (на данный момент 5.4.5) и походу дела установим другие полезные программы. *AMP пакеты довольно практичные, но чаще всего устаревшие, тем самым действия описанные в данной статье окажутся ценной информацией для любого PHP разработчика.


Теория относительно установки из исходников

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

Каждая установка из исходников представляет из себя одинаковый набор команд: скачать файлы исходников, конфигурация, преобразование файлов (make), опционально тестирование, установка.

Configure

Скрипт "configure" сообщает "make" что мы будем устанавливать. Запустить это можно напечатав "./configure", конфигурационный скрипт проанализирует зависимости, проверит подходит-ли ваша операционная система, настроит необходимые файлы для вашей операционной системы и создаст makefile, который после запуска "make" диктует, что именно собрать и установить.

“configure” сообщает "make" что именно будет собрано и установлено

Если скрипт найдёт недостающие зависимости или ошибки, он выполнит выход и остановит выполнение, позволяя пользователю удалить, либо исправить трудности, перед тем как продолжать. Команда configure всегда идёт в самом начале перед сборкой и установкой из исходников.

Make

Далее "make" собирает то, что configure сообщает ему собрать. "make" инициализируется простой командой "make", по сути представляет из себя утлиту GNU, которая обычно используется для поддержки и повторной компиляции набора файлов, если это необходимо.

"make" собирает то что, configure сообщает собрать

Данной функции нужен makefile - файл в котором описаны директивы и связи между рассматриваемыми файлами. После запуска, команда make читает makefile и выполняет поставленные задачи.

Команда "make test" запускает make, а также тестирует компиляцию относительно цели тестов. Не все исходники поддерживают "make test", так что если этого явно не указано в документации устанавливаемой программы, используйте обычный "make".

Команда "make test" запускает make, а также тестирует компиляцию относительно цели тестов.

"sudo make install" устанавливает файлы, которые обработает "make" в заранее заданные папке. Команда позаботится о всех вхождениях, обновлениях, путях и переместит всё куда нужно. Инсталляция будет успешно завершена и пользователю не придётся ничего делать.

Кстати это как раз то что делает Homebrew - пакетный менеджер, который мы установили в предыдущей части. Он может выполнить тот же самый процесс. Вы не увидите этого, но тем не менее те же самые действия будут выполнены, в случае если формула указанная разработчиком пакета, работает таким образом.

Это делает весь процесс менее обременительным, автоматически проверяя зависимости и устанавливая их перед тем как перейти к назначенному пакету. Далее он будет скачен и распакован, и выполняется процесс configure, make, make install для завершения установки.

Почти для каждой установки из исходников актуальны следующие шаги: скачать, configure, make, установка.

Homebrew

Чтобы установка PHP прошла, как можно более плавно, нам нужно установить Homebrew, пакетный менеджер для OSX, который может позаботится о большинстве процессов установок за вас, установки, которые в противном случае требовали бы сложных этапов сборки и могут обладать критическими зависимостями, на разрешение, которых могут уйти часы.

Установленный Homebrew окажется невероятно полезным на протяжении долгого времени.

Установленный Homebrew окажется невероятно полезным на протяжении долгого времени, не только в целях данной статьи. Он предоставляет быстрый способ установить часто используемые библиотеки и программы, без необходимости собирать их из исходников.
Для установки, нам нужно сделать следующее (пропустите эту часть, если Homebrew уже установлен)

  1. Установите XCode через App store. После того, как он будет установлен, установите инструменты командной строки, через XCode приложение или скачайте их и установите с http://develpers.apple.com. Нам нужен XCode и CLT, так как Homebrew требует их наличия.
  2. Установите X11 отсюда. Это также зависимость Homebrew. Выберете последнюю доступную версию, необязательно, на которую я поставил ссылку.
  3. Установите Homebrew с GitHub.
  4. Если вы столкнулись с проблемами, вероятно вам следует сделать, действия из шага 1 и 2:

    ..взято из этого поста. Это случается на некоторых версиях Mountain Lion, по какой-то причине.

Как только вы закончили, запустите brew doctor и убедитесь, что всё работает (согласно инструкциям на сайте Homebrew)


PHP

Как и следовало ожидать, установка PHP требует определённого набора установленных библиотек. К счастью, Homebrew поможет нам в их установке. Установите следующее:

Как только с этим будет покончено, скачайте исходники PHP с Php.net. Распакуйте архив, откройте терминал и перейдите в папку с исходниками (то есть ~/Downloads/php-5.4.5/ или в то место куда были скачены исходники).

Если вы планируете работать с Zend 2 фреймворком и хотите начать с простого приложения - скелета, на подобии того, которое было сделано Rob "Akrabat" Allen, или если вы хотите разработать приложение с поддержкой нескольких языков, в этих случаях вам понадобится php-intl. Чтоб сообщить скрипту конфигурации, что необходимо добавить php-intl во время сборки makefile'а, нам нужно установить очередную зависимость - ICU. Скачать её можно с ICU-Project.org, после чего запустить.

Данные команды позволят обработать все основные зависимости, которые могут понадобиться PHP (на данный момент). Мы наконец-то можем собрать и установить его.

Установка

Для начала, пока вы находитесь в неразархивированном каталоге исходников, выполните следующую команду конфигурации: 

Как только это будет сделано, запустите

”make test” запускает make и тестирует на наличие ошибок компиляции

Как упоминалось в части посвящённой теории сборки, данная команда запускает make и тестирует компиляцию. Это может занять время, до 30 минут, так как каждый аспект PHP тестируется. Когда процесс закончится, в случае если PHP найдёт какие-либо ошибки (скорее всего так и будет), он сообщит об этом разработчику, посредством инструкций на экране. Не волнуйтесь, всё хорошо - ошибки, которые он находит, обычно не так важны.

Make TestMake TestMake Test
Как вы видите будет выполнено 11503 тестов. Это займёт время.

Если у вас есть оригинальный PHP, работающий и сконфигурированный, сделайте резервную копию файла php.ini. Он должен находиться в /etc/php.ini

Ну и наконец, запустите следующую команду, для установки PHP.

Лучше всего не заменять новый файл php.ini, старым, резервной копией. Вместо этого, скопируйте необходимые значения вручную, так мы будем в безопасности - нам будет известно, что новый php.ini полностью совместим с новой версий, которая была установлена.


Конфигурация Apache

Почти готово! Если у вас уже есть работающий PHP на компьютере и единственное для чего вы читаете эту статью - обновления существующего PHP, всё готово, всё должно работать.

Если нет, в случае если нужно настроить PHP для нативно установленного Apache на OSX. Файл httpd.conf скорее всего будет находиться в папке по умолчанию, откройте её в терминале, затем используйте TextEdit:

Я воспользовался командой SUDO EDITOR, чтобы открыть файл в TextEdit, мне кажется им редактировать файлы проще, нежели Vim или Nano. Хотя я мог использовать “$ sudo vim /ect/apache2/httpd.conf” для редактирования файла в vim.

Далее, уберите комментарии для следующих строк (они не расположены рядом друг с другом, используйте команду поиска (Find), чтобы найти их)

Первая строка сообщает, чтобы Apache использовал PHP в качестве модуля. Следующая строка нужна для того, чтобы главный файл httpd.conf (файл с конфигурациями Apache) использовал виртуальные хосты из файла vhosts, благодаря этому нам не придётся постоянно редактировать httpd.conf. Также мы сможем сохранить файл vhosts в другом месте, нежели в /etc, и подготовить его для других компьютеров, которые потребуются нам для разработки, или других инсталляций PHP.

Довольно практичный подход, сохранить данный файл в облачном хранилище, таком, как Google Drive или Dropbox и указать на него ссылку, непосредственно в httpd.conf. Таким образом после добавления виртуального хоста, он будет автоматически установлен для каждого компьютера, после перезапуска локального Apache сервера.


Добавляем Vhost

Виртуальный хост - воображаемый домен, который находится локально. Он нужен для тестирования проектов, в браузере, вводя разные ссылки. К примеру, на моём компьютере, если посетить http://mactuts.tutorial я увижу приложение Hello World, которое мы разберём в конце данной части, или я могу перейти по адресу http://mw.dev, чтобы открыть мой проект, который находится в разработке. Не правда-ли просто, различные URL открывают разные папки с файлами проекта, веб-сайта. Вот небольшой гайд, как добавить vhost - если у вас уже настроен vhosts или вам о нём всё известно, можете пропустить эту часть.

Шаг 1: отредактируйте hosts файл

Мы назовём наш vhost "mactuts.tutorial". Для этого добавьте вхождение в /etc/hosts, которое выглядит следующим образом:

Это значит, что открыв адрес http://mactuts.tutorial браузер перейдёт на 127.0.0.0.1:80 или, другими словами, на порт 80 локального сервера (Apache).

HostsHostsHosts
Это пример hosts файла. Обратите внимание, что у меня также имеются другие виртуальные хосты на компьютере.

Шаг 2: добавьте Apache vhost

Далее добавьте блок в /etc/apache2/extra/httpd-vhosts.conf, который выглядит следующим образом:

Замените {USERNAME} вашим именем пользователя, без угловых скобок. Тем самым мы сообщим Apache следующее: если у вас есть что-то на порту 80, проверь оригинальный адрес. Если это mactuts.tutorial, тогда установи все эти опции.

Шаг 3: перезапуск Apache

Далее перезапустите Apache

Шаг 4: создание Index файла

3) Создайте папку "/Users/{USERNAME}/Sites/mactuts" (замените {USERNAME} именем пользователя OSX) и добавьте туда файл index.php со следующим содержимым:

Шаг 5: Проверьте!

Откройте http://mactuts.tutorial. Вы должны увидеть "Hello World"!


Альтернативы

Недавно я обнаружил альтернативный подход - установить PHP с помощью Homebrew. Проблема заключается в том, что нет официальных каналов, на момент написания данной статьи (начало августа 2012) тем самым альтернативная ветка, должна быть создана для Homebrew.

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

Более стабильная альтернатива доступна здесь, но обратная связь оставляет желать лучшего, так что я оставлю данные подходы читателям, на тот случай если они захотят экспериментов.

Обновления

Вот несколько альтернатив, которые были предложены в комментариях, после публикации данной статьи.

php_osx
Очередная (кажется, что всё работает хорошо) альтернатива предложенная в комментариях DaftViking и позволяющая установить PHP посредством php_osx.

Macports
Хоть я и призываю к поэтапному отказу от Macports в пользу Homebrew, кажется, что Macports устанавливает стабильную версию PHP, тем самым у нас есть другая, работающая альтернатива. Лично я не проверял данный подход, но для тех кто разбирается в Macports, дальнейшая информация доступна здесь. Спасибо пользователю Reddit под ником nemeth88, что сообщил об этом!


Заключение

В OS X идёт предустановленный PHP и Apache. К сожалению версия PHP невероятно устаревшая и она никогда не обновляется, лишь когда новая версия операционной системы будет установлена. К тому времени новая версия PHP также будет устаревшей, так что помимо установки *AMP (Apache/Mysql/Php) пакета (который редко, если вообще, обладает актуальной версией PHP), что ещё можно сделать, кроме как обновить всё вручную?

В этот туториале мы разобрали основы установки пакета из исходников, мы собрали актуальную версию PHP и установили её, также мы поставили Homebrew, который позволит нам в дальнейшем, с лёгкостью ставить программы и различные библиотеки. Мы разобрали создание виртуальных хостов и проверили нашу конфигурацию, чтобы всё работало. Надеюсь вам понравилось и всё работает, как и было запланировано. Если вы столкнулись с проблемами, сообщите в комментариях и мы попробуем разобраться вместе.

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Computer Skills tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.