You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:19:54