我在共享主机上使用带有doctrine2的APC缓存。
我托管了同一个项目的多个实例,但版本不同。所以我不希望他们共享相同的缓存。
例如,我有以下托管网址:
http://phpdemo.******.com:9040/ilook/qa
http://phpdemo.******.com:9040/ilook/android
http://phpdemo.******.com:9040/ilook/dev
http://phpdemo.******.com:9040/ilook/client
有没有办法区分它们的缓存?
php.ini设置:
[APC]
apc.shm_size = '128M'
apc.enabled=1
apc.shm_segments=1
apc.num_files_hint=0
apc.user_entries_hint=0
apc.ttl=0
apc.user_ttl=7200
apc.gc_ttl=3600
apc.stat=1
apc.enable_cli=0
apc.file_update_protection=2
apc.max_file_size=2M
apc.cache_by_default=1
apc.use_request_time=1
apc.slam_defense=0
apc.stat_ctime=0
apc.canonicalize=1
apc.write_lock=1
apc.report_autofilter=0
apc.rfc1867=0
apc.rfc1867_prefix =upload_
apc.rfc1867_name=APC_UPLOAD_PROGRESS
apc.rfc1867_freq=0
apc.rfc1867_ttl=3600
apc.lazy_classes=0
apc.lazy_functions=0
当我使用ZF1 + Doctrine2时,我在bootstrap.php文件中使用的配置行如下。
$config = new \Doctrine\ORM\Configuration();
$cache = new \Doctrine\Common\Cache\ApcCache;
$config->setMetadataCacheImpl($cache);
$config->setQueryCacheImpl($cache);
$config->setResultCacheImpl($cache);
答案 0 :(得分:0)
关于您的bootstrap.php
,您应该能够为每个项目的缓存定义不同的命名空间,例如:
$config = new \Doctrine\ORM\Configuration();
$cache = new \Doctrine\Common\Cache\ApcCache;
// define the cache for this project only
$cache->setNamespace('project_name');
$config->setMetadataCacheImpl($cache);
$config->setQueryCacheImpl($cache);
$config->setResultCacheImpl($cache);