我正在尝试使用带有zend框架的xcache来缓存Zend_Db_Table_Abstract中的元数据,以便每个表只调用一次描述查询。在我的引导程序中运行xcache并运行应用程序时,我遇到以下错误:
Warning: xcache_get() [function.xcache-get]: xcache.var_size is either 0 or too small to enable var data caching in /home/randall/htdocs/lib/Zend/Cache/Backend/Xcache.php on line 95.
我调整了php.ini中的设置:
; XCACHE
626 [xcache-common]
627 zend_extension=/usr/lib/php5/20060613/xcache.so
628
629 [xcache-admin]
630 xcache.admin.enable_auth = On
631 xcache.admin.user = "user"
632 xcache.admin.password = "********"
633
634 [xcache]
635 xcache.shm.scheme = "mmap"
636 xcache.size = 128M
637 xcache.count = 4
638 xcache.slots = 8K
639 xcache.ttl = 0
640 xcache.gc_interval = 0
641
642 xcache.var_size = 64M
643 xcache.var_count = 1
644 xcache.var_slots = 8K
645 xcache.var_ttl = 0
646 xcache.var_maxttl = 0
647 xcache.var_gc_interval = 300
648 xcache.test = Off
649
650 xcache.readonly_protection = Off
651 xcache.mmap_path = "/tmp/xcache"
652 xcache.coredump_directory = ""
653
654 xcache.cacher = On
655 xcache.stat = On
656 xcache.optimizer = Off
657
658 [xcache-coverager]
659 xcache.coverager = On
660 xcache.coveragedump_directory = ""
但无论我将xcache.var_size参数设置为什么,我仍然会继续得到错误。这发生在xcache 1.2.2和1.3.0上。任何帮助将不胜感激。
答案 0 :(得分:1)
运行phpinfo()
,查看这些设置是否准确/确保加载了正确的php.ini。另外,尝试将mmap_path设置为“/ dev / zero”(它只是禁用readonly_protection,你还没有启用它)...
答案 1 :(得分:0)
我在Doctrine CLI命令中遇到此问题。更改var_size或mmap_path无效。为了让错误消失,我从php.ini中删除/注释掉了对Xcache的所有引用。这些命令和我的Web应用程序之后仍然有用,但错误消失了。