Mac MAMP PRO 6.6.1 Nginx:1.19.2 Mysql:5.7.34 Memcached:1.4.32 PHP:8.1.1
3). 当前系统
$memcached->addServer('127.0.0.1', 11211);
$version = $memcached->getVersion(); echo '
'; print_r($version); echo '';
$memcached->set('Key1', 'MAMP PRO'); $result = $memcached->get('Key1'); echo $result; 2. 在命令行执行 php artisan queue:work 正常(之前不行,后面修改环境变量后可以了) 3. 命令行执行 composer dump-autoload 报错
Error
Class "Memcached" not found
at vendor/laravel/framework/src/Illuminate/Cache/MemcachedConnector.php:69 65| * @return \Memcached 66| */ 67| protected function createMemcachedInstance($connectionId) 68| {
69| return empty($connectionId) ? new Memcached : new Memcached($connectionId); 70| } 71| 72| /** 73| * Set the SASL credentials on the Memcached connection.
+9 vendor frames
10 [internal]:0 Spatie\Permission\PermissionRegistrar::__construct(Object(Illuminate\Cache\CacheManager))
+14 vendor frames
25 [internal]:0 Illuminate\Foundation\Application::Illuminate\Foundation{closure}(Object(Spatie\Permission\PermissionServiceProvider))
1
concernedz 2022-05-02 18:52:57 +08:00 via Android
配置没弄对?
|
2
wonderfulcxm 2022-05-02 18:56:03 +08:00 via iPhone
没开启扩展吧
|
3
wonderfulcxm 2022-05-02 18:58:41 +08:00 via iPhone
phpinfo 看看有没有 memcache ,可能加载了不同的 php.ini
|
4
documentzhangx66 2022-05-02 21:17:17 +08:00
看看是不是这个问题:
https://stackoverflow.com/questions/34196482/class-memcached-not-found-in-laravel 如果不行,就先使用对比法: 1.先找个能跑得起来的 Demo 环境。 2.对比你自己搭建的环境,出现 not found , 你就跟踪相关进程的每个 IO 操作,用名字作为关键词过滤,肯定会找到一个 not found 的 file io event 。比如,如果是 PHP 进程 在访问 /usr/bin/xxx.mod 时出现 File Not Found ,那么要不就是相关组件你没安装好,要不就是缺失 xxx.mod 组件或文件。 接着再去谷歌找对应的解决方案就行。一般是重装整个系统与环境。或单独安装缺失的模组,或去模组源码版本里寻找这个文件,或者在已经能跑起来的 Demo 环境里找对应的文件,或者对比已经跑起来的 Demo 环境里的 PHP 进程,看看它在访问在访问 /usr/bin/xxx.mod 时,为啥没出现 File Not Found ,等等。 |
5
documentzhangx66 2022-05-02 21:19:10 +08:00
看了一下,你好像用的是 Windows ,Windows 有一款叫 Procmon.exe 的程序,可以实现我在上一条评论里说的那种跟踪操作。
|
6
freefcw 2022-05-02 21:48:43 +08:00
我估计你直接运行 php 文件的 php,和 mamp 里面的 php 应该不是一个版本,mac 自带了一个 php 版本,mamp 和 mac 自带的不是一个,所以你检查一下看看
|
7
freefcw 2022-05-04 12:54:54 +08:00
另外还有一个简单的办法,在 index.php 里面,直接调用 phpinfo();看是否启用了 memcached
|
8
freadman OP @documentzhangx66 MAC
@freefcw 找到问题了,是 MAMP 里面 PHP8.1.1 版本的 memcached 有问题,现在我切换至 8.0.8 版本 OK 了。 不过出现了一个新问题,那就是我在 MAC 的终端里面是 OK 的,但是在 VScode 里面集成的终端还不行,奇了怪了,这两个终端还调用不同 PHP ? |
9
encro 2022-05-09 14:46:05 +08:00
送分题:
一个是 console 模式, 一个是 fpm 模式, 加载了不同的配置。 |