我正在测试将我的 Roundcube 1.3.8 安装转移到 php 7.3。它是负载平衡的,我一直在使用 memcache 进行 php 5 的会话存储,没有任何问题: $config['session_storage'] = 'memcache';
// Use these hosts for accessing memcached
// Define any number of hosts in the form of hostname:port or unix:///path/to/socket.file
$config['memcache_hosts'] = array( 'server1:11211','server2:11211');
当我在 php 7.3.3 上尝试相同的配置时,我收到以下错误:
[17-Mar-2019 19:11:16 +0000]: DB Error: Failed to connect to memcached. Please check configuration in /path/to/roundcube/program/lib/Roundcube/rcube_session_memcache.php on line 49 (GET /mail/)
我已经能够从 php 7.3 运行一个简单的测试脚本来验证 memcache 确实在工作。
有什么建议为什么这不适用于 Roundcube 1.3.8?
TL;DR:切换到 redis。
PHP 7 不再支持 php-memcache,该项目似乎被放弃了。仅支持 php-memcached。这是使用 memcached 的两种不同的 PHP API。Roundcube 尚未更新以使用新的 API,而且显然永远不会。一些发行版正在维护旧 API 的一个分支,但你的可能不是其中之一,你应该期望它最终会消失。