首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >原则2.4.6不能通过CentOS控制台清除缓存

原则2.4.6不能通过CentOS控制台清除缓存
EN

Stack Overflow用户
提问于 2014-11-10 07:35:58
回答 1查看 1.1K关注 0票数 1

我在我的项目中使用Doctrine2.4.6(不是使用Symfony)。我需要清除缓存元数据,但当我执行该命令时:

代码语言:javascript
复制
cd /home/folder/public_html/includes/doctrine
php vendor/doctrine/orm/bin/doctrine orm:clear-cache:metadata

我发现了一个错误:

代码语言:javascript
复制
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代码编写一些太清晰的缓存吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-02-05 16:14:18

您的问题是,即使存在该命令,也无法从命令行清除缓存。为了解决这个问题,我实现了这个脚本(从另一个脚本中复制,所以我现在找不到答案)。

在命令行中这样做: clear_cache_cli.php

代码语言:javascript
复制
$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);
}

在您的web服务器中:

代码语言:javascript
复制
<?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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26838883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档