Что именно делает файловое приложение/etc/использует кэш.сир ду?
Сегодня днем я столкнулся с ошибкой кэширования, которая обычно (по единодушному мнению веб-сайтов) решается (и в данном случае была) путем удаления app/etc/use_cache.ser. Что именно делает этот файл? Содержание ни в коем случае не является описательным. Кроме того, в какой момент Magento самостоятельно восстанавливает этот файл?
2 answers
Это был сериализованный массив PHP, который был флагом для включения возможности кэширования в приложении. Это включает в себя блок, макет, перевод, конфигурацию, прослушивание и многое другое. Это было прекращено через некоторое время после 1.2 или около того в 1.4 alpha 3 - и поэтому я думаю, что у вас устаревшая установка Magento.
Метод, который находит файл на диске для записи/чтения, относится к классу Mage_Core_Model_App
и помечен как устаревший:
/**
* Get file name with cache configuration settings
*
* @deprecated after 1.4.0.0-alpha3, functionality implemented in Mage_Core_Model_Cache
* @return string
*/
public function getUseCacheFilename()
{
return $this->_config->getOptions()->getEtcDir().DS.'use_cache.ser';
}
Обычно это выглядело что-то вроде этого:
a:7:{s:6:"config";i:0;s:6:"layout";i:0;s:10:"block_html";i:0;s:9:"translate";i:0;s:11:"collections";i:0;s:3:"eav";i:0;s:10:"config_api";i:0;}
Который, будучи несериализованным, может быть визуализирован в виде массива PHP, например:
Array
(
[config] => 0
[layout] => 0
[block_html] => 0
[translate] => 0
[collections] => 0
[eav] => 0
[config_api] => 0
)
Проблема с файлом такого типа заключается в том, что он должен быть доступен для записи сервером, и наличие его в приложении/etc/ может привести к потенциальным проблемам для вашего local.xml файл, позволяющий читать конфигурацию базы данных и ключи шифрования, если у вас неправильно настроены разрешения.
В какой-то момент это было заменено экраном управления кэшем администратора, который дал вам возможность включать или отключать определенные области кэширования.
Дополнительная информация об устранении неполадок с use_cache.ser:
Http://www.magentocommerce.com/wiki/groups/227/cache_is_not_writable
Сериализация в PHP: http://php.net/manual/en/function.serialize.php
Для версий 1.4+ этот файл не должен существовать. Он устарел в версии 1.4.0.0-alpha3.
Для версий до 1.4 этот файл использовался для хранения состояния типов кэша (включено/отключено). В нем сохранено то, что вы видите в меню System->Cache Management
.