Ноне, продолжая тему создания среды для web-разработки на Mac OS X Leopard, я расскажу о шагах, необходимых в (видах того, чтобы собрать на вашем компьютере такие пищевые продукты, как nginx, memcached и xdebug.
nginx
Что такое nginx, знает, слыхать, каждый web-разработчик. Если же вы только начинаете осваивать азы web-строительства, так более подробную информацию об использовании nginx вы можете божеские) на сайте разработчика этого продукта. Существует несколько разных способов использования сего продукта, но сегодня я остановлюсь лишь на том, вроде установить этот сервер в вашу систему и настроить для работы с установленным дотоль PHP+FPM.
Для начала необходимо скачать исходные тексты nginx. Их не возбраняется получить на сайте сервера, скачав архив с необходимой вы версией (в тексте рассматриваются примеры с версией nginx-0.7.62)
Распакуйте картотека и, используя терминал, перейдите в директорию с исходными текстами. Для получения списка опций сборки, используйте команду
В дальнейшем того, как вы определитесь с опциями, сконфигурируйте пакте интересах сборки. Я, как указывал в одном из предыдущих руководств, устанавливаю пакеты исполнение) web-разработки в директорию /usr/local, и конфигурировал nginx с такими опциями:
Пока запускаем сборку:
и установку
Якобы и раньше, для последующего удобства, делаем ссылку на принятый сервер:
Неужли а теперь запускаем сервер:
Чванно: по умолчанию nginx настроен на работу с 80-м портом, оттого если у вас запущен встроенный в Leopard сервер Apache, nginx невыгодный запустится и выдаст ошибку. Поэтому предварительно убедитесь, что Apache выключен: сие можно сделать запустив программу «Системные настройки» а затем, перейдя в раздел «Общественный доступ«, снять включение с сервиса «Общий веб-доступ«.
Разве вы не получили никакого уведомления об ошибке, и замонтированный Apache у вас выключен, то nginx, вероятнее всего, естественным путем запустился. Теперь в любом браузере наберите адрес http://localhost и бери экране появится приветствие, сообщающее о том, что nginx был благословенно запущен.
Если же вам требуется остановить сервер, так выполните в терминале команду
К того, чтобы научить 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 с новыми настройками
Соответственно идее, если вы не меняли настройки FPM, PHP должен сп у вас на 9000-м порту, а nginx будет принимать повально соединения на 80-м и перенаправлять их на PHP, так как будто попытавшись открыть адрес http://localhost вы получите маловыгодный приветствие nginx, а результат работы вашего php-скрипта.
Memcached
Практически, сборка Memcached довольно проста, но требует некоторой подготовки. В частности, на работы Memcached необходимо библиотека libevent, которую нужно поставить при помощи уже знакомого вам по одному изо предыдущих руководств MacPorts. Выполните в терминале команду
Сегодня необходимо скачать исходники (их можно взять на этой странице [http://danga.com:80/memcached/download.bml]) и распаковать их.
Вслед за тем всё, как обычно:
Данный) момент запускаем:
Пусть остановить Memcached, выполните команду
Так недостаточно только установить этот daemon, — необходимо так а научить установленный у вас PHP работать с ним. Это делается рядом помощи внешнего расширения для PHP, которое нужно собрать, а спустя некоторое время указать PHP на необходимость его использования. Эта библиотека называется memcache и её исходные коды доступны интересах скачивания на этой странице. Скачайте и распакуйте архив. Сию минуту, используя терминал, перейдите в директорию с исходными текстами и подготовьте их к сборке, выполнив команду
В дальнейшем конфигурация:
Мирово подчеркнуть, что в опции —with-php-config обязательно нужно знаменовать путь к утилите php-config вашего PHP, иначе библиотека будет сконфигурирована пользу кого PHP, установленного в Mac OS X Leopard по умолчанию.
После конфигурации выполните сборку и установку:
Пока нужно указать вашему PHP на необходимость подключения нового расширения. Разве вы устанавливали PHP используя это руководство, то файл php.ini расположен у вам в директории /usr/local/php/lib/
Отредактируйте его, дописав в конец файла не (более одну строчку:
Сохраните php.ini и перезапустите PHP. Теперь, дай тебе убедиться, что у вас включена поддержка memcache, можете справиться команду
Установка Xdebug
Xdebug — сие расширение для PHP, позволяющее более детально отслеживать и анализировать работу PHP. Подробнее кто кому (на кого) чуть не молится об этом расширении, если вы с ним ещё безграмотный сталкивались, можно на странице документации по адресу xdebug.org/docs/. Монтирование этого расширения практически такая же, как и сборка расширения memcache, фраза о котором шла немного выше в этой теме. Скачайте с этой страницы картотека с исходниками и распакуйте его. Перейдите в директорию с исходными текстами и выполните далее команду:
Теперь нужно сконфигурировать расширение:
Точь в точь и в случае с memcache, очень важно указать правильный путь к php-config.
В (настоящее выполните сборку и установку расширения:
Осталось последнее мероприятие: необходимо указать PHP использовать при работе Xdebug. Для сего откройте на редактирование php.ini и добавьте в конец файла вот такую строку
В (настоящий перезапустите PHP. Вот и всё, можете профилировать ваш код и присматривать в нём «узкие» места.
Заключение
Это последнее руководство в серии насчет среду web-разработки, в котором нужно что-то компилировать. В заключительном посте я всего только приведу список тех приложений, с которыми мне доводилось делать под Mac OS X, и которые себя с той или иной стороны четверка зарекомендовали.
Комментарии к предыдущим сообщениям явно показывают, что помимо проблем пройти по всем, описанным мною шагам, посчастливилось не всем. Это нормально, потому что сборка продукта изо исходных текстов далеко не всегда проходит гладко ото начала и до самого конца. И мне остаётся лишь рассчитывать, что у вас не возникнет непреодолимых препятствий на этом пути.