Среда 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, и которые себя с той или иной стороны четверка зарекомендовали.
Комментарии к предыдущим сообщениям явно показывают, что помимо проблем пройти по всем, описанным мною шагам, посчастливилось не всем. Это нормально, потому что сборка продукта изо исходных текстов далеко не всегда проходит гладко ото начала и до самого конца. И мне остаётся лишь рассчитывать, что у вас не возникнет непреодолимых препятствий на этом пути.Среда web-разработки на Mac OS X Leopard (часть 3)