<?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>Varien &#187; Настройка</title>
	<atom:link href="http://varien.com.ua/blog/category/magento/configuration/feed/" rel="self" type="application/rss+xml" />
	<link>http://varien.com.ua</link>
	<description>Varien/Magento blog</description>
	<lastBuildDate>Fri, 25 Jun 2010 13:02:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Установка и работа Magento на сервере Windows 2008 с IIS7</title>
		<link>http://varien.com.ua/blog/install-magento-on-windows-server-2008-iis7/</link>
		<comments>http://varien.com.ua/blog/install-magento-on-windows-server-2008-iis7/#comments</comments>
		<pubDate>Mon, 29 Mar 2010 15:56:13 +0000</pubDate>
		<dc:creator>Алексей Саморуков</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Настройка]]></category>
		<category><![CDATA[IIS]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://varien.com.ua/?p=780</guid>
		<description><![CDATA[Несмотря на то, что официальная поддержка Magento заявлена только <a href="http://www.magentocommerce.com/system-requirements">для LAMP-платформ</a> (Linux, Apache, PHP, MySQL), существует возможность установить Magento и под управлением IIS7 на Windows Server. Данная конфигурация не является официально поддерживаемой или рекомендуемой, но тем не менее - вполне работоспособна. О том как "подружить" Magento c Windows Server 2008 и IIS7 и пойдет речь ниже.]]></description>
			<content:encoded><![CDATA[<p>Несмотря на то, что официальная поддержка Magento заявлена только <a href="http://www.magentocommerce.com/system-requirements">для LAMP-платформ</a> (Linux, Apache, PHP, MySQL), существует возможность установить Magento и под управлением IIS7 на Windows Server. Данная конфигурация не является официально поддерживаемой или рекомендуемой, но тем не менее &#8211; вполне работоспособна. О том как &#8220;подружить&#8221; Magento c Windows Server 2008 и IIS7 и пойдет речь ниже.<br />
<span id="more-780"></span></p>
<p>Установка производилась на сервер с установленной ОС Windows 2008 64-bit.</p>
<p></p>
<ol>
<li><strong>Устанавливаем PHP</strong><br />
На сайте <a href="http://php.iis.net">php.iis.net</a> выбираем &#8220;Install PHP&#8221;.  Нам предлагают скачать Microsoft Web Platform. Соглашаемся. После установки запускам Web Platform Installer 2.0. Нажимаем &#8220;Web Platform&#8221; и в появившемся списке под элементом Web Server выбираем &#8220;Customize&#8221;. Отмечаем <strong>&#8220;URL rewrite 2.0&#8243;</strong> и возвращаемся в основное меню (снова нажав Web Platform). В &#8220;Frameworks and Runtime&#8221; отмечаем <strong>&#8220;PHP 5.2.13&#8243;</strong> и <strong>&#8220;Windows Cache Extension for PHP&#8221;</strong>, после чего можно нажимать Install. Программа установки сама скачает и установит все зависимости. PHP будет подключен к IIS7 в режиме FastCGI.</p>
<p><a href="http://varien.com.ua/wp-content/uploads/web-installer.png"><img src="http://varien.com.ua/wp-content/uploads/web-installer-300x225.png" alt="web-installer" title="web-installer" width="300" height="225" class="alignnone size-medium wp-image-785" /></a></p>
<li><strong>Устанавливаем MySQL. </strong><br />
Скачиваем последний MySQL GA (5.1.45 на момент написания статьи) с <a href="http://www.mysql.com/downloads/">официального сайта</a>.  Так как установка производилось на 64-бит версии &#8211; выбираем архив <strong>&#8220;Windows (x86,64-bit) MSI installer&#8221;</strong>. Во время установки на этапе конфигурации указываем что у нас &#8220;Server Machine&#8221; и &#8220;Multifunctional Database&#8221;.<br />
<a href="http://varien.com.ua/wp-content/uploads/mysql-install.png"><img src="http://varien.com.ua/wp-content/uploads/mysql-install-300x225.png" alt="mysql-install" title="mysql-install" width="300" height="225" class="alignnone size-medium wp-image-782" /></a></p>
<p>На вопрос о количестве допустимых соединений указываем OLTP (500 connections). Назначаем пароль root пользователя, он потребуется нам позже. Создадим базу данных Magento используя MySQL Command Line Client. Запустив его указываем пароль и пишем <strong>&#8220;create database magento;&#8221;</strong></p>
<p><a href="http://varien.com.ua/wp-content/uploads/mysql.png"><img src="http://varien.com.ua/wp-content/uploads/mysql-300x225.png" alt="mysql" title="mysql" width="300" height="225" class="alignnone size-medium wp-image-781" /></a></p>
<li><strong>Проверка PHP, добавление php_mcrypt</strong>.<br />
Для того, чтобы убедиться, что установка PHP прошла успешно &#8211; создаем текстовый файл i.php в директории c:\inetpub\wwwroot.  Содержимое файла &#8211; строка &lt;?php phpinfo(); ?&gt;. Попробуем загрузить его в браузере:<br />
<a href="http://varien.com.ua/wp-content/uploads/phpinfo.png"><img src="http://varien.com.ua/wp-content/uploads/phpinfo-300x225.png" alt="phpinfo" title="phpinfo" width="300" height="225" class="alignnone size-medium wp-image-783" /></a><br />
Если все сделано правильно &#8211; загрузится информация о PHP и подключенных расширениях. Для Magento потребуется дополнительное расширение <a href="http://www.php.net/mcrypt">mcrypt</a>, отсутствующее в PHP от Microsoft. Тем не менее оно присутствует в официальной сборке  PHP. Для того, чтобы скачать это расширение, перейдем на сайт <a href="http://windows.php.net/download/">windows.php.net</a> и загрузим &#8220;<a href="http://windows.php.net/downloads/releases/php-5.2.13-nts-Win32-VC6-x86.zip">PHP 5.2 (5.2.13) Non Thread Safe Zip</a>&#8221; . Распакуем архив во временную директорию.  Для того чтобы подключить mcrypt, необходимо скопировать файл <strong>libmcrypt.dll</strong> в директорию <strong>\Program Files (x86)\PHP</strong> и файл <strong>ext\php_mcrypt.dll</strong> в папку <strong>\Program Files (x86)\PHP\ext</strong>. Теперь добавим строчку <strong>extension=php_mcrypt.dll</strong> в файл <strong>\Program Files (x86)\PHP\php.ini</strong> и перезапустим IIS командой <strong>iisreset</strong>. Если все было сделано правильно, то обновленная страничка phpinfo будет содержать информацию о mcrypt extension.</p>
<li><strong>Установка Magento.</strong><br />
Итак, все готово для установки Magento. Скачиваем с <a href="http://www.magentocommerce.com/download">сайта www.magentocommerce.com</a> Full Release (zip) и распаковываем содержимое архива в папку C:\inetpub\wwwroot\magento. Предполагаемая скорость распаковки, к счастью, отличается от реальной примерно на 4 часа<br />
<a href="http://varien.com.ua/wp-content/uploads/unzip.png"><img src="http://varien.com.ua/wp-content/uploads/unzip-300x225.png" alt="unzip" title="unzip" width="300" height="225" class="alignnone size-medium wp-image-784" /></a><br />
После распаковки запускам web installer, указав в броузере адрес http://127.0.0.1/magento. На этапе установки получим сообщение о проблемах с правами доступа<br />
<strong><br />
          o Path &#8220;C:\inetpub\wwwroot\magento/app/etc&#8221; must be writable<br />
          o Path &#8220;C:\inetpub\wwwroot\magento/var&#8221; must be writable<br />
          o Path &#8220;C:\inetpub\wwwroot\magento/media&#8221; must be writable</strong></p>
<p>Для того, чтобы устранить проблему &#8211; назначим права Modify на указанные папки для группы Users. После этого можно продолжить установку, обновив страницу. На странице настройки доступа к БД указываем  параметры подключения к MySQL и имя базы (по умолчанию &#8211; magento). Ждем пока инсталлятор Magento создаст MySQL базу и завершаем установку. Magento установлена и доступна по адресу <strong>http://127.0.0.1/magento/</strong>. Админка доступна по адресу <strong>http://127.0.0.1/magento/index.php/admin</strong></p>
<li><strong>SEO friendly URL.</strong><br />
Для того, чтобы избавиться от index.php в пути файла, нам потребуется настроить rewrite. Так как синтаксис и формат  IIS rewrite отличается от apache mod_rewrite, создадим файл <strong>web.config</strong>  в папке magento:</p>
<pre class="brush: xml; toolbar: true;">
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;configuration&gt;
&lt;system.webServer&gt;
&lt;rewrite&gt;
&lt;rules&gt;
    &lt;rule name=&quot;magento rules&quot; stopProcessing=&quot;true&quot;&gt;
      &lt;match url=&quot;.*&quot; ignoreCase=&quot;false&quot; /&gt;
      &lt;conditions&gt;
        &lt;add input=&quot;{URL}&quot; pattern=&quot;^/(media|skin|js)/&quot; ignoreCase=&quot;false&quot; negate=&quot;true&quot; /&gt;
        &lt;add input=&quot;{REQUEST_FILENAME}&quot; matchType=&quot;IsFile&quot; ignoreCase=&quot;false&quot; negate=&quot;true&quot; /&gt;
        &lt;add input=&quot;{REQUEST_FILENAME}&quot; matchType=&quot;IsDirectory&quot; ignoreCase=&quot;false&quot; negate=&quot;true&quot; /&gt;
      &lt;/conditions&gt;
      &lt;action type=&quot;Rewrite&quot; url=&quot;index.php&quot; /&gt;
    &lt;/rule&gt;
 &lt;/rules&gt;
&lt;/rewrite&gt;
&lt;/system.webServer&gt;
&lt;/configuration&gt;
</pre>
<p>После этого в админке включим SEO Friendly URLs:<br />
System -> Configuration -> WEB -> Search Engines Optimization -> Use Web Server Rewrites -> Yes.</p>
</ol>
<p>На этом базовая установка и настройка Magento в IIS завершена. В завершение хотел бы добавить, что я не являюсь специалистом в IIS и буду рад услышать замечания к этой заметке.</p>
]]></content:encoded>
			<wfw:commentRss>http://varien.com.ua/blog/install-magento-on-windows-server-2008-iis7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Установка nginx + php-fpm + apc для работы с magento</title>
		<link>http://varien.com.ua/blog/ustanovka-magento-dlya-raboty-s-nginx-php-fpm-apc/</link>
		<comments>http://varien.com.ua/blog/ustanovka-magento-dlya-raboty-s-nginx-php-fpm-apc/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 10:51:08 +0000</pubDate>
		<dc:creator>Алексей Саморуков</dc:creator>
				<category><![CDATA[Magento]]></category>
		<category><![CDATA[Возможности]]></category>
		<category><![CDATA[Настройка]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[производительность]]></category>

		<guid isPermaLink="false">http://varien.com.ua/?p=663</guid>
		<description><![CDATA[В этой заметке описано, как установить magento для работы с веб сервером nginx и php-fpm. Зачем это нужно? magento предоставляет все возможности для создания функциональных и мощных систем электронной коммерции. Предоставляя максимум возможностей этот продукт достаточно требователен к ресурсам сервера. Заметка расчитана на тех, кто хочет выжать максимум производительности для своей конфигурации. Также она будет [...]]]></description>
			<content:encoded><![CDATA[<p>В этой заметке описано, как установить magento для работы с веб сервером <a href="http://nginx.net">nginx</a> и <a href="http://php-fpm.org">php-fpm</a>. Зачем это нужно? magento предоставляет все возможности для создания функциональных и мощных систем электронной коммерции. Предоставляя максимум возможностей этот продукт достаточно требователен к ресурсам сервера. Заметка расчитана на тех, кто хочет выжать максимум производительности для своей конфигурации. Также она будет полезна и владельцам VPS, ограниченные ресурсы которых делают традиционную связку apache + php еще менее пригодной к использованию. Описываемая в статье конфигурация построена на <a href="http://www.centos.org/">CentOS 5.4</a>, но может быть выполнена и на других Linux ОС или FreeBSD, с некоторыми отличиями. Также она может быть использована для построения массового magentо хостинга, так как в данном случае требования к расходу памяти становятся еще более критичными. Замена APACHE + mod_php на nginx + php-fpm позволяет существенно снизить потребление памяти, значительно повысить быстродействие при запросах статики (графика, стили и так далее) и сделать более масштабируемое решение.<br />
<span id="more-663"></span><br />
<strong>Подготовка.</strong><br />
В качестве операционной системы для большинства наших серверов мы используем CentOS 5. С одной стороны, эта система имеет длительный срок поддержки, а с другой &#8211; достаточно консервативна, так что шансы получить проблемы при обновлениях невелики. Если у вас сервер с 4 и более гигабайтами памяти я рекомендую использовать архитектуру x86_64. CentOS 5.4 можно скачать с <a href="http://mirror.centos.org/centos/5/isos/">одного из зеркал проекта</a>. </p>
<p><strong>Установка и конфигурирование</strong><br />
Во время установки я рекомендую отключить все дополнительные опции и пакеты. Все, что нужно для magento мы поставим позже. Также желательно отключить firewall и selinux, как минимум до завершения установки. </p>
<p>Несколько слов об используемом ПО. <a href="http://nginx.net">nginx</a> &#8211; это быстрый и крайне нетребовательный к ресурсам HTTP (и не только) сервер, который используется для раздачи статики (картинки, стили, javascript), а также позволяет работать с динамическим контентом используя FastCGI API. <a href="http://php-fpm.org">PHP-FPM</a> &#8211; это улучшенная реализация интерфейса FastCGI для PHP, распространяемая в виде патча к исходникам PHP. Сервер FastCGI позволяет работать по TCP или используя локальный socket. <a href="http://php.net/manual/en/book.apc.php">APC</a> &#8211; &#8220;оптимизатор&#8221; PHP, реализующий опкод кеширование для скриптов и, помимо этого, предоставляющий интерфейс для хранения данных скрипта в shared памяти. Его применение имеет смысл только в FastCGI или Apache SAPI режимах. </p>
<p>Репозиторий centos не содержит php-fpm. Конечно, можно самостоятельно скомпилировать PHP 5.2.11 + php-fpm, но намного более &#8220;правильный&#8221; с точки зрения удобства обновления и поддержки способ &#8211; использование репозитория. Для использования php5.2.x + fpm на наших серверах мы создали репозиторий (<a href="http://rpms.varien.com">rpms.varien.com</a>). В настоящий  момент поддерживается CentOS/RHEL 5, архитектуры i386 и x86_64. Также нам потребуется подключить репозиторий EPEL, содержащий многие программы и библиотеки, отсутствующие в системных репозиториях CentOS/RHEL. </p>
<p>Подключение репозиториев:
<pre>
  # rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
  # wget http://rpms.varien.com/varien-release-1-1.centos.varien.noarch.rpm
  # rpm -Uvh varien-release-1-1.centos.varien.noarch.rpm</pre>
<p>Устанавливем нужное нам ПО:</p>
<pre>  # yum install nginx
  # yum install php-fpm php-mysql php-gd php-mcrypt php-dom
  # yum install php-pecl-apc
  # yum install mysql-server
</pre>
<p>Включаем автостарт необходимых сервисов:</p>
<pre>  # /sbin/chkconfig nginx on
  # /sbin/chkconfig mysqld on
  # /sbin/chkconfig php-fpm on</pre>
<p>Конфигурируем nginx (файл <tt>/etc/nginx.conf</tt>). В данном примере магазин расположен по пути <tt>/magento/</tt> в папке <tt>/var/www/html/magento</tt>. Поддерживается URL Rewrite (аналог конфигурации для apache mod_rewrite), для php используется PHP-FPM подключенный через unix socket. </p>
<pre>
user              nginx;
worker_processes  1;
error_log         /var/log/nginx/error.log;
pid               /var/run/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] $request '
                      '"$status" $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    keepalive_timeout  65;

    # fastcgi nodes
    upstream  backend  {
        server unix:/tmp/fcgi.sock;
    }

    server {
        listen       80;
        server_name  example.local;
        root   /var/www/html;
        autoindex off;

        gzip on; # use gzip compression
        gzip_proxied any; # enable proxy for the fcgi requests
        gzip_types text/plain text/html text/css text/javascript;

        # protection (we have no .htaccess)
        location ~ (^/magento/(app/|includes/|lib/|/pkginfo/|var/|report/config.xml)|/\.svn/|/.hta.+) {
            deny all;
        }

        # handle all .php files, /downloader and /report
        location ~ (\.php|/downloader/?|/report/?)$ {
            if ($request_uri ~ /(downloader|report)$){ # no trailing /, redirecting
                rewrite  ^(.*)$ $1/ permanent;
            }
            fastcgi_index index.php;
            include /etc/nginx/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            if (-e $request_filename) { # check if requested path exists
                fastcgi_pass backend;
            }

        }

        # handle magento
        location /magento/
        {
            # set expire headers
            if ($request_uri ~* "\.(ico|css|js|gif|jpe?g|png)$") {
                expires max;
            }
            # set fastcgi settings, not allowed in the "if" block
            include /etc/nginx/fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root/magento/index.php;
            fastcgi_param SCRIPT_NAME /magento/index.php;
            # rewrite - if file not found, pass it to the backend
            if (!-f $request_filename) {
                fastcgi_pass backend;
                break;
            }
        }
    }
}
</pre>
<p>Конфигурация PHP-FPM (файл /etc/php-fpm.conf). Используется локальный socket. Наиболее важный параметр тут &#8211; max_children, его значение должно быть подобрано с учетом конфигурации (память, CPU) в процессе  тестов нагрузки. </p>
<pre>&lt;configuration&gt;
        &lt;section name="global_options"&gt;
                &lt;value name="pid_file"&gt;/var/run/php-fpm.pid&lt;/value&gt;
                &lt;value name="error_log"&gt;/var/log/php-fpm.log&lt;/value&gt;
                &lt;value name="log_level"&gt;notice&lt;/value&gt;
                &lt;value name="emergency_restart_threshold"&gt;10&lt;/value&gt;
                &lt;value name="emergency_restart_interval"&gt;1m&lt;/value&gt;
                &lt;value name="process_control_timeout"&gt;5s&lt;/value&gt;
                &lt;value name="daemonize"&gt;yes&lt;/value&gt;
        &lt;/section&gt;
        &lt;workers&gt;
                &lt;section name="pool"&gt;
                        &lt;value name="name"&gt;default&lt;/value&gt;
                        &lt;value name="listen_address"&gt;/tmp/fcgi.sock&lt;/value&gt;
                        &lt;value name="listen_options"&gt;
                                &lt;value name="owner"&gt;&lt;/value&gt;
                                &lt;value name="group"&gt;&lt;/value&gt;
                                &lt;value name="mode"&gt;0666&lt;/value&gt;
                        &lt;/value&gt;
                        &lt;value name="php_defines"&gt;
                        &lt;/value&gt;
                        &lt;value name="user"&gt;nginx&lt;/value&gt;
                        &lt;value name="group"&gt;nginx&lt;/value&gt;
                        &lt;value name="pm"&gt;
                                &lt;value name="style"&gt;static&lt;/value&gt;
                                &lt;value name="max_children"&gt;10&lt;/value&gt;
                                &lt;value name="apache_like"&gt;
                                        &lt;value name="StartServers"&gt;20&lt;/value&gt;
                                        &lt;value name="MinSpareServers"&gt;5&lt;/value&gt;
                                        &lt;value name="MaxSpareServers"&gt;35&lt;/value&gt;
                                &lt;/value&gt;
                        &lt;/value&gt;
                        &lt;value name="request_terminate_timeout"&gt;0s&lt;/value&gt;
                        &lt;value name="request_slowlog_timeout"&gt;0s&lt;/value&gt;
                        &lt;value name="slowlog"&gt;logs/slow.log&lt;/value&gt;
                        &lt;value name="rlimit_files"&gt;1024&lt;/value&gt;
                        &lt;value name="rlimit_core"&gt;0&lt;/value&gt;
                        &lt;value name="chroot"&gt;&lt;/value&gt;
                        &lt;value name="chdir"&gt;&lt;/value&gt;
                        &lt;value name="catch_workers_output"&gt;yes&lt;/value&gt;
                        &lt;value name="max_requests"&gt;500&lt;/value&gt;
                        &lt;value name="allowed_clients"&gt;127.0.0.1&lt;/value&gt;
                        &lt;value name="environment"&gt;
                                &lt;value name="HOSTNAME"&gt;$HOSTNAME&lt;/value&gt;
                                &lt;value name="PATH"&gt;/usr/local/bin:/usr/bin:/bin&lt;/value&gt;
                                &lt;value name="TMP"&gt;/tmp&lt;/value&gt;
                                &lt;value name="TMPDIR"&gt;/tmp&lt;/value&gt;
                                &lt;value name="TEMP"&gt;/tmp&lt;/value&gt;
                                &lt;value name="OSTYPE"&gt;$OSTYPE&lt;/value&gt;
                                &lt;value name="MACHTYPE"&gt;$MACHTYPE&lt;/value&gt;
                                &lt;value name="MALLOC_CHECK_"&gt;2&lt;/value&gt;
                        &lt;/value&gt;
                &lt;/section&gt;
        &lt;/workers&gt;
&lt;/configuration&gt;</pre>
<p>Запускаем nginx и php-fpm:
<pre>  # /etc/init.d/php-fpm start
  # /etc/init.d/nginx start</pre>
<p>Запускаем mysqld, и назначаем пароль для mysql рута
<pre>  # /etc/init.d/mysqld start
  # /usr/bin/mysql_secure_installation</pre>
<p>Теперь добавляем пользователя и базу данных magento:
<pre>  # mysql --user=root -p
  mysql>  CREATE USER 'magento'@'localhost' IDENTIFIED BY 'my_password';
  mysql>  CREATE DATABASE magento;
  mysql>  GRANT ALL PRIVILEGES ON `magento`.* TO 'magento'@'%' WITH GRANT OPTION;</pre>
<p>На этом этапе все готово для установки magento.</p>
<p><strong>Установка magento</strong><br />
Для установки magent в консоли я использовал wiki-статью <a href="http://www.magentocommerce.com/wiki/groups/227/installing_magento_via_shell_ssh">installing magento via ssh</a>.</p>
<ol>
<li>Скачиваем magento:<br /><tt># cd /var/www/html<br /><nobr># wget http://www.magentocommerce.com/downloads/assets/1.3.2.4/magento-1.3.2.4.tar.gz</nobr><br />
# tar -xvzf magento-1.3.2.4.tar.gz</tt></li>
<li>Если нам нужна тестовая база данных (sample db) &#8211; скачиваем и распаковываем ее, если нет &#8211; пропускаем этот шаг.<br /><tt><nobr># wget http://www.magentocommerce.com/downloads/assets/1.2.0/magento-sample-data-1.2.0.tar.gz<br />
# tar -xvzf  magento-sample-data-1.2.0.tar.gz<br />
# mv magento-sample-data-1.2.0/media/* magento/media/<br />
# mysql --user=root magento -p &lt; magento-sample-data-1.2.0/magento_sample_data_for_1.2.0.sql</nobr></tt></li>
<li>Назначаем корректного владельца всем файлам: <tt><br />
# chown -R nginx:nginx magento</tt>
</ol>
<p>Теперь переходим к этапу настройки magento, указав в браузере адрес нашей установки, например http://example.local/magento/. Должен заработать magento installation wizard. В настройках базы данных указываем пользователя magento (и назначенный вами пароль), адрес хоста &#8211; localhost. Также следует отметить флаг &#8220;Skip Base URL validation before next step&#8221;. Дальнейшая конфигурация и использование ничем не отличается от обычных установок magento.</p>
<p><strong>Дополнительная оптимизация</strong><br />
Прежде всего следует перенести magento cache в APC, так как файловое хранилище достаточно неєффективно, особенно при параллельных запросах. Для этого в секцию globals файла magento/app/etc/local.xml добавляем секцию cache:</p>
<pre>    &lt;cache&gt;
         &lt;backend&gt;apc&lt;/backend&gt;
         &lt;prefix&gt;MY_MAGENTO_&lt;/prefix&gt;
    &lt;/cache&gt;</pre>
<p>Также рекомендуется оптимизация mysql, ip стека linux, подбор параметров APC, конфигурирование firewall, но все это уже выходит за рамки данной заметки. </p>
]]></content:encoded>
			<wfw:commentRss>http://varien.com.ua/blog/ustanovka-magento-dlya-raboty-s-nginx-php-fpm-apc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ускоряем Magento: Часть 2 – Настройка веб-сервера</title>
		<link>http://varien.com.ua/blog/speed-up-magento-p-2-web-server-configuration/</link>
		<comments>http://varien.com.ua/blog/speed-up-magento-p-2-web-server-configuration/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 16:15:10 +0000</pubDate>
		<dc:creator>Михаил Бессолов</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Настройка]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[mod_php]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[производительность]]></category>

		<guid isPermaLink="false">http://varien.com.ua/?p=533</guid>
		<description><![CDATA[Вторая статья из серии "Ускоряем Magento", в которой мы рассмотрим параметры конфигурации веб-сервера и оптимальную настройку Apache для запуска Magento.]]></description>
			<content:encoded><![CDATA[<p>Вторая статья из серии &#8220;Ускоряем Magento&#8221;, в которой мы рассмотрим параметры конфигурации веб-сервера и оптимальную настройку Apache для запуска Magento.</p>
<p>Предыдущие статьи в серии &#8220;Ускоряем Magento&#8221;:</p>
<ul>
<li><a href="http://varien.com.ua/blog/speed-up-magento-p-1-what-is-the-goal/">Часть 1 &#8211; К чему стремиться</a></li>
</ul>
<p>Хотя существует несколько способов настройки выполнения PHP-скриптов под Apache: как модуль (mod_php) или как FastCGI/CGI (например, с помощью <a href="http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html">mod_fastcgi </a>или <a href="http://fastcgi.coremail.cn/">mod_fcgid</a>), наиболее часто используется все-таки первый (mod_php).</p>
<p>Кроме mod_php в конфигурационном файле Apache по умолчанию включена загрузка почти всех доступных модулей, несмотря на то, что не все их них требуются для работы Magento. Это становится особенно актуально в многосерверной конфигурации, когда различные узлы занимаются выполнением разных задач, и могут быть сконфигурированы для оптимального выполнения конкретной задачи.</p>
<p>Минимально необходимый перечень модулей Apache для работы Magento:</p>
<ul>
<li><a href="http://httpd.apache.org/docs/2.2/mod/mod_expires.html">mod_expires</a></li>
<li><a href="http://httpd.apache.org/docs/2.2/mod/mod_deflate.html">mod_deflate</a></li>
<li><a href="http://httpd.apache.org/docs/2.2/mod/mod_mime.html">mod_mime</a></li>
<li><a href="http://httpd.apache.org/docs/2.2/mod/mod_dir.html">mod_dir</a></li>
<li><a href="http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html">mod_rewrite</a></li>
<li><a href="http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html">mod_authz_host</a></li>
<li><a href="http://httpd.apache.org/docs/2.2/mod/mod_authz_user.html">mod_authz_user</a> – может понадобиться для ограничения доступа к тестовой среде с помощью аутентификации по паролям, но редко используется на &#8220;боевом&#8221; сервере.</li>
</ul>
<p>*Примечание: Мы рассматриваем настройку веб-сервера только с точки зрения Magento. Если у вас на том же сервере запущены другие веб-приложения, будьте осторожны при использовании приведенных рекомендаций.</p>
<p>Уменьшение количества загружаемых модулей (закомментировав соответствующие строчки &#8220;<a href="http://httpd.apache.org/docs/2.2/mod/mod_so.html#loadmodule">LoadModule</a>&#8221; в httpd.conf) позволяет несколько уменьшить объем памяти используемый веб-сервером, что может позволить обрабатывать больше одновременных соединений при том же объеме установленной памяти.</p>
<p>Важным параметром настройки Apache является задание оптимального количества запускаемых процессов Apache. На данный момент режим <a href="http://httpd.apache.org/docs/2.2/mod/worker.html">mpm_worker</a> все еще не может быть рекомендован для безопасного использования совместно с PHP, а процесс создания новых процессов Apache в режиме <a href="http://httpd.apache.org/docs/2.2/mod/prefork.html">mod_prefork</a> является &#8220;дорогой&#8221; операцией. Лучше всего работает создание необходимого количества процессов Apache сразу же при запуске веб-сервера. Это количество может быть определено практическим путем при максимальной загрузке сервера.</p>
<p>Обратите внимание, что значения параметров <strong><a href="http://httpd.apache.org/docs/2.2/mod/mpm_common.html#serverlimit">ServerLimit</a></strong> и <strong><a href="http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxclients">MaxClients</a></strong> нельзя увеличивать бесконечно. Они должны иметь значения, выставленные в зависимости от доступного количества физической памяти, для того, чтобы система не начала вытеснять &#8220;лишние&#8221; процессы Apache в раздел подкачки (что приведет к резкому &#8220;проседанию&#8221; сервера при увеличении нагрузки до определенного значения).</p>
<p>Параметр <strong><a href="http://httpd.apache.org/docs/2.2/mod/mpm_common.html#maxrequestsperchild">MaxRequestsPerChild</a></strong> можно оставить со значением по умолчанию (4000). </p>
<p>Использование пула постоянных соединений (keep-alive) хотя и улучшает скорость получения контента веб-браузером, но под высокой нагрузкой приводит к неоправданному перерасходу ресурсов сервера, поэтому <strong><a href="http://httpd.apache.org/docs/2.2/mod/core.html#keepalive">KeepAlive</a></strong> всегда должен быть выставлен в off.</p>
<p>Следующим важным параметром является использование сжатия контента. Несмотря на то, что это немного увеличивает использование вычислительных ресурсов сервера, выигрыш от быстрой отдачи контента броузеру и освобождение процессов для обработки следующих запросов с лихвой компенсируют эти &#8220;затраты&#8221;. Функциональность по компрессии контента предоставляется модулем <a href="<a href="http://httpd.apache.org/docs/2.2/mod/mod_deflate.html">mod_deflate</a>. В Magento в файле .htaccess приведены все необходимые директивы для включения компрессии, нужно просто раскомментировать соответствующие строки, чтобы уменьшить время загрузки страниц броузером. Вот пример части .htaccess, которая у вас получится в релузьтате:</p>
<pre>
    # Insert filter on selected content types only
    AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript

    # Netscape 4.x has some problems...
    BrowserMatch ^Mozilla/4 gzip-only-text/html

    # Netscape 4.06-4.08 have some more problems
    BrowserMatch ^Mozilla/4\.0[678] no-gzip

    # MSIE masquerades as Netscape, but it is fine
    BrowserMatch \bMSIE !no-gzip !gzip-only-text/html

    # Don't compress images
    SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary

    # Make sure proxies don't deliver the wrong content
    Header append Vary User-Agent env=!dont-vary
</pre>
<p>Кроме того, можно избежать <a href="http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride">дополнительных затрат по сканированию всех директорий в пути</a> к запрашиваемому скрипту или файлу, внеся все параметры из файлов .htaccess в основной httpd.conf файла в соответствующие разделы <a href="http://httpd.apache.org/docs/2.2/mod/core.html#directory">&lt;Directory&gt;</a>.</p>
<p>И, в качестве дополнительного штриха, если вы используете программный балансировщик (например <a href="http://sysoev.ru/nginx/docs/http/ngx_http_upstream.html">nginx</a>) в многосерверной конфигурации, можно переложить на него все функции по ведению логов доступа. Это позволит снизить дисковую активность на бек-эндах Apache.</p>
]]></content:encoded>
			<wfw:commentRss>http://varien.com.ua/blog/speed-up-magento-p-2-web-server-configuration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ускоряем Magento: Часть 1 &#8211; К чему стремиться</title>
		<link>http://varien.com.ua/blog/speed-up-magento-p-1-what-is-the-goal/</link>
		<comments>http://varien.com.ua/blog/speed-up-magento-p-1-what-is-the-goal/#comments</comments>
		<pubDate>Fri, 07 Aug 2009 11:32:43 +0000</pubDate>
		<dc:creator>Михаил Бессолов</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Magento]]></category>
		<category><![CDATA[Настройка]]></category>
		<category><![CDATA[benchmarks]]></category>
		<category><![CDATA[performance]]></category>
		<category><![CDATA[производительность]]></category>

		<guid isPermaLink="false">http://varien.com.ua/?p=466</guid>
		<description><![CDATA[В этой серии статей мы расскажем, как добиться оптимальной работы вашего магазина при высокой нагрузке. Путем всего лишь правильной настройки сервера и Magento можно поднять производительность в 10-15 раз без каких-либо изменений в исходном коде системы.]]></description>
			<content:encoded><![CDATA[<p>В этой серии статей мы расскажем, как добиться оптимальной работы вашего магазина при высокой нагрузке. Путем всего лишь правильной настройки сервера и Magento можно поднять производительность в 10-15 раз без каких-либо изменений в исходном коде системы.</p>
<p>Мы постараемся в каждой статье подробно разобрать каждый из аспектов оптимизации. Все статьи будут проиллюстрированы результатами проведенных нами тестов.</p>
<p>Итак, вот пример сравнения производительности двух кофигураций:</p>
<ul>
<li>Слева &#8211; настройки сервера и Magento по умолчанию</li>
<li>Справа &#8211; оптимизированные настройки среды и самой Magento</li>
</ul>
<p><img src="http://varien.com.ua/wp-content/uploads/performance/speed-up-series/chart-z-optimized-environment-optimized-magento.png" alt="Default Environment and Magento Setup vs Optimized Configuration" /></p>
<p>Пояснение о процессе тестирования:</p>
<p>Все тесты проводились на виртуальном сервере в вычислительном облаке для того, чтобы обеспечить максимальную повторяемость результатов без привязки к конкретному оборудованию. В заключительной статье мы сравним производительность Magento, установленной на виртуальном сервере и реальном &#8220;железе&#8221;, так как по результатам нашего тестирования реальное &#8220;железо&#8221; может значительно превосходить виртуальный &#8220;облачный&#8221; сервер. </p>
<p>Тесты запускались на виртуальном сервере в облаке <a href="http://www.rackspacecloud.com">Rackspace Cloud Servers</a> используя образ операционной системы CentOS 5.3 x86_64, подготовленный компанией Rackspace. Создавая экземпляры виртуальных серверов вы сможете выбрать практически любой из распространенных дистрибутов (RHEL/CentOS/Debian/Ubuntu/Gentoo/Arch и другие). PHP и MySQL были установлены из бинарных пакетов <a href="http://rpms.famillecollet.com">репозитория Remi</a>. Конфигурационные файлы Apache и MySQL мы приведем при разборе соответствущих настроек.</p>
<p>Все тесты прогонялись на трех типах (размерах) каталога продуктов в Magento: Magento Sample Data с ~100 продуктов, каталог с 10 000 (10 тысяч) продуктов, и каталог с 80 000 (80 тысяч) продуктов.</p>
<p>В тестах мы измеряли какое количество запросов способен обработать магазин при обращении к стартовой странице сайта и в ходе усредненной сессии пользователя (посещение разных страниц каталога, пользование поиском и добавление товаров в корзину).</p>
<p>На графиках используются следующие сокращения по оси X:</p>
<ul>
<li>sd &#8211; Magento sample data</li>
<li>10k &#8211; магазин с 10 тысячами продуктов</li>
<li>80k &#8211; магазин с 80 тысячами продуктов</li>
</ul>
<p>Каждый из тестов запускался при разной нагрузке (concurrency &#8211; количестве одновременных соединений): 10, 20, 50 и 100 одновременных соединений.</p>
<p>Оранжевым цветом отмечены столбцы соответсвующие количеству запросов в секунду при усредненной сессии посещений, зеленым &#8211; количество запрос в секунду к стартовой странице.</p>
<p>В статье &#8220;Тестирование производительности&#8221; мы более подробно остановимся на используемых инструментах и используемой методике тестирования.</p>
]]></content:encoded>
			<wfw:commentRss>http://varien.com.ua/blog/speed-up-magento-p-1-what-is-the-goal/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
