Уважаемые разработчики, поделитесь пожалуйста опытом о том, как ускорить работу Opencart? Возможно есть какие-то общие рекомендации или кто-нибудь нашел панацею, с которой сайт будет летать?
использовать кэширование. 1. Поддержка кэширования через Memcached. Установка: 1. Берете файл cache.php и перезаписываете им файл system/library/cache.php. Эта процедура не нарушит работу сайта - будет использоватся обычный файловый кэшь. 2. Устанавливаете в системе (или на другом сервере) сервер memcached и запускаете его. Это делается просто - без каких-то особенностей. Единственное, что если будете использовать кэширование в memcached совместно с mysql_cached, скорей всего в конфиге memcached нужно будет увеличить размер используемой памяти. На CentOS, например, после установки выделяется 65 Мб. 2. Идете в корень магазина и текстовым редактором дописываете в config.php строки конфигурации (с параметрами своего memcached сервера): define('CACHE_DRIVER', 'memcached'); define('MEMCACHE_HOSTNAME', 'localhost'); define('MEMCACHE_PORT', '11211'); define('MEMCACHE_NAMESPACE', 'opencart_test'); Если в CACHE_DRIVER установлено другое значение или нет подключения к memcached серверу, будет использоваться стандартный файловый кэш. Рекомендую эти-же параметры прописать в файле конфигурации админки - admin/config.php. Сейчас это не очень принципиально, но, надеюсь, в будущем в админке добавяться опции управления кэшем. Параметр MEMCACHE_NAMESPACE нужен для варианта когда одним сервером memcached будут пользоваться разные магазины - для разделения их кэшей.
Из техподдержки хостинга по поводу сервера memcached мне ничего не ответили. Может его можно самостоятельно подключить как-то?
1. Memcached Вы можете поставить если у Вас есть root-доступ к выделенному серверу (dedicated) сами, или через тех. поддержку хостинга 2. По оптимизации нужно смотреть в контроллеры категорий, меню категорий, если стоит версия опенкарт 1.5 убрать подсчет количества товара. 3. Оптимизация настроек mysql (также root доступ). 4. Включить gzip зжатие страниц (в админке опенкарт). Задаеться значениями от 0 до 9. На сервере PHP должен поддерживать gzip. У самого два сайта на 0.2.2 ocstore со своими допилами. на одном : около 600 категорий, 8 тис товаров. Страничка примерно грузится 1-1.5 сек ( с сторонними ява скриптами). Сами мы Memcached Не используем.
$iD, спасибо за подробное объяснение. Можно сразу пару вопросов? Где его брать? У меня тоже CentOS, как понять, достаточно ли этого значения? И еще вопрос к deyw На какие конкретно параметры стоит обратить внимание? Я не сосвем пойму чем черевато выставление максималного значения. По логике - если поставить 9, то будет максимальное сжатие, соответственно загрузка будет максимально быстрой, но будет более высокая нагрузка на сервер? И вопрос по теме для всех - не мойму какова суть работы дополнения Increase Page Speed - http://www.opencart.com/index.php?r...ion_id=6204&filter_search= page speed improve Имеет ли смысл ставить подобные вещи? Заранее спасибо за ответы!
Код править? В админке вроде этих настроек нет или не вижу явного. - Подскажите пожалуйста как убрать подсчет количества товара?
У меня на OpenCart 1.5.1.3 в админке: Система -> Настройки -> Опции -> Продукты -> Category Product Count: Show the number of products inside the subcategories in the storefront header category menu. Be warned, this will cause an extreme performance hit for stores with a lot of subcategories - установить Нет
Для скорости работы имеет занчение исходный вес загружаемых картинок или движок их всё равно решет под себя? К примеру, ингда слайд-шоу грузится очень долго, возможно, что это из-за размера картинок в нём?
Размер тоже имет значение (). Делал както анализ производительности сайта. Так вот при загрузке главной страницы, больше всего времени тратится на загрузку изображений из слайдера. Неплохим решением для ускорения работы движка есть - загрузка библиотек jquery с удаленных ресурсов Для этого нужно скрипты из header.tpl ссылающиеся на catalog\view\javascript\jquery\jquery-1.7.1.min.js заменить на http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.1.min.js Ну и по такому же принципу остальные
- спасибо! И ещё вопрс: картинки слайд шоу загружаются все сразу или по мере их показа? К примеру, если уменьшить интервал слай-шоу ускорит это скорость загрузки первой страницы?
есть кнопочка "мне нравится"))))) для firefox есть плагин firebug, в него ставится google page speed взять тут https://developers.google.com/speed/pagespeed/?hl=ru очень хорошо анализирует скорость загрузки и помогает найти тормоза. дает рекомендации, позволяет оптимизировать изображения, jquery,css - в общем MUST HAVE если желаете ускорить сайт слайдшоу по идее все сразу грузит. я его вообще убрал, весит как весь мой сайт остальной))) может его тоже както можно оптимизировать. кто знает - пишите
Никто случаем не встречал проги, которая бы оптимизировала изображения без визуальной потери качества? Я пользуюсь сейчас фунцкией в фотошопе "Сохранить для Web", в зависимости от настроек можно добится нужного результата, но вдруг еще можно сэкономить пару килобайт )) Как раз - оптимизировать картинки в фотошопе функцией Сохранить для Web
Run this commands in your database in PHPMyadmin: Source: http://forum.opencart.com/viewtopic.php?f=20&t=39759#p191059 Код: ALTER TABLE `category` ADD INDEX ( `parent_id` ) ; ALTER TABLE `category` ADD INDEX ( `top` ) ; ALTER TABLE `category` ADD INDEX ( `sort_order` ) ; ALTER TABLE `category` ADD INDEX ( `status` ) ; ALTER TABLE `option` ADD INDEX ( `sort_order` ) ; ALTER TABLE `option_description` ADD INDEX ( `name` ) ; ALTER TABLE `option_value` ADD INDEX ( `option_id` ) ; ALTER TABLE `option_value_description` ADD INDEX ( `option_id` ) ; ALTER TABLE `order` ADD INDEX ( `customer_id` ) ; ALTER TABLE `product` ADD INDEX ( `model` ) ; ALTER TABLE `product` ADD INDEX ( `sku` ) ; ALTER TABLE `product` ADD INDEX ( `upc` ) ; ALTER TABLE `product` ADD INDEX ( `manufacturer_id` ) ; ALTER TABLE `product` ADD INDEX ( `sort_order` ) ; ALTER TABLE `product` ADD INDEX ( `status` ) ; ALTER TABLE `product_option` ADD INDEX ( `option_id` ) ; ALTER TABLE `product_option_value` ADD INDEX ( `product_option_id` ) ; ALTER TABLE `product_option_value` ADD INDEX ( `product_id` ) ; ALTER TABLE `product_option_value` ADD INDEX ( `option_id` ) ; ALTER TABLE `product_option_value` ADD INDEX ( `option_value_id` ) ; ALTER TABLE `product_tag` ADD INDEX ( `product_id` ) ; ALTER TABLE `product_tag` ADD INDEX ( `tag` ) ; ALTER TABLE `url_alias` ADD INDEX ( `query` ) ; ALTER TABLE `url_alias` ADD INDEX ( `keyword` ) ; ALTER TABLE `user` ADD INDEX ( `username` ) ; ALTER TABLE `user` ADD INDEX ( `password` ) ; ALTER TABLE `user` ADD INDEX ( `email` ) ;
что это? добавляет индексы? на сколько возрастает скорость на практике? судя по англоязычному форуму с 50 сек поиск ускорился до 5) если ли опыты на ocstore?