Cakephp не может создать папку tmp

Я использую vagrant для настройки моей виртуальной ОС centos 6.6 x86_64. Я установил Apache и CakePHP в него.

Я позволил Apache работать как бродячий пользователь и в бродячей группе. И бродяга Vagrantfile имеет линию config.vm.synced_folder "./gym", "/var/www", mount_options: ["dmode=777", "fmode=777"],

После того, как я запустил index.php, cakephp сообщит об ошибке:

Предупреждение PHP: / var / www / gym_new / app / tmp / cache / persistent / недоступен для записи в /var/www/cake_2_6/Cake/Cache/Engine/FileEngine.php в строке 385

Предупреждение PHP: _cake_core_ кеш не смог записать ‘file_map’ в кеш файлов в /var/www/cake_2_6/Cake/Cache/Cache.php в строке 328

Поэтому я открываю FileEngine.php есть ошибка триггера кода:

/**
* Determine is cache directory is writable
*
* @return bool
*/
protected function _active() {
$dir = new SplFileInfo($this->settings['path']);
if (Configure::read('debug')) {
$path = $dir->getPathname();
if (!is_dir($path)) {
mkdir($path, 0775, true);
}
}
if ($this->_init && !($dir->isDir() && $dir->isWritable())) {
$this->_init = false;
trigger_error(__d('cake_dev', '%s is not writable', $this->settings['path']), E_USER_WARNING);
return false;
}
return true;
}

Я думаю, что разрешение не имеет проблем, поэтому я создаю новый php прямо под webroot:

$path = "/var/www/gym_new/app/tmp/cache/";
if(mkdir($path, 0775, true) && is_dir($path) && is_writable($path))
{
echo "true";
}
else
{
echo "false";
$error = error_get_last();
echo $error['message'];
}

Мой код работает отлично, и папки (tmp и кеш) созданы успешно. Но тот же код в CakePHP не может пройти. Так что я пропустил? Файл cakephp находится вне webroot, доза это вызывает проблему?

0

Решение

Проблема в if (Configure::read('debug')),

Я обнаружил, что я не установил для debug ненулевое значение, поэтому cakephp не будет создавать папки, даже если они не существуют.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]