Кэш включен, но var / cache пуст?


16

У меня magento 1.9.0.1 и все кэши включены, почему var/cacheпусто? Я могу только очистить кеш от бэкэнда, но когда он сломан, у меня проблема.

Где magento пишет файлы кеша?


Это также может быть проблема прав доступа / пользователя / группы.
Дэн Норрис

Ответы:


15

Может также быть, вы используете другое хранилище кеша, как memcached,Redis


да, если magent использует redis / memcached в качестве хранилища кеша, то он не сохраняется в папке var / cache
Амит Бера

Где это сохранить тогда?
черный

13

Если у вас есть varкаталог или даже var/cacheкаталог, но Magento не может записать в него, Magento будет использовать, sys_get_temp_dir()чтобы определить хорошее место для размещения файлов кэширования.

Часто это так /tmp/и приводит /tmp/magento/var/cache(спасибо fschmengler)


5
в этом случае /tmp/magento/var/cache
директория

Можете ли вы взглянуть на magento.stackexchange.com/questions/94638/… и ответить. Я надеюсь, что вы можете дать достаточно информации
Бабочка

это действительно помогает мне
Амит Бера

Вместо того, чтобы писать благодарные комментарии, пожалуйста, оставьте комментарий, чтобы покинуть область комментариев для «реальных» комментариев и вопросов, пожалуйста :)
Фабиан Блехшмидт

я уже делал это в прошлом .. так что на этот раз не буду голосовать :)
Амит Бера

6

Я столкнулся с этой проблемой, когда magento записывает файл кэша в /tmp/magento/var/cacheпапку.

Это странная проблема, я решил эту проблему SELinux с помощью следующей команды.

$ sudo restorecon -R /var/www/html
$ sudo setsebool -P httpd_unified 1

3

На кого это влияет. Любой файл, который заканчивается на " .xml", может и будет использоваться.
Недостаточно просто переименовать файл XML на что-то вроде oldsomething.xmlтого, что вы должны сделать, например, local.xml.backгде файл не заканчивается точкой XML. Уход local.xmlи oldlocal.xmlзагрузит оба файла.

Я не знаю достаточно о внутренней работе, чтобы понять, почему это так, но я проверил это, чтобы понять, что это правда. Вы можете доказать это, вставив что-то, что сломает Magento в переименованном XML, и Magento перестанет работать.

Может быть, код Magento не различает имя файла, а только расширение в определенном месте?

Мой веб-сайт все еще работает на Magento 1.6.2.0.
Слишком стеснительный для обновления (он не сломался), но я поставил 1.8 Redis, и похоже, он работает. Я тестирую 1.9.2.0, но пока не готов к прайм-тайму, так как некоторые из моих расширений больше не работают.

Попробуйте https://github.com/steverobbins/Magento-Redismanager . Мне нравится, тебе тоже может понравиться!


Для вашей информации Magento загружает .xmlфайлы Mage_Core_Model_Configв функции loadBase(). Это берет все .xmlс функцией PHP glob()в начале$files = glob($etcDir.DS.'*.xml');
Matthéo Geoffray

0

Успешно решить проблему, и это самая странная вещь. Когда я изменяю, local.xmlчтобы исправить проблему, я помещаю резервную копию старого файла, говоря local_back.xml. Я просто удаляю этот файл и теперь все работает нормально. Понятия не имею, почему Magento забрал этот файл. В любом случае проблема была решена.


1
Потому что magento загружает каждый XML-файл, app/etc/как вы можете видеть\Mage_Core_Model_Config::loadBase
Фабиан Блехшмидт

У меня есть Bigin Magento Devloper
Ашвин Монпара

0

Возможно, кто-то не понимает, что происходит или мой ответ, так как в других коммитах Magento собирается загрузить все, что заканчивается ".xml". Поэтому, если вы хотите, чтобы резервные копии или копии не использовались, добавление назад или резервное копирование или что-либо еще НЕ БУДЕТ РАБОТАТЬ!

back_local.xml не будет работать

Если вам нужны копии или резервные копии, вам нужно изменить суффикс имени файла или, другими словами, в формате «local.xml.backup» или вообще убить .xml. Я использую local.xml.backup в качестве копии, пока я Я тестирую, так как я могу легко удалить «.backup», чтобы использовать его, если захочу. Вы всегда можете использовать «Сохранить как» в редакторе для разных версий, например .back_today, или .back2 и тому подобное.

Для вашей информации Magento загрузите .xml файлы в Mage_Core_Model_Config в функцию loadBase (). Он берет все .xml с помощью PHP-функции glob () в начале $ files = glob ($ etcDir.DS. '*. Xml'); - Маттео Джеффри 17 февраля '16 в 14:56

Поэтому при тестировании разных бэкэндов используйте вышеуказанный формат.

Что касается APC memcached , они устарели и не используют такие ключи, как Redis . Из того, что я понимаю, нет существенной разницы между

    <session_save><![CDATA[db]]></session_save>

[files], [db], [memcache] или другой кеш, так как это больше похоже на время отклика сервера и / или жестких дисков, используемых на сервере. См .: « Хранение сессий Magento: что выбрать и почему

Когда My VPS (InMotion) сменился на исключительно твердотельные жесткие диски, все стало значительно быстрее. Я получал миллисекундные переводы!

На моих собственных тестовых серверах дома, в одном боксе, который использует скорость шпинделя HST 10k и загрузку кеша, например 64 МБ (помечено для использования на сервере), жесткий диск очень быстрый, а другой - очень медленный с жесткими дисками, которые вы получаете. из коробки OEM.

Также очень помогает наличие 8 процессорных ядер и 32 ГБ оперативной памяти. Так много из того, что предлагается в режиме онлайн в качестве VPS или даже выделенного сервера, является читом !!! Вам нужно вдаваться в подробности, или ресурсы, которые вы получите как Unlimited, ничего не значат, если сервер в действительности является общим хостингом, выдаваемым за что-то другое. И не позволяйте Картинкам вводить вас в заблуждение относительно того, какими могут быть их объекты. Вы можете получить что-то вроде Хиллари за ее электронную почту, просто что-то в туалете. Суть в том, что они часто хотят получить годовой или более контракт, чтобы получить хорошую цену, и может потребоваться месяц или более, чтобы оптимизировать ваши настройки, прежде чем вы узнаете, что вы просто на медленном сервере !!!

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.