TP5建立缓存文件会建到服务器根目录去

is_dir(): open_basedir restriction in effect. File(/) is not within the allowed path(s): (/home/www.abc.com/public:/home/www.abc.com/:/proc/:/tmp)

关键File(/)不是应该指向runtime/cache里面吗,怎么会变成/,我打印var_dump(RUNTIME_PATH . 'cache' . DS);输出"/home/www.abc.com/runtime/cache/",这里的地址对啊,真的搞不懂,有大神帮我解释下吗?

阅读 4.1k
3 个回答
  1. tp的缓存目录是用常量CACHE_PATH设置的。建议你打印一下CACHE_PATH,看看指向的目录在哪里。
  2. 看了报错原因,应该是open_basedir限制了PHP能操作的目录, 在虚拟主机的conf里加上
fastcgi_param PHP_ADMIN_VALUE open_basedir=$document_root/:/home/www.abc.com/runtime/cache/

然后重启nginx

楼上说的正解,我看了下你打印缓存目录是对的,但是生成的时候是在根目录,建议你去看下生成缓存的方法是不是指定了目录或者是不是源码里面改动过根本没有读系统的配置

检查下代码,实在发现不了,可以一步一步的打印,跟着代码走,看看哪里的路径出现了错误

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题