Среда web-разработки на Mac OS X Leopard (часть 2)

PHP LogoВ данное время, после сборки баз данных, пришла пора установить PHP. Я ставил PHP 5.3.0, какой-либо в настоящий момент является последней стабильной версией, указанной получай сайте PHP. Кроме того сразу стоит отметить, что я опишу самый процесс сборки PHP как CGI-приложения для последующего использования с каким-нибудь proxy-сервером (в моём случае, с nginx), приближенно что если вы планируете собирать его как mod_php ради сервера Apache, этот урок вам не подойдёт.
Вдобавок того, в процессе моей сборки будет задействован менеджер процессов PHP-FPM, какой-нибудь позволяет более тонко управлять процессами PHP, необходимыми для обработки ваших сайтов. Однако обо всём по порядку.

Установка библиотек

Итак, в (видах начала нужно определиться, с чем собирать PHP. Лично для моих задач важна шефство работы с изображениями (GD2) и шрифтами (Type 1 и Freetype), которые, в свою цепь, потребуют установки в систему ряда библиотек. Так что с них, слыхать, и начнём. Для установки нужных библиотек, воспользуйтесь знакомой ровно по предыдущим постам утилитой из пакета MacPorts и выполните в терминале следующее.

sudo port install gd2

Каста команда установит в систему библиотеки для работы с графикой (в количество которых входят libjpeg, libpng, libfreetype, libxpm и ряд других, необходимых пользу кого GD). Теперь установим t1lib (если поддержка шрифтов Adobe™ Type 1 вас не требуется. пропустите этот шаг, но тогда далее уберите из конфигурации PHP, которая будет описана ниже, опцию —with-t1lib)

sudo port install t1lib

Агрегатирование PHP с патчем FPM

Теперь необходимо скачать исходники PHP и PHP-FPM. На странице с доступными пакетами выбираете оный, который вам необходим (в описываемом мною случае, 5.3.0), скачиваете (ориентирйтесь держи надпись Complete Source Code), распаковываете директорию php-5.3.0. Нонче с сайта PHP-FPM нужно скачать менеджер процессов для той версии PHP, которую вас планируете устанавливать (в описываемом мною случае, php-fpm-0.6-5.3.0) и после скачивания, распаковываете его поближе с исходниками PHP.
Откройте терминал и перейдите в директорию, которая содержит папки с исходниками указанных продуктов. Нужно учредить патч FPM, применить его к исходникам PHP, а затем подготовить место исполнение) необходимых при сборке файлов. Все необходимые для сего команды я привожу одной строкой, которую вы можете осуществить в терпинале:

php-fpm-0.6-5.3.0/generate-fpm-patch && cd php-5.3.0 && patch -p1 < ../fpm.patch && ./buildconf —force && mkdir fpm-build

Вона и всё, подготовительный этап закончен, теперь можно конфигурировать и копить PHP. Как и в случае с базами данных, чтобы ознакомиться со списком всех доступных присутствие конфигурации опций, нужно выполнить команду ./configure с параметром —help, находясь в каталоге с исходниками PHP.

./configure —help

По прошествии того, как определились, запускаете конфигуратор с нужными параметрами. В описываемом случае я устанавливаю PHP в директорию /usr/local/php-5.3.0, а и указываю местоположение необходимых мне библиотек:

./configure —enable-fpm —prefix=/usr/local/php-5.3.0
—with-zlib —enable-bcmath —enable-calendar —with-curl
—with-libxml-dir —enable-exif —with-pcre-dir —enable-ftp
—with-gd=/opt/local/ —with-jpeg-dir=/opt/local/ —with-png-dir=/opt/local/
—with-freetype-dir=/opt/local/ —with-t1lib=/opt/local/
—enable-gd-native-ttf —with-gettext=/opt/local/ —enable-mbstring —enable-mbregex
—with-mysql=/usr/local/mysql —with-mysqli=/usr/local/mysql/bin/mysql_config
—with-pdo-mysql=/usr/local/mysql —with-pdo-pgsql=/usr/local/pgsql —with-pgsql=/usr/local/pgsql
—enable-sqlite-utf8 —with-xmlrpc —with-xsl —with-xpm-dir=/usr/X11 —with-iconv=shared,/opt/local/

О нормальном завершении конфигурации (бог) велел судить по тому, что у вас на экране терминала слыхом не слыхать слово Error и присутствует предложение «Thank you for using PHP«. Если а есть какие-то ошибки, внимательно читайте, что так-таки не устраивает конфигуратор, или задавайте вопросы.
Если форма завершилась нормально, запускайте компиляцию:

make

Если и после сего ошибки отсутствуют (как я вам тогда завидую!), есть устанавливать PHP:

sudo make install

Тут уже проблем закраться попросту не должно. Теперь, чтобы запустить PHP, потребуется совершить начальную конфигурацию PHP-FPM. С этим менеджером процессов сразу поставляется стартовая расположение, но в ней закомментированы поля, отвечающие за пользователя и группу, через имени которого должен работать PHP. Чтобы исправить этот просчет, откройте любым текстовым редактором, который умеет сохранять plain-text файлы (ни в коем случае мало-: неграмотный Word!!!) файл php-fpm.conf, расположенный в директории /usr/local/php-5.3.0/etc/. Хоть бы так:

sudo vim /usr/local/php-5.3.0/etc/php-fpm.conf

И найдите там такие строки:

<value name=»user»>
<value name=»group»>

Уберите с них комментарии, и укажите нужное серьезность (я использую www).
Осталось сделать пару последних штрихов:
скопируйте обложка с дефолтными настройками из директории с исходниками в директорию с установленным PHP

sudo cp php.ini-development /usr/local/php/lib/php.ini

создайте ссылку получи и распишись ваш PHP (я это делаю исключительно для удобства, этот выступка необязательный)

sudo ln -s /usr/local/php-5.3.0 /usr/local/php

Вот и всё, рань можно запускать PHP.

sudo /usr/local/php/bin/php-cgi —fpm

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

sudo ps aux | grep php-cgi

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

sudo killall php-cgi

На этом можно завершать, поскольку теперь у вас установлен PHP.
Безусловно, в этом уроке описано дней ходу) не всё. Например, PHP-FPM можно собрать как самостоятельное использование, и управлять процессом запуска PHP через него. А можно обойтись и ни на йоту без FPM. Как бы там ни было, я не ставил своей целью текстануть ВСЁ, поскольку это не имеет смысла: необходимую информацию только и остается почерпнуть как на официальном сайте PHP, так и на страницах PHP-FPM. Так я всё же рассчитываю, что данная статья покажет, в каком направлении рыться, и кому-то сильно сэкономит время.

Ну а в следующей статье, как бы и обещал, напишу про nginx, memcached и xdebug.Среда web-разработки на Mac OS X Leopard (часть 2)