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

Сегодня, продолжая тему создания среды для web-разработки на Mac OS X Leopard, я расскажу о шагах, необходимых для того, чтобы собрать на вашем компьютере такие продукты, как nginx, memcached и xdebug.

Логотип nginxЛоготип MemcachedЛоготип Xdebug

nginx

Что такое nginx, знает, пожалуй, каждый web-разработчик. Если же вы только начинаете осваивать азы web-строительства, то более подробную информацию об использовании nginx вы можете почитать на сайте разработчика этого продукта. Существует несколько разных способов использования этого продукта, но сегодня я остановлюсь лишь на том, как установить этот сервер в вашу систему и настроить для работы с установленным ранее PHP+FPM.

Для начала необходимо скачать исходные тексты nginx. Их можно получить на сайте сервера, скачав архив с необходимой вам версией (в тексте рассматриваются примеры с версией nginx-0.7.62)

Распакуйте архив и, используя терминал, перейдите в директорию с исходными текстами. Для получения списка опций сборки, используйте команду

./configure --help

После того, как вы определитесь с опциями, сконфигурируйте пакте для сборки. Я, как указывал в одном из предыдущих руководств, устанавливаю пакеты для web-разработки в директорию /usr/local, и конфигурировал nginx с такими опциями:

./configure --prefix=/usr/local/nginx-0.7.62 --with-pcre --with-http_flv_module

Теперь запускаем сборку:

make

и установку

sudo make install

Как и раньше, для последующего удобства, делаем ссылку на установленный сервер:

sudo ln -s /usr/local/nginx-0.7.62/ /usr/local/nginx

Ну а теперь запускаем сервер:

sudo /usr/local/nginx/sbin/nginx

Важно: по умолчанию nginx настроен на работу с 80-м портом, поэтому если у вас запущен встроенный в Leopard сервер Apache, nginx не запустится и выдаст ошибку. Поэтому предварительно убедитесь, что Apache выключен: это можно сделать запустив программу «Системные настройки» а затем, перейдя в раздел «Общий доступ«, снять включение с сервиса «Общий веб-доступ«.

Отключить Apache в Leopard

Если вы не получили никакого уведомления об ошибке, и встроенный Apache у вас выключен, то nginx, вероятнее всего, нормально запустился. Теперь в любом браузере наберите адрес http://localhost и на экране появится приветствие, сообщающее о том, что nginx был благополучно запущен.

nginx запущен

Если же вам требуется остановить сервер, то выполните в терминале команду

sudo /usr/local/nginx/sbin/nginx -s stop

Для того, чтобы научить nginx работать с установленным ранее PHP+FPM, придётся выполнить несколько дополнительных шагов:

  • создать в файловой директорию, в которой будет расположен ваш сайт
  • внести изменения в файл настроек nginx
  • запустить PHP+FPM
  • перезапустить nginx

Теперь по порядку.
Для примера я буду использовать директорию /usr/local/site, но вы можете указать другой путь. Главное, не забудьте отредактировать указанные мною примеры, чтобы они соответствовали вашим реальным данным.
Итак, создайте директорию для сайта, и положите туда какой-нибудь php-файл (например, index.php который выведет на экран phpinfo(); )
Отредактируйте файл настроек nginx (/usr/local/nginx/conf/nginx.conf) поместив в него следующее содержимое:

user www;
worker_processes 1;
 
pid /var/run/nginx.pid;
 
events {worker_connections 1024;
use kqueue;} 
http {include mime.types;
default_type text/html;
 
keepalive_timeout 65;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
output_buffers 4 128k;
postpone_output 1460;
sendfile on;
tcp_nodelay on;
tcp_nopush on;
send_lowat 12000;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10M;
client_body_buffer_size 512k;
client_body_temp_path /tmp/client_body_temp;
proxy_connect_timeout 180;
proxy_send_timeout 180;
proxy_read_timeout 180;
proxy_send_lowat 12000;
proxy_buffer_size 64k;
proxy_buffers 4 128k;
proxy_busy_buffers_size 256k;
proxy_temp_file_write_size 256k;
proxy_temp_path /tmp/proxy_temp;
 
server {listen 80;
server_name localhost;
index index.php;
root /usr/local/site;
 location ~ \.php$ { 
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT $document_root;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param SCRIPT_FILENAME /usr/local/site$fastcgi_script_name;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param PATH_INFO $request_uri;
fastcgi_param CONTENT_LENGTH $content_length;}}}

