我正在尝试在我的localhost上使用APC(替代PHP缓存),使用wamp 2,PHP 5.3和CodeIgniter 1.7.2,但是如果我打开cache_by_default并启用apc.stat,服务器将崩溃,我得到以下内容错误:
[apc-error]无法重新声明课程 ci_benchmark in C:\瓦帕\ WWW \ķ\ MVC \笨\的common.php 在第127行。
我该怎么做才能解决这个问题?
答案 0 :(得分:1)
您是否检查了this user,看看他是否找到了比不启用cache_by_default更好的解决方案?
这是否仅在启用apc.cache_by_default AND apc.stat时发生?出于性能原因,您不希望在生产服务器上运行apc.stat。除了在转移到生产之前作为最终检查之外,根本不需要在开发服务器上运行缓存,此时您可以手动清除缓存。
您的生产服务器也是一个Windows框吗?我只是问,因为很容易丢失大量时间来跟踪因在不同环境中开发和运行而导致的错误和配置问题。如果生产环境与您的开发环境大不相同,那么另一个理由是支持关闭开发框中的缓存并继续更有效地利用您的时间 - 开发您的应用程序。
答案 1 :(得分:1)
当你禁用apc.stat时,apc似乎遇到了相对路径的问题。 CodeIgniter在主index.php文件中使用相对路径,因此它会破坏内容。
打开index.php并更改:
$system = '../system';
到此:
$system = '/var/www/system';
用服务器到CodeIgniter系统文件夹的完整路径替换'/ var / www /'。
答案 2 :(得分:0)
尝试将该功能中的要求更改为include_once。所以该文件只包含一次。在这个函数中我的意思是:system / codeigniter / Common.php:function& load_class($ class,$ instantiate = TRUE),我想这应该有所帮助。我认为APC正在积极地进行缓存。