关于worker项目运行目录和web项目运行目录不一致导致的runtime文件写入&读取异常问题
Closed this issue · 2 comments
nanziok commented
官方worker运行在根目录,http运行在public目录
例如think-orm中的cache,由于默认的本地缓存path是相对路径(如下),导致读写失败
// 驱动方式
//文件缓存
'file' => [
// 驱动方式
'type' => 'File',
// 缓存保存目录
'path' => '../runtime/cache',
// 缓存前缀
'prefix' => '',
// 缓存有效期 0表示永久缓存
'expire' => 0,
// 缓存标签前缀
'tag_prefix' => 'tag:',
// 序列化机制 例如 ['serialize', 'unserialize']
'serialize' => [],
],
可以修改path为空或者新建一个驱动方式(如下)
// 驱动方式
'fileWK' => [
'type' => 'File',
// 缓存保存目录
'path' => '',
// 缓存前缀
'prefix' => '',
// 缓存有效期 0表示永久缓存
'expire' => 0,
// 缓存标签前缀
'tag_prefix' => 'tag:',
// 序列化机制 例如 ['serialize', 'unserialize']
'serialize' => [],
]
然后使用
Db::setCache(Cache::store('fileWK'));
设置缓存方案。谁有更好地方案,请告知
ichynul commented
进入public 目录再执行
php ../think worker:server