Doctrine 2.4.6 не может очистить кеш через консоль CentOS

Я использую Doctrine 2.4.6 в моем проекте (не с Symfony). И мне нужно очистить метаданные кэша, но когда я выполняю эти команды:

cd /home/folder/public_html/includes/doctrine
php vendor/doctrine/orm/bin/doctrine orm:clear-cache:metadata

Я получил эту ошибку:

PHP Warning:  php_uname() has been disabled for security reasons in /home/folder/public_html/includes/doctrine/vendor/symfony/console/Symfony/Component/Console/Output/ConsoleOutput.php on line 111[LogicException]
Cannot clear APC Cache from Console, its shared in the Webserver memory and not accessible from the CLI.orm:clear-cache:metadata [--flush]

Что здесь не так? Могу ли я написать некоторый код слишком ясно кеш через код PHP?

1

Решение

Ваша проблема в том, что вы не можете очистить кеш из командной строки, даже если есть эта команда. Чтобы исправить это, я реализовал этот скрипт (скопированный из другого SO ответа, который я не могу найти прямо сейчас)

Это в вашей командной строке: clear_cache_cli.php

$url = 'https://YOURDOMAINENAMEHERE/apc_clear.php'; //use domain name as necessary
$result = file_get_contents($url);
$result_json = json_decode($result);
if (isset($result_json['success']) && $result_json['success'])
{
echo 'Cache borrada!';//handle success
exit(0);
} else {
echo 'Error!';
var_dump($result);//handle failure
exit(1);
}

На вашем веб-сервере:

<?php
if (in_array(@$_SERVER['REMOTE_ADDR'], array('127.0.0.1', '::1','YOUR_WEB_SERVER_IP','')))
{
apc_clear_cache();
apc_clear_cache('user');
apc_clear_cache('opcode');
echo json_encode(array('success' => true));
}
else
{
die('SUPER TOP SECRET');
}

Надеюсь это поможет!

1

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

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