<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Mac OS X Hints &#187; PHP-FPM</title>
	<atom:link href="http://macosxhints.ru/tag/php-fpm/feed" rel="self" type="application/rss+xml" />
	<link>http://macosxhints.ru</link>
	<description>узнайте больше прямо сейчас</description>
	<lastBuildDate>Wed, 01 Jun 2011 19:20:21 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Среда web-разработки на Mac OS X Leopard (часть 3)</title>
		<link>http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-3</link>
		<comments>http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-3#comments</comments>
		<pubDate>Sat, 17 Oct 2009 22:01:33 +0000</pubDate>
		<dc:creator>Rodion Baskakov</dc:creator>
				<category><![CDATA[Приложения]]></category>
		<category><![CDATA[Система]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[localhost]]></category>
		<category><![CDATA[MacPorts]]></category>
		<category><![CDATA[memcache]]></category>
		<category><![CDATA[Memcached]]></category>
		<category><![CDATA[nginx]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-FPM]]></category>
		<category><![CDATA[web-разработка]]></category>
		<category><![CDATA[Xdebug]]></category>

		<guid isPermaLink="false">http://macosxhints.ru/?p=273</guid>
		<description><![CDATA[Сегодня, продолжая тему создания среды для web-разработки на Mac OS X Leopard, я расскажу о шагах, необходимых для того, чтобы собрать на вашем компьютере такие продукты, как nginx, memcached и xdebug.








nginx
Что такое nginx, знает, пожалуй, каждый web-разработчик. Если же вы только начинаете осваивать азы web-строительства, то более подробную информацию об использовании nginx вы можете почитать [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня, продолжая тему <a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-0">создания среды для web-разработки на Mac OS X Leopard</a>, я расскажу о шагах, необходимых для того, чтобы собрать на вашем компьютере такие продукты, как nginx, memcached и xdebug.</p>
<table width="100%" cellpadding="0" cellspacing="0">
<tr>
<td align="center" width="33%"><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-3#nginx" title="Установка nginx"><img src="http://macosxhints.ru/wp-content/uploads/2009/10/nginx-logo.jpg" alt="Логотип nginx" /></a></td>
<td align="center" width="34%"><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-3#memcached" title="Установка Memcached"><img src="http://macosxhints.ru/wp-content/uploads/2009/10/memcached-logo.jpg" alt="Логотип Memcached"  /></a></td>
<td align="center" width="33%"><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-3#xdebug" title="Установка Xdebug"><img src="http://macosxhints.ru/wp-content/uploads/2009/10/xdebug-logo.jpg" alt="Логотип Xdebug"/></a></td>
</tr>
</table>
<p><span id="more-273"></span><a name="nginx"></a><br />
<h3>nginx</h3>
<p>Что такое nginx, знает, пожалуй, каждый web-разработчик. Если же вы только начинаете осваивать азы web-строительства, то более подробную информацию об использовании nginx вы можете почитать <a href="http://sysoev.ru/nginx/">на сайте разработчика этого продукта</a>. Существует несколько разных способов использования этого продукта, но сегодня я остановлюсь лишь на том, как установить этот сервер в вашу систему и настроить для работы <a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-2">с установленным ранее PHP+FPM</a>.</p>
<p>Для начала необходимо скачать исходные тексты nginx. Их можно получить <a href="http://nginx.net/">на сайте сервера</a>, скачав архив с необходимой вам версией (в тексте рассматриваются примеры с версией nginx-0.7.62)</p>
<p>Распакуйте архив и, <a href="http://macosxhints.ru/kak-zapustit-terminal-v-mac-os">используя терминал</a>, перейдите в директорию с исходными текстами. Для получения списка опций сборки, используйте команду</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">./configure &#45;&#45;help</div>
<p>После того, как вы определитесь с опциями, сконфигурируйте пакте для сборки. Я, как указывал в одном из предыдущих руководств, устанавливаю пакеты для web-разработки в директорию <strong>/usr/local</strong>, и конфигурировал nginx с такими опциями:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">./configure &#45;&#45;prefix=/usr/local/nginx-0.7.62 &#45;&#45;with-pcre &#45;&#45;with-http_flv_module</div>
<p>Теперь запускаем сборку:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">make</div>
<p>и установку</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo make install</div>
<p>Как и раньше, для последующего удобства, делаем ссылку на установленный сервер:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo ln -s /usr/local/nginx-0.7.62/ /usr/local/nginx</div>
<p>Ну а теперь запускаем сервер:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo /usr/local/nginx/sbin/nginx</div>
<p><strong style="color:#f00">Важно:</strong> по умолчанию nginx настроен на работу с 80-м портом, поэтому если у вас запущен встроенный в Leopard сервер Apache, <strong>nginx не запустится и выдаст ошибку</strong>. Поэтому предварительно убедитесь, что Apache выключен: это можно сделать запустив программу "<strong>Системные настройки</strong>" а затем, перейдя в раздел "<strong>Общий доступ</strong>", снять включение с сервиса "<strong>Общий веб-доступ</strong>".</p>
<p><center><a href='http://macosxhints.ru/wp-content/uploads/2009/10/disable-apache.jpg' rel="lightbox"><img src="http://macosxhints.ru/wp-content/uploads/2009/10/disable-apache-500x409.jpg" alt="Отключить Apache в Leopard" title="Отключить Apache в Leopard" width="500" height="409" /></a></center></p>
<p>Если вы не получили никакого уведомления об ошибке, и встроенный Apache у вас выключен, то nginx, вероятнее всего, нормально запустился. Теперь в любом браузере наберите адрес <strong>http://localhost</strong> и на экране появится приветствие, сообщающее о том, что nginx был благополучно запущен.</p>
<p><center><a href='http://macosxhints.ru/wp-content/uploads/2009/10/nginx_installed.jpg' rel="lightbox"><img src="http://macosxhints.ru/wp-content/uploads/2009/10/nginx_installed.jpg" alt="nginx запущен" title="nginx запущен" width="500" height="371" /></a></center></p>
<p>Если же вам требуется остановить сервер, то выполните в терминале команду</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo /usr/local/nginx/sbin/nginx -s stop</div>
<p>Для того, чтобы научить nginx работать с установленным ранее PHP+FPM, придётся выполнить несколько дополнительных шагов:</p>
<ul>
<li>создать в файловой директорию, в которой будет расположен ваш сайт</li>
<li>внести изменения в файл настроек nginx</li>
<li>запустить PHP+FPM</li>
<li>перезапустить nginx</li>
</ul>
<p>Теперь по порядку.<br />
Для примера я буду использовать директорию <strong>/usr/local/site</strong>, но вы можете указать другой путь. Главное, не забудьте отредактировать указанные мною примеры, чтобы они соответствовали вашим реальным данным.<br />
Итак, создайте директорию для сайта, и положите туда какой-нибудь php-файл (например, index.php который выведет на экран phpinfo(); )<br />
Отредактируйте файл настроек nginx (<strong>/usr/local/nginx/conf/nginx.conf</strong>) поместив в него следующее содержимое:</p>
<div style="background:#F7F6F7;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 10px">
<pre class="apache"><span style="color: #00007f;">user</span> www;
worker_processes  <span style="color: #ff0000;">1</span>;
&nbsp;
pid        /var/run/nginx.pid;
&nbsp;
events <span style="color: #66cc66;">&#123;</span>
    worker_connections  <span style="color: #ff0000;">1024</span>;
    use kqueue;
<span style="color: #66cc66;">&#125;</span>
&nbsp;
http <span style="color: #66cc66;">&#123;</span>
    <span style="color: #00007f;">include</span>       mime.types;
    default_type  text/html;
&nbsp;
    keepalive_timeout                 <span style="color: #ff0000;">65</span>;
    client_header_timeout       3m;
    client_body_timeout         3m;
    send_timeout                3m;
    client_header_buffer_size   1k;
    large_client_header_buffers <span style="color: #ff0000;">4</span> 4k;
    output_buffers              <span style="color: #ff0000;">4</span> 128k;
    postpone_output             <span style="color: #ff0000;">1460</span>;
    sendfile                    <span style="color: #0000ff;">on</span>;
    tcp_nodelay                 <span style="color: #0000ff;">on</span>;
    tcp_nopush                  <span style="color: #0000ff;">on</span>;
    send_lowat                  <span style="color: #ff0000;">12000</span>;
    gzip                        <span style="color: #0000ff;">on</span>;
    gzip_min_length             <span style="color: #ff0000;">1100</span>;
    gzip_buffers                <span style="color: #ff0000;">4</span> 8k;
    gzip_types                  text/plain;
    proxy_redirect      <span style="color: #0000ff;">off</span>;
    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       <span style="color: #ff0000;">180</span>;
    proxy_send_timeout  <span style="color: #ff0000;">180</span>;
    proxy_read_timeout  <span style="color: #ff0000;">180</span>;
    proxy_send_lowat    <span style="color: #ff0000;">12000</span>;
    proxy_buffer_size   64k;
    proxy_buffers               <span style="color: #ff0000;">4</span> 128k;
    proxy_busy_buffers_size 256k;
    proxy_temp_file_write_size 256k;
    proxy_temp_path /tmp/proxy_temp;
&nbsp;
     server <span style="color: #66cc66;">&#123;</span>
          <span style="color: #00007f;">listen</span>       <span style="color: #ff0000;">80</span>;
          server_name  localhost;
          index        index.php;
          root         /usr/local/site;
&nbsp;
          <span style="color: #00007f;">location</span> ~ \.php$ <span style="color: #66cc66;">&#123;</span>
&nbsp;
               fastcgi_pass  <span style="color: #ff0000;">127.0</span><span style="color: #ff0000;">.0</span><span style="color: #ff0000;">.1</span>:<span style="color: #ff0000;">9000</span>;
               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;
          <span style="color: #66cc66;">&#125;</span>
     <span style="color: #66cc66;">&#125;</span>
<span style="color: #66cc66;">&#125;</span></pre>
</div>
<p>Теперь, если у вас не запущен PHP, запустите его. Как это сделать, написано <a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-2">в этом руководстве</a>. Осталось перезапустить nginx с новыми настройками</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo /usr/local/nginx/sbin/nginx -s reload</div>
<p>По идее, если вы не меняли настройки FPM, PHP должен работать у вас на 9000-м порту, а nginx будет принимать все соединения на 80-м и перенаправлять их на PHP, так что попытавшись открыть адрес <strong>http://localhost</strong> вы получите не приветствие nginx, а результат работы вашего php-скрипта.</p>
<p><a name="memcached"></a><br />
<h3>Memcached</h3>
<p>Собственно, сборка Memcached довольно проста, но требует некоторой подготовки. В частности, для работы Memcached необходимо библиотека <strong>libevent</strong>, которую нужно установить при помощи уже знакомого вам по <a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-0">одному из предыдущих руководств</a> <strong>MacPorts</strong>. Выполните в терминале команду</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo port install libevent</div>
<p>Теперь необходимо скачать исходники (их можно взять на этой странице [http://danga.com:80/memcached/download.bml]) и распаковать их.<br />
Далее всё, как обычно:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">/configure &#45;&#45;help</div>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">./configure &#45;&#45;prefix=/usr/local/memcached-1.4.1 &#45;&#45;with-libevent=/opt/local</div>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">make</div>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo make install</div>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo ln -s /usr/local/memcached-1.4.1/ /usr/local/memcached</div>
<p>Теперь запускаем:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo /usr/local/memcached/bin/memcached -d -m 2048 -u nobody</div>
<p>Чтобы остановить Memcached, выполните команду</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo killall memcached</div>
<p>Но недостаточно только установить этот daemon, — необходимо так же научить установленный у вас PHP работать с ним. Это делается при помощи внешнего расширения для PHP, которое нужно собрать, а затем указать PHP на необходимость его использования. Эта библиотека называется <strong>memcache</strong> и её исходные коды доступны для скачивания <a href="http://pecl.php.net/package/memcache">на этой странице</a>. Скачайте и распакуйте архив. Теперь, используя терминал, перейдите в директорию с исходными текстами и подготовьте их к сборке, выполнив команду</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">/usr/local/php/bin/phpize</div>
<p>Дальше конфигурация:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">./configure &#45;&#45;enable-memcache &#45;&#45;with-php-config=/usr/local/php/bin/php-config</div>
<p><strong style="color:#F00">Важно подчеркнуть</strong>, что в опции <strong>&#45;&#45;with-php-config</strong> обязательно нужно указать путь к утилите <strong>php-config</strong> вашего PHP, иначе библиотека будет сконфигурирована для PHP, установленного в  Mac OS X Leopard  по умолчанию.</p>
<p>После конфигурации выполните сборку и установку:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">make && sudo make install</div>
<p>Теперь нужно указать вашему PHP на необходимость подключения нового расширения. Если вы устанавливали PHP используя <a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-2">это руководство</a>, то файл <strong>php.ini</strong> расположен у вас в директории <strong>/usr/local/php/lib/</strong></p>
<p>Отредактируйте его, дописав в конец файла всего одну строчку:</p>
<div style="background:#F7F6F7;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">extension=memcache.so</div>
<p>Сохраните php.ini и перезапустите PHP. Теперь, чтобы убедиться, что у вас включена поддержка memcache, можете выполнить команду</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">/usr/local/php/bin/php -i | grep memcache</div>
<p><a name="xdebug"></a><br />
<h3>Установка Xdebug</h3>
<p>Xdebug — это расширение для PHP, позволяющее более детально отслеживать и анализировать работу PHP. Подробнее почитать об этом расширении, если вы с ним ещё не сталкивались, можно на странице документации по адресу <a href="http://xdebug.org/docs/">xdebug.org/docs/</a>. Сборка этого расширения практически такая же, как и сборка расширения memcache, речь о котором шла немного выше в этой теме. Скачайте с <a href="http://xdebug.org/download.php">этой страницы</a> архив с исходниками и распакуйте его. Перейдите в директорию с исходными текстами и выполните там команду:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">/usr/local/php/bin/phpize</div>
<p>Теперь нужно сконфигурировать расширение:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">./configure &#45;&#45;enable-xdebug &#45;&#45;with-php-config=/usr/local/php/bin/php-config</div>
<p><strong>Как и в случае с memcache, очень важно указать правильный путь к php-config</strong>.<br />
Теперь выполните сборку и установку расширения:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">make && sudo make install</div>
<p>Осталось последнее действие: необходимо указать PHP использовать при работе Xdebug. Для этого откройте на редактирование <strong>php.ini</strong> и добавьте в конец файла вот такую строку</p>
<div style="background:#F7F6F7;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">zend_extension="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/xdebug.so"</div>
<p>Теперь перезапустите PHP. Вот и всё, можете профилировать ваш код и искать в нём "узкие" места.</p>
<h3>Заключение</h3>
<p>Это последнее руководство в <a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-0">серии про среду web-разработки</a>, в котором нужно что-то компилировать. В заключительном посте я лишь приведу список тех приложений, с которыми мне доводилось работать под Mac OS X, и которые себя с той или иной стороны хорошо зарекомендовали.<br />
Комментарии к предыдущим сообщениям явно показывают, что без проблем пройти по всем, описанным мною шагам, удалось не всем. Это нормально, потому что сборка продукта из исходных текстов далеко не всегда проходит гладко от начала и до самого конца. И мне остаётся лишь надеяться, что у вас не возникнет непреодолимых препятствий на этом пути.</p>

	<h4>Связанные записи</h4>
	<ul class="st-related-posts">
	<li><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-2" title="Среда web-разработки на Mac OS X Leopard (часть 2) (11 Октябрь 2009)">Среда web-разработки на Mac OS X Leopard (часть 2)</a> (26)</li>
	<li><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-4" title="Среда web-разработки на Mac OS X Leopard (часть 4 &#8211; последняя) (27 Октябрь 2009)">Среда web-разработки на Mac OS X Leopard (часть 4 &#8211; последняя)</a> (5)</li>
	<li><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-1" title="Среда web-разработки на Mac OS X Leopard (часть 1) (30 Сентябрь 2009)">Среда web-разработки на Mac OS X Leopard (часть 1)</a> (27)</li>
	<li><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-0" title="Среда web-разработки на Mac OS X Leopard (вступление) (28 Сентябрь 2009)">Среда web-разработки на Mac OS X Leopard (вступление)</a> (1)</li>
	<li><a href="http://macosxhints.ru/rezultati-oprosa" title="Результаты опроса (25 Сентябрь 2009)">Результаты опроса</a> (0)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-3/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Среда web-разработки на Mac OS X Leopard (часть 2)</title>
		<link>http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-2</link>
		<comments>http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-2#comments</comments>
		<pubDate>Sat, 10 Oct 2009 21:49:32 +0000</pubDate>
		<dc:creator>Rodion Baskakov</dc:creator>
				<category><![CDATA[Приложения]]></category>
		<category><![CDATA[Система]]></category>
		<category><![CDATA[GD2]]></category>
		<category><![CDATA[Leopard]]></category>
		<category><![CDATA[MacPorts]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[PHP-FPM]]></category>
		<category><![CDATA[web-разработка]]></category>
		<category><![CDATA[терминал]]></category>

		<guid isPermaLink="false">http://macosxhints.ru/?p=271</guid>
		<description><![CDATA[Теперь, после сборки баз данных, пришла пора установить PHP. Я ставил PHP 5.3.0, который в настоящий момент является последней стабильной версией, указанной на сайте PHP. Кроме того сразу стоит отметить, что я опишу именно процесс сборки PHP как CGI-приложения для последующего использования с каким-нибудь proxy-сервером (в моём случае, с nginx), так что если вы планируете [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://macosxhints.ru/wp-content/uploads/2009/10/php-logo.jpg" alt="PHP Logo" title="PHP Logo" width="143" height="76" align="left" style="margin-right:4px" />Теперь, после <a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-1">сборки баз данных</a>, пришла пора установить PHP. Я ставил PHP 5.3.0, который в настоящий момент является последней стабильной версией, указанной на сайте PHP. Кроме того сразу стоит отметить, что я опишу именно процесс сборки PHP как CGI-приложения для последующего использования с каким-нибудь proxy-сервером (в моём случае, с nginx), так что если вы планируете собирать его как mod_php для сервера Apache, этот урок вам не подойдёт.<br />
Кроме того, в процессе моей сборки будет задействован менеджер процессов PHP-FPM, который позволяет более тонко управлять процессами PHP, необходимыми для обработки ваших сайтов. Но обо всём по порядку.</p>
<p><span id="more-271"></span><br />
<h3>Установка библиотек</h3>
<p>Итак, для начала нужно определиться, с чем собирать PHP. Лично для моих задач важна поддержка работы с изображениями (GD2) и шрифтами (Type 1 и Freetype), которые, в свою очередь, потребуют установки в систему ряда библиотек. Так что с них, пожалуй, и начнём. Для установки нужных библиотек, воспользуйтесь знакомой по <a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-0">предыдущим постам</a> утилитой из пакета MacPorts и выполните <a href="http://macosxhints.ru/kak-zapustit-terminal-v-mac-os">в терминале</a> следующее.</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo port install gd2</div>
<p>Эта команда установит в систему библиотеки для работы с графикой (в число которых входят libjpeg, libpng, libfreetype, libxpm и ряд других, необходимых для GD). Теперь установим t1lib (если поддержка шрифтов Adobe™ Type 1 вам не требуется. пропустите этот шаг, но тогда потом уберите из конфигурации PHP, которая будет описана ниже, опцию &#45;&#45;with-t1lib)</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo port install t1lib</div>
<h3 style="margin-top:15px">Сборка PHP с патчем FPM</h3>
<p>Теперь необходимо скачать исходники PHP и PHP-FPM. На <a href="http://www.php.net/downloads.php#v5">странице с доступными пакетами</a> выбираете тот, который вам необходим (в описываемом мною случае, 5.3.0), скачиваете (ориентирйтесь на надпись Complete Source Code), распаковываете директорию php-5.3.0. Теперь с <a href="http://php-fpm.org/Download">сайта PHP-FPM</a> нужно скачать менеджер процессов для той версии PHP, которую вы планируете устанавливать (в описываемом мною случае, php-fpm-0.6-5.3.0) и после скачивания, распаковываете его рядом с исходниками PHP.<br />
<a href="http://macosxhints.ru/kak-zapustit-terminal-v-mac-os">Откройте терминал</a> и перейдите в директорию, которая содержит папки с исходниками указанных продуктов. Нужно создать патч FPM, применить его к исходникам PHP, а затем подготовить место для необходимых при сборке файлов. Все необходимые для этого команды я привожу одной строкой, которую вы можете выполнить в терпинале:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">php-fpm-0.6-5.3.0/generate-fpm-patch && cd php-5.3.0 && patch -p1 < ../fpm.patch && ./buildconf &#45;&#45;force && mkdir fpm-build</div>
<p>Вот и всё, подготовительный этап закончен, теперь можно конфигурировать и собирать PHP. Как и в случае с базами данных, чтобы ознакомиться со списком всех доступных при конфигурации опций, нужно выполнить команду ./configure с параметром &#45;&#45;help, находясь в каталоге с исходниками PHP.</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">./configure &#45;&#45;help</div>
<p>После того, как определились, запускаете конфигуратор с нужными параметрами. В описываемом случае я устанавливаю PHP в директорию /usr/local/php-5.3.0, а также указываю местоположение необходимых мне библиотек:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">./configure &#45;&#45;enable-fpm &#45;&#45;prefix=/usr/local/php-5.3.0 \<br />
&#45;&#45;with-zlib &#45;&#45;enable-bcmath &#45;&#45;enable-calendar &#45;&#45;with-curl \<br />
&#45;&#45;with-libxml-dir &#45;&#45;enable-exif &#45;&#45;with-pcre-dir &#45;&#45;enable-ftp \<br />
&#45;&#45;with-gd=/opt/local/ &#45;&#45;with-jpeg-dir=/opt/local/ &#45;&#45;with-png-dir=/opt/local/ \<br />
&#45;&#45;with-freetype-dir=/opt/local/ &#45;&#45;with-t1lib=/opt/local/ \<br />
&#45;&#45;enable-gd-native-ttf &#45;&#45;with-gettext=/opt/local/ &#45;&#45;enable-mbstring &#45;&#45;enable-mbregex \<br />
&#45;&#45;with-mysql=/usr/local/mysql &#45;&#45;with-mysqli=/usr/local/mysql/bin/mysql_config \<br />
&#45;&#45;with-pdo-mysql=/usr/local/mysql &#45;&#45;with-pdo-pgsql=/usr/local/pgsql &#45;&#45;with-pgsql=/usr/local/pgsql \<br />
&#45;&#45;enable-sqlite-utf8 &#45;&#45;with-xmlrpc &#45;&#45;with-xsl &#45;&#45;with-xpm-dir=/usr/X11 &#45;&#45;with-iconv=shared,/opt/local/</div>
<p>О нормальном завершении конфигурации можно судить по тому, что у вас на экране терминала отсутствует слово <strong>Error</strong> и присутствует предложение "<strong>Thank you for using PHP</strong>". Если же есть какие-то ошибки, внимательно читайте, что именно не устраивает конфигуратор, или задавайте вопросы.<br />
Если конфигурация завершилась нормально, запускайте компиляцию:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">make</div>
<p>Если и после этого ошибки отсутствуют (как я вам тогда завидую!), можно устанавливать PHP:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo make install</div>
<p>Тут уже проблем возникнуть попросту не должно. Теперь, чтобы запустить PHP, потребуется произвести начальную конфигурацию PHP-FPM. С этим менеджером процессов сразу поставляется стартовая конфигурация, но в ней закомментированы поля, отвечающие за пользователя и группу, от имени которого должен работать PHP. Чтобы исправить этот недочёт, откройте любым текстовым редактором, который умеет сохранять plain-text файлы (ни в коем случае не Word!!!) файл php-fpm.conf, расположенный в директории /usr/local/php-5.3.0/etc/. Например так:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo vim /usr/local/php-5.3.0/etc/php-fpm.conf</div>
<p>И найдите там такие строки:</p>
<div style="border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px">&lt;value name="user"&gt;<br />
&lt;value name="group"&gt;</div>
<p>Уберите с них комментарии, и укажите нужное значение (я использую <strong>www</strong>).<br />
Осталось сделать пару последних штрихов:<br />
скопируйте файл с дефолтными настройками из директории с исходниками в директорию с установленным PHP</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo cp php.ini-development /usr/local/php/lib/php.ini</div>
<p>создайте ссылку на ваш PHP (я это делаю исключительно для удобства, этот шаг необязательный)</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo ln -s /usr/local/php-5.3.0 /usr/local/php</div>
<p>Вот и всё, теперь можно запускать PHP.</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo /usr/local/php/bin/php-cgi --fpm</div>
<p>Чтобы убедиться, что он запущен, можно поискать его в процессах:</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo ps aux | grep php-cgi</div>
<p>Чтобы остановить все запущенные процессы (например, при изменении настроек), нужно выполнить следующую команду</p>
<div style="background:#F7F6F7 url(http://macosxhints.ru/wp-content/uploads/media/icon-terminal.gif) no-repeat scroll 0 0;border:1px dotted #A0A0A0;margin-bottom:16px;padding:5px 10px 5px 40px">sudo killall php-cgi</div>
<p>На этом можно заканчивать, поскольку теперь у вас установлен PHP.<br />
Безусловно, в этом уроке описано далеко не всё. Например, PHP-FPM  можно собрать как самостоятельное приложение, и управлять процессом запуска PHP через него. А можно обойтись и вовсе без FPM. Как бы там ни было, я не ставил своей целью рассказать ВСЁ, поскольку это не имеет смысла: необходимую информацию можно почерпнуть как на <a href="http://php.net">официальном сайте PHP</a>, так и на <a href="http://http://php-fpm.org/">страницах PHP-FPM</a>. Но я всё же рассчитываю, что данная статья покажет, в каком направлении искать, и кому-то сильно сэкономит время.</p>
<p>Ну а в следующей статье, как и обещал, напишу про nginx, memcached и xdebug.</p>

	<h4>Связанные записи</h4>
	<ul class="st-related-posts">
	<li><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-3" title="Среда web-разработки на Mac OS X Leopard (часть 3) (18 Октябрь 2009)">Среда web-разработки на Mac OS X Leopard (часть 3)</a> (12)</li>
	<li><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-1" title="Среда web-разработки на Mac OS X Leopard (часть 1) (30 Сентябрь 2009)">Среда web-разработки на Mac OS X Leopard (часть 1)</a> (27)</li>
	<li><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-4" title="Среда web-разработки на Mac OS X Leopard (часть 4 &#8211; последняя) (27 Октябрь 2009)">Среда web-разработки на Mac OS X Leopard (часть 4 &#8211; последняя)</a> (5)</li>
	<li><a href="http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-0" title="Среда web-разработки на Mac OS X Leopard (вступление) (28 Сентябрь 2009)">Среда web-разработки на Mac OS X Leopard (вступление)</a> (1)</li>
	<li><a href="http://macosxhints.ru/strannye-tryuki-s-razmerom-faia-v-finder" title="Странные трюки с размером файла в Finder (24 Февраль 2009)">Странные трюки с размером файла в Finder</a> (13)</li>
</ul>

]]></content:encoded>
			<wfw:commentRss>http://macosxhints.ru/sreda-web-razrabotki-na-mac-os-x-leopard-2/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
	</channel>
</rss>

