Я проверил Symfony 1.4 и увидел это в коде:
// Hack from Agavi (http://trac.agavi.org/changeset/3979)
// With php < 5.2.6 on win32, renaming to an already existing file doesn't work, but copy does,
// so we simply assume that when rename() fails that we are on win32 and try to use copy()
if (!@rename($tmpFile, $cache))
{
if (copy($tmpFile, $cache))
{
unlink($tmpFile);
}
}
Этот фрагмент кода должен находиться в файле sfConfigCache.php в строке 354. Не могли бы вы проверить, есть ли у вас эти строки? Если нет, рассмотрите возможность обновления или исправления, и если да, вы можете записать в журнал $ tmpFile, прежде чем отсоединять его, просто чтобы увидеть, есть ли попытка отсоединить эти файлы или нет.
Чтобы добавить дополнительную информацию журнала, попробуйте этот код вместо:
if (!@rename($tmpFile, $cache))
{
sfContext::getInstance()->getLogger()->info('attempt to renaming ' . $tmpFile . ' failed, trying copy');
if (copy($tmpFile, $cache))
{
sfContext::getInstance()->getLogger()->info('copy successful, now unlinking ' . $tmpFile);
unlink($tmpFile);
}
else
{
sfContext::getInstance()->getLogger()->err('probem with copy for file '.$tmpFile);
}
}