Инструкция по оптимизации скорости работы и загрузки Magento.
Оптимизацию можно разделить на 2 составляющие. Первая должна в идеале производиться на стадии создания магазина. Она включает в себя перечень настроек сервера, установку расширений Апача и т.п. Вторая – это непосредственно оптимизация скриптов магазина.
Советы по настройке сервера
1. Установить APC - или Xcache -
2. Включить KeepAlives на сервере – это даст возможность браузеру не устанавливать десятки соединений для загрузки всех картинок и файлов, а использовать одно.
3. Выделить больше памяти на исполняемые php скрипты и для mySQL.
Советы по настройке движка магазина
1. Самый действенный способ по ускорению загрузки страничек – это слияние кучи CSS и JS файлов. Это хорошо умеет делать Fooman Speedster, установить его можно от сюда .
Чтобы он заработал необходимо выполнить некоторые инструкции. Замечу сразу что это расширение не только склеивает файлы, но и сжимает их gzip’ом, что ускоряет загрузку страничек при медленном интернет соединении.
Инструкция по установке:
Необходимо добавить в .htaccess следующее
############################################
## Compress, Combine and Cache Javascript/CSS
RewriteRule ^(index.php/)?minify/([^/]+)(/.*.(js|css))$ lib/minify/m.php?f=$3&d=$2
В том же htaccess файле нужно раскомментировать строчку с правилом RewriteBase. И проверить чтобы там был указан правильный путь к месту где лежит index.php.
После установки расширения через magento-connect нужно проверить что /lib/minify/m.php имеет права 755 и папка в которой он лежит тоже, а /var/minifycache доступна для записи – 777.
Данному расширению, после установки необходимо несколько загрузок страничек для того чтобы собрать данные и выстроить КЭШа.
После установки я на глаз почувствовал разницу. В среднем увеличение происходит на 30-50%.
2. Включение Gzip сжатия в .htaccess необходимо как для работы Fooman Speedster так и для возможности использования его сервером при запросах обычных страничек. Некоторые браузеры, посылая в заголовках пакетов хедеры с форматом принимаемых форматов данных могут получать обычные странички сжатыми и в рантайме распаковывать их. Что это дает? Так же как и для предыдущего пункта это предназначено для ускорения передачи данных при низкоскоростных каналах. Отмечу что сервер тоже должен поддерживать эту технологию.
Включить gzip можно следующим образом, добавив в htaccess следующее:
php_flag zlib.output_compression on
3. Лучше использовать memory-based filesystem для хранения КЭШа и сессий. Я не уверен, что это поможет хотя бы немного увеличить скорость работы на каждой установке магазина, но факт в том что работа с файловой системой медленнее чем с базой данных.
4. Включение Magento КЭШа. Это прилично помогает ускориться, но включение КЭШа должно быть произведено после установки всех расширений.
5. Многие рекомендуют убрать с главной странички динамический контент, т.е. по возможности сделать её статичной. Это позволит меньше нагружать сервер при открытии главной странички, а освободившиеся ресурсы пойдут на отработку других задач.
6. Ну и в завершение установим Magento Compiler. Вот тут получаем ключ , заходим в magento-connect и выставляем режим совместимости Beta. Затем ставим расширение. Если движку хватит прав, он изменит index.php сам, если нет, то надо будет руками поменять
Это
$mageFilename = ‘app/Mage.php’;
На это
/**
* Error reporting
*/
error_reporting(E_ALL | E_STRICT);
/**
* Compilation includes configuration file
*/
$compilerConfig = ‘includes/config.php’;
if (file_exists($compilerConfig)) {
include($compilerConfig);
}
После установки – заходим в админку System->Tools->Compilation, компилируем и тестим.
Данное расширение дает прирост производительности движка на стороне сервера. Это самый эффективный метод, на мой взгляд, для разгона на слабых хостингах. Результаты опять-таки видны невооруженным глазом.
Внимание! Это расширение не рекомендуется ставить на продакшен серверы так как оно еще пока в Beta версии.













Ты забыл про nginx.
Вот ещё интересная статья по оптимизации от Varien
после установки спидстера (магенто 1401) сломался дизайн, полностью, хорошо, что не закрыл окно с коннектом, там после удаления модуля всё поправилось.
при добавлении php_flag zlib.output_compression on сервер выдал ошибку 500, и после этого я забил на оптимизацию.