【问题标题】:Laravel 5.5 \Memcache not FoundLaravel 5.5 \Memcache 未找到
【发布时间】:2020-06-23 14:51:33
【问题描述】:

首先:我试过1#

我使用 Phpspreadsheet 和 LaravelExcel 进行导入。

我创建了一个新的 Memcache 实例(不是 MemcacheD),就像 PhpSpreadSheet 中的文档所说的 (here) 并开始一个新的导入。在我为 php 安装所有模块后,在本地工作正常。但是在服务器(RH7 linux)中,laravel 拒绝识别 Memcache 库。

如果我启动 Tinker 并使用 new \Memcache(); laravel 初始化一个新变量,但在运行时应用程序中没有。

作曲家包:

    "require": {
        "php": ">=7.0.0",
        "ext-json": "*",
        "adldap2/adldap2-laravel": "^3.0",
        "barryvdh/laravel-debugbar": "^2.3",
        "cache/memcache-adapter": "^1.0",
        "cache/memcached-adapter": "^1.0",
        "cache/simple-cache-bridge": "^1.0",
        "cocur/slugify": "^3.1",
        "doctrine/dbal": "^2.5",
        "geekcom/validator-docs": "^1.0",
        "laravel/dusk": "^1.0",
        "laravel/framework": ">=5.5",
        "laravel/tinker": "~1.0",
        "laravelcollective/html": "^5.3.0",
        "maatwebsite/excel": ">=3.1.13",
        "nwidart/laravel-modules": "^1.19",
        "watson/validating": "^3.0",
        "yajra/laravel-datatables-oracle": "~8.0",
        "zizaco/entrust": "5.2.x-dev"
    },

一些有用的信息:

已安装 PHP 模块:

[PHP Modules]
calendar
Core
ctype
curl
date
dom
exif
fileinfo
filter
ftp
gd
gettext
hash
iconv
igbinary
intl
json
ldap
libxml
mbstring
memcache
memcached
msgpack
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_mysql
Phar
posix
readline
Reflection
session
shmop
SimpleXML
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
wddx
xdebug
xml
xmlreader
xmlwriter
xsl
Zend OPcache
zip
zlib

代码:

$client = new \Memcache();
        $client->connect('localhost', 11211);
        $pool = new \Cache\Adapter\Memcache\MemcacheCachePool($client);
        $simpleCache = new \Cache\Bridge\SimpleCache\SimpleCacheBridge($pool);

        SpreadsheetSettings::setCache($simpleCache);
....

【问题讨论】:

    标签: php laravel memcached


    【解决方案1】:

    PHP 为 php-cliphp-cgi 使用 2 个不同的 php.ini 文件(Fastcgi 或 Apache mod_php)。听起来您的命令行版本 php.ini 添加了 require 扩展加载行,即 extension=memcache.so

    但您的php-cgi 版本没有。在任何文件中添加phpinfo(); 并在网络浏览器中加载它并找到Loaded Configuration File。将扩展加载行(即extension=memcache.so)附加到该文件并重新启动服务器。确保 Memcache 列在 phpinfo(); 网页中。

    【讨论】:

    • 我在Loaded Configuration File 中创建了php.ini,在没有找到extension=memcache 之后,我把它放在文件末尾,重新启动服务器,在php --version 之后出现PHP Warning: Module 'Memcache' already loaded in Unknow on line 0 消息*
    • 嗯.. 运行时工作吗?你能发布phpinfo(); 输出吗?它有Memcache 部分吗?
    • 这里:pastebin.com/vB8SRqQZ memcache 出现在加载的模块中,但没有出现他的规范
    • 该部分未出现*
    • 嗯。奇怪的。你能加入这个房间chat.stackoverflow.com/rooms/216517/… 吗?
    猜你喜欢
    • 2019-02-07
    • 1970-01-01
    • 2018-06-28
    • 2014-05-29
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 2018-07-21
    • 1970-01-01
    相关资源
    最近更新 更多