PHP 5.4 & Laravel Class 'Memcached' 未找到

PHP 5.4 & Laravel Class 'Memcached' not found

我知道大约有 10 个这样的问题,但 none 完全适合我。

完成的步骤:

  1. 已安装内存缓存
  2. 已安装 php 内存缓存模块
  3. 更新了 laravel 配置以使用内存缓存
  4. 重新启动服务器

php 信息结果:

memcache.allow_failover 1   1
memcache.chunk_size 8192    8192
memcache.default_port   11211   11211
memcache.default_timeout_ms 1000    1000
memcache.hash_function  crc32   crc32
memcache.hash_strategy  standard    standard
memcache.max_failover_attempts  20  20

memcached-tool 结果:

         accepting_conns           1
               auth_cmds           0
             auth_errors           0
                   bytes           0
              bytes_read          14
           bytes_written        1096
              cas_badval           0
                cas_hits           0
              cas_misses           0
               cmd_flush           0
                 cmd_get           0
                 cmd_set           0
               cmd_touch           0
             conn_yields           0
   connection_structures           6
       crawler_reclaimed           0
        curr_connections           5
              curr_items           0
               decr_hits           0
             decr_misses           0
             delete_hits           0
           delete_misses           0
       evicted_unfetched           0
               evictions           0
       expired_unfetched           0
                get_hits           0
              get_misses           0
              hash_bytes      524288
       hash_is_expanding           0
        hash_power_level          16
               incr_hits           0
             incr_misses           0
                libevent 2.0.21-stable
          limit_maxbytes   268435456
     listen_disabled_num           0
       lrutail_reflocked           0
            malloc_fails           0
                     pid       12022
            pointer_size          64
               reclaimed           0
            reserved_fds          20
           rusage_system    0.043400
             rusage_user    0.065101
                 threads           4
                    time  1421438137
       total_connections           7
             total_items           0
              touch_hits           0
            touch_misses           0
                  uptime        2607
                 version      1.4.21

它在 php -m 中为 "memcache"

但是,当我进入 php artisan tinker 并尝试进行任何缓存时,我得到了典型的 Fatal error: Class 'Memcached' not found in vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php on line 44

TL;DR;

我已经通过多种方法确认安装了memcache。已确认 php 的模块已安装。仍然不允许我使用 memcached class.

MemcacheMemcached 是两个不同的 PHP 扩展名。 Memcache 是较旧的已弃用的。 Memcached 是一个更新得多且完全受支持的扩展。

查看 http://pecl.php.net/package/memcached

您可能还需要安装 libmemcached https://launchpad.net/libmemcached/+download

如果您处于 ubuntu 环境中,请尝试使用以下方法安装 Memcached:

sudo apt-get install php5-memcached

之后用

重启你的服务器

sudo service lighttpd restart

sudo service apachectl2 restart

sudo service nginx restart

apt-get install php-memcached

解决了来自 Laravel 的 "Class MemCached not found" 的问题。

在 Laravel/Lumen 5.4 中只需替换 .env 文件中的 CACHE_DRIVER= 文件,artisan 命令将完美运行,但您不会获得与 laravel 相同的所有命令.