Перейти к публикации

Memcache, не коннектится движок.


Рекомендованные сообщения

Добрый вечер, господа.

Сегодня решил на одном своем проекте попробовать Memcache в действии, узнал настройки у хостера, все можно сказать стандартно: Адрес:порт - 127.0.0.1:11211, естественно memcache установлен на сервере.

Выставил настройки, включил Кеширование через Mamcache и вот что вижу:

Внимание:

Вы включили в настройках сервера кеширование Memcache, при этом по указанным в настройках скрипта параметрам, скрипту не удалось подключиться к Memcache. Проверьте работоспособность сервера Memcache, а также правильность настроек подключения к нему в настройках скрипта. В противном случае включите файловое кеширование в настройках скрипта.

В общем, DLE не коннектится видимо к нему. Какие могут быть проблемы с этой функцией? Куда первым делом смотреть, чтобы заработало? :)

Изменено пользователем Volfgang
Ссылка на сообщение
Поделиться на других сайтах

Вам нужно к хостеру обращаться. Возможно подключение не к 127.0.0.1:11211, а к другому адресу, может некорректно установлен сам Memcache.

Ссылка на сообщение
Поделиться на других сайтах

Volfgang,

Возможно вы для PHP не подключили расширение memcache http://www.php.net/m...k.memcache.php. Помимо сервера memcache, для PHP нужно устанавливать специальное расширение для PHP, уточняйте у вашего хостинг провайдера что все два компонента установлены на вашем сервере.

Ссылка на сообщение
Поделиться на других сайтах

Вам нужно к хостеру обращаться. Возможно подключение не к 127.0.0.1:11211, а к другому адресу, может некорректно установлен сам Memcache.

Хостер утверждает, что установлено всё полноценно и подключаться надо именно к этому адресу.

Volfgang,

Возможно вы для PHP не подключили расширение memcache http://www.php.net/m...k.memcache.php. Помимо сервера memcache, для PHP нужно устанавливать специальное расширение для PHP, уточняйте у вашего хостинг провайдера что все два компонента установлены на вашем сервере.

Проверил, в PHP подключены memcache.so и memcached.so.

Смутило следующее. Проверил memcache на возможность принимать соединение следующей командой:

netstat -an | grep LISTEN

В итоге с портом 11211 есть только такие параметры, насколько я понимаю должно быть 127.0.0.1:11211, а вместо этого 0.0.0.0:11211, ниже скопировал строчки:

tcp 0 0 0.0.0.0:11211 0.0.0.0:* LIST EN

tcp 0 0 :::11211 :::* LIST EN

Напишу хостеру, но если кто разбирается в этом, буду рад помощи, возможно стоит что-то еще поменять в настройках, чего я не знаю, а хостер не хочет делать )

UPDATE! Хостер поправил настройки memcache, теперь tcp 127.0.0.1:11211 0.0.0.0:* LIST EN однако не работает memcache, уже не знаю куда глядеть :) везде порядок получается.

Изменено пользователем Volfgang
Ссылка на сообщение
Поделиться на других сайтах

Хороший у Вас хостер. )

А tcp 0.0.0.0:11211 - это означает слушать на всех интерфейсах.

А так tcp 127.0.0.1:11211 - вы указываете конкретный.

Команда в SSH php -m что выдаёт? Есть там ошибки?

Ссылка на сообщение
Поделиться на других сайтах

PHP -m результат:

[php Modules]

bcmath

bz2

calendar

Core

ctype

curl

date

dba

dom

ereg

exif

fileinfo

filter

ftp

gd

gettext

gmp

hash

iconv

imap

ionCube Loader

json

libxml

mbstring

mcrypt

memcache

memcached

mysql

mysqli

openssl

pcntl

pcre

PDO

pdo_mysql

pdo_pgsql

pdo_sqlite

pgsql

Phar

readline

Reflection

session

shmop

SimpleXML

soap

sockets

SPL

sqlite3

standard

tokenizer

wddx

XCache

xml

xmlreader

xmlwriter

xsl

Zend Guard Loader

zip

zlib

[Zend Modules]

XCache

Zend Guard Loader

the ionCube PHP Loader

Ссылка на сообщение
Поделиться на других сайтах

Зайдите по telnet на Memcache сервер


telnet 127.0.0.1 11211
[/CODE] потом проверьте его статус
[CODE]
stats
Также создайте простой тестовый PHP скрипт на вашем сервере

<?php
$memcache = new Memcache;
$memcache->connect('127.0.0.1', 11211) or die ("Could not connect"); //подключаемся к memcached server

$mydata = "Я хочу кешировать эту строку"; //данные для кеширования (текст, массив и т.п.)

$memcache->set('key', $mydata, false, 100); //запоминаем на memcached server