Теперь, если у вас не запущен PHP, запустите его. Как это сделать, написано в этом руководстве. Осталось перезапустить nginx с новыми настройками

sudo /usr/local/nginx/sbin/nginx -s reload

По идее, если вы не меняли настройки FPM, PHP должен работать у вас на 9000-м порту, а nginx будет принимать все соединения на 80-м и перенаправлять их на PHP, так что попытавшись открыть адрес http://localhost вы получите не приветствие nginx, а результат работы вашего php-скрипта.

Memcached

Собственно, сборка Memcached довольно проста, но требует некоторой подготовки. В частности, для работы Memcached необходимо библиотека libevent, которую нужно установить при помощи уже знакомого вам по одному из предыдущих руководств MacPorts. Выполните в терминале команду

sudo port install libevent

Теперь необходимо скачать исходники (их можно взять на этой странице [http://danga.com:80/memcached/download.bml]) и распаковать их.
Далее всё, как обычно:

/configure --help
./configure --prefix=/usr/local/memcached-1.4.1 --with-libevent=/opt/local
make
sudo make install
sudo ln -s /usr/local/memcached-1.4.1/ /usr/local/memcached

Теперь запускаем:

sudo /usr/local/memcached/bin/memcached -d -m 2048 -u nobody

Чтобы остановить Memcached, выполните команду

sudo killall memcached

Но недостаточно только установить этот daemon, — необходимо так же научить установленный у вас PHP работать с ним. Это делается при помощи внешнего расширения для PHP, которое нужно собрать, а затем указать PHP на необходимость его использования. Эта библиотека называется memcache и её исходные коды доступны для скачивания на этой странице. Скачайте и распакуйте архив. Теперь, используя терминал, перейдите в директорию с исходными текстами и подготовьте их к сборке, выполнив команду

/usr/local/php/bin/phpize

Дальше конфигурация:

./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config

Важно подчеркнуть, что в опции --with-php-config обязательно нужно указать путь к утилите php-config вашего PHP, иначе библиотека будет сконфигурирована для PHP, установленного в Mac OS X Leopard по умолчанию.

После конфигурации выполните сборку и установку:

make && sudo make install

Теперь нужно указать вашему PHP на необходимость подключения нового расширения. Если вы устанавливали PHP используя это руководство, то файл php.ini расположен у вас в директории /usr/local/php/lib/

Отредактируйте его, дописав в конец файла всего одну строчку:

extension=memcache.so

Сохраните php.ini и перезапустите PHP. Теперь, чтобы убедиться, что у вас включена поддержка memcache, можете выполнить команду

/usr/local/php/bin/php -i | grep memcache

Установка Xdebug

Xdebug — это расширение для PHP, позволяющее более детально отслеживать и анализировать работу PHP. Подробнее почитать об этом расширении, если вы с ним ещё не сталкивались, можно на странице документации по адресу xdebug.org/docs/. Сборка этого расширения практически такая же, как и сборка расширения memcache, речь о котором шла немного выше в этой теме. Скачайте с этой страницы архив с исходниками и распакуйте его. Перейдите в директорию с исходными текстами и выполните там команду:

/usr/local/php/bin/phpize

Теперь нужно сконфигурировать расширение:

./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config

Как и в случае с memcache, очень важно указать правильный путь к php-config.
Теперь выполните сборку и установку расширения:

make && sudo make install

Осталось последнее действие: необходимо указать PHP использовать при работе Xdebug. Для этого откройте на редактирование php.ini и добавьте в конец файла вот такую строку

zend_extension=»/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so»

Теперь перезапустите PHP. Вот и всё, можете профилировать ваш код и искать в нём «узкие» места.

Заключение

Это последнее руководство в серии про среду web-разработки, в котором нужно что-то компилировать. В заключительном посте я лишь приведу список тех приложений, с которыми мне доводилось работать под Mac OS X, и которые себя с той или иной стороны хорошо зарекомендовали.
Комментарии к предыдущим сообщениям явно показывают, что без проблем пройти по всем, описанным мною шагам, удалось не всем. Это нормально, потому что сборка продукта из исходных текстов далеко не всегда проходит гладко от начала и до самого конца. И мне остаётся лишь надеяться, что у вас не возникнет непреодолимых препятствий на этом пути.

Adblock
detector