簡體   English   中英

Cakephp 2 - Redis - Docker | 拒絕連接

[英]Cakephp 2 - Redis - Docker | Connection Refused

我在沒有任何運氣的情況下解決了這個問題。

我從 cakes Cache.php 收到“連接被拒絕”錯誤

我的引擎設置為 Redis,我有 docker 正確構建圖像(至少我相信我這樣做),一切似乎都是正確的,但對於我的一生,我無法讓緩存引擎工作。

這是我目前設置的:

Dockerfile
RUN yes | apt-get install redis-server

RUN pecl install redis \
&& echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini \
&& rm -rf /tmp/pear

docker-compose.yml
redis:
image: "app-redis:cont"
ports:
- "6379:6379"

package.json
"deployRedis": "docker build. -f Dockerfile.redis -t app-redis:cont",

核心.php
$engine = 'Redis';
Cache::config('default', [
'engine' => $engine,
'prefix' => $prefix. 'default_',
'path' => CACHE. 'persistent'. DS,
'serialize' => $serializingEngine,
'duration' => $duration,
]);

Cache::config('_cake_core_', [
'engine' => $engine,
'prefix' => $prefix. 'cake_core_',
'path' => CACHE. 'persistent'. DS,
'serialize' => $serializingEngine,
'duration' => $duration,
]);

當我調試extension_loaded('redis'); 我得到一個true的值

這是轉儲到瀏覽器的錯誤消息
Fatal error: Uncaught CacheException: Cache engine "default" is not properly configured. Ensure required extensions are installed, and credentials/permissions are correct in /var/www/html/public/app.name.local/lib/Cake/Cache/Cache.php on line 190

最后,當我在 connect 方法中的 RedisEngine.php 文件中調試時,從 $e 這是錯誤消息:
**"Connection refused"**

如果值得注意的話,我已經檢查了 docker 中運行的圖像,我確實看到了 Redis:

b38550ff4f38 app-redis:cont "docker-entrypoint.s…" 8 seconds ago Up 7 seconds 6379/tcp app_redis.1.j0r12vgrsmv6hbtagcy3oj9vv

任何建議都受到高度贊賞,因為我已經在此工作了將近 2 天。

謝謝!

您查看過 php 代碼嗎?

https://api.cakephp.org/2.2/source-class-RedisEngine.html#63

array(
  'engine' => 'Redis',
  'prefix' => null,
  'server' => '127.0.0.1',
  'port' => 6379,
  'timeout' => 0,
  'persistent' => true
 )

嘗試:

Cache::config('default', [
    'engine' => $engine,
    'prefix' => $prefix . 'default_',
    'server' => 'redis', // docker || '127.0.0.1', <------------
    'port' => 6379, // <----------------
    'path' => CACHE . 'persistent' . DS,
    'serialize' => $serializingEngine,
    'duration' => $duration,
]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM