Laravel配置Memcached后执行php artisan cache:clear报错求助
Laravel在M1 MacBook上执行
cache:clear报错的原因及解决方案 可能的原因
- 缓存目录权限不足:尽管
storage/framework/cache/data目录存在,但当前用户对该目录或上级目录缺乏读写权限,导致Laravel无法删除缓存文件。 - Memcached连接配置错误:
.env中MEMCACHED_HOST、MEMCACHED_PORT等参数配置有误,Laravel无法正常连接Memcached服务,触发缓存清除失败。 - PHP扩展架构不兼容:M1为ARM架构,若安装的
memcached.so是x86版本,会与M1环境的PHP不兼容,导致Laravel无法调用Memcached功能。 - Laravel配置缓存未更新:Laravel缓存了旧的配置信息,即使修改了
.env中的CACHE_DRIVER,实际运行时仍使用旧配置,引发清除逻辑错误。
对应的解决方案
修复目录权限
给storage目录赋予正确的读写权限:sudo chmod -R 775 storage sudo chown -R $USER:_www storage也可单独针对缓存目录设置:
sudo chmod -R 775 storage/framework/cache sudo chown -R $USER:_www storage/framework/cache检查并修正Memcached配置
打开.env文件,确认Memcached参数配置:MEMCACHED_HOST=127.0.0.1 MEMCACHED_PORT=11211用telnet测试连接是否正常:
telnet 127.0.0.1 11211若无法连接,执行
brew services list确认Memcached服务状态,确保服务在指定端口运行。重新安装兼容M1的memcached扩展
卸载旧扩展后,用ARM架构的pecl重新安装:pecl uninstall memcached arch -arm64 pecl install memcached安装完成后,在
php.ini中确认扩展已加载:extension=memcached.so重启PHP服务:
brew services restart php清除Laravel配置缓存
先清除配置缓存,再执行缓存清除命令:php artisan config:clear php artisan cache:clear若仍无效,可手动删除配置缓存文件:
rm -rf bootstrap/cache/*
内容的提问来源于stack exchange,提问作者Hakob Grigoryan
相关产品推荐
相关产品推荐