$get_result = $memcache->get('key'); //делаем выборку (читаем) данных

var_dump($get_result); //отображаем
?>
[/code]

и проверьте его выполнение, что он вам скажет.

Ссылка на сообщение
Поделиться на других сайтах

Зашел под рутом. Попытался зайти:

telnet 127.0.0.1 11211

Trying 127.0.0.1...

telnet: connect to address 127.0.0.1: Connection refused

Попробовал еще так:

memcached-tool 127.0.0.1:11211 stats

Couldn't connect to 127.0.0.1:11211

Проверил запущен ли он сейчас, вот что вышло:

ps -eaf | grep memcached

root 9976 9263 0 14:15 pts/0 00:00:00 grep memcached

Я с memcache раньше не работал, поэтому не очень понимаю, но явно понятно, что не получается подключиться даже по телнету, а почему....

Хотя вчера проверял что memcache запущен, правда забыл какой командой...

Также создайте простой тестовый PHP скрипт на вашем сервер

и проверьте его выполнение, что он вам скажет.

Could not connect...по всей видимости ower_xz отписавшийся ниже прав...

Изменено пользователем Volfgang
Ссылка на сообщение
Поделиться на других сайтах

Проверить работает ли можно командой

php -i | grep memcache
Статистика
memcached-tool 127.0.0.1:11211 stats[/code]


У вас просто, похоже, запрещено подключение на локальный адрес 127.0.0.1.

Даже если проверять как вы делали командой

[code]ps -eaf | grep memcached[/code]
при правильной работе должно быть что-то вроде этого
[code]496 9931 1 0 Jun19 ? 00:00:07 memcached -d -p 11211 -u memcached -m 4096 -c 2048 -P /var/run/memcached/memcached. pid -l 127.0.0.1 root 24462 24419 0 14:53 pts/0 00:00:00 grep memcached[/code]

Ссылка на сообщение
Поделиться на других сайтах

php -i | grep memcache

/etc/php.d/memcache.ini,

/etc/php.d/memcached.ini,

PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for 'MSD/4.0/DST' instead in Unknown on line 0

memcache

memcache support => enabled

memcache.allow_failover => 1 => 1

memcache.chunk_size => 32768 => 32768

memcache.compress_threshold => 20000 => 20000

memcache.default_port => 11211 => 11211

memcache.hash_function => crc32 => crc32

memcache.hash_strategy => consistent => consistent

memcache.lock_timeout => 15 => 15

memcache.max_failover_attempts => 20 => 20

memcache.protocol => ascii => ascii

memcache.redundancy => 1 => 1

memcache.session_redundancy => 2 => 2

memcached

memcached support => enabled

libmemcached version => 0.31

Registered save handlers => files user memcache memcached

PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for 'MSD/4.0/DST' instead in Unknown on line 0

Похоже работает.

У вас просто, похоже, запрещено подключение на локальный адрес 127.0.0.1.

Как это проверить еще или может попробовать как-то отключить этот запрет? Если конечно у меня есть доступ к этому с моего VPS.

Изменено пользователем Volfgang
Ссылка на сообщение
Поделиться на других сайтах

У вас memcahed сервер отклоняет все соединения. Смотрите настройки /etc/sysconfig/memcached с какими параметрами запущен демон memcache

конфиг должен быть примерно таким:

PORT="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
OPTIONS="-l 127.0.0.1"[/CODE]

смотрите настройки брандмауера, может быть порт у вас закрыт для всех.

Ссылка на сообщение
Поделиться на других сайтах

Тоже самое,два дня назад такие ошибки выдавались при попытке подключения к мемкэш а решение было простым:

Модуль php не был подгружен, который судя по всему необходим для корректно работы Вашего скрипта.

Решение: Перезапустили apache для вступления в силу новых настроек.

Надеюсь Вам поможет!

Ссылка на сообщение
Поделиться на других сайтах

PHP Warning: Unknown: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Moscow' for 'MSD/4.0/DST' instead in Unknown on line 0

И укажите временную зону в php.ini, а то может, например, cron не работать и т.д....

Ссылка на сообщение
Поделиться на других сайтах

У вас memcahed сервер отклоняет все соединения. Смотрите настройки /etc/sysconfig/memcached с какими параметрами запущен демон memcache

конфиг должен быть примерно таким:

PORT="11211"

USER="memcached"

MAXCONN="1024"

CACHESIZE="64"

OPTIONS="-l 127.0.0.1"

смотрите настройки брандмауера, может быть порт у вас закрыт для всех.

Мой конфиг полностью соответствует Вашему.

PORT="11211"

USER="memcached"

MAXCONN="1024"

CACHESIZE="64"

OPTIONS="-l 127.0.0.1"

Фаерволл стоит iptables, пока пытаюсь в нем разобраться )

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...