PHP 5.4 & Laravel Class 'Memcached' 未找到
PHP 5.4 & Laravel Class 'Memcached' not found
我知道大约有 10 个这样的问题,但 none 完全适合我。
完成的步骤:
- 已安装内存缓存
- 已安装 php 内存缓存模块
- 更新了 laravel 配置以使用内存缓存
- 重新启动服务器
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.
Memcache
和 Memcached
是两个不同的 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 相同的所有命令.
我知道大约有 10 个这样的问题,但 none 完全适合我。
完成的步骤:
- 已安装内存缓存
- 已安装 php 内存缓存模块
- 更新了 laravel 配置以使用内存缓存
- 重新启动服务器
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.
Memcache
和 Memcached
是两个不同的 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 相同的所有命令.