Volfgang 4 Опубликовано: 19 июня 2012 Рассказать Опубликовано: 19 июня 2012 (изменено) Добрый вечер, господа. Сегодня решил на одном своем проекте попробовать Memcache в действии, узнал настройки у хостера, все можно сказать стандартно: Адрес:порт - 127.0.0.1:11211, естественно memcache установлен на сервере. Выставил настройки, включил Кеширование через Mamcache и вот что вижу: Внимание: Вы включили в настройках сервера кеширование Memcache, при этом по указанным в настройках скрипта параметрам, скрипту не удалось подключиться к Memcache. Проверьте работоспособность сервера Memcache, а также правильность настроек подключения к нему в настройках скрипта. В противном случае включите файловое кеширование в настройках скрипта. В общем, DLE не коннектится видимо к нему. Какие могут быть проблемы с этой функцией? Куда первым делом смотреть, чтобы заработало? Изменено 19 июня 2012 пользователем Volfgang Цитата Ссылка на сообщение Поделиться на других сайтах
Captain 623 Опубликовано: 19 июня 2012 Рассказать Опубликовано: 19 июня 2012 Вам нужно к хостеру обращаться. Возможно подключение не к 127.0.0.1:11211, а к другому адресу, может некорректно установлен сам Memcache. Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 19 июня 2012 Рассказать Опубликовано: 19 июня 2012 Volfgang, Возможно вы для PHP не подключили расширение memcache http://www.php.net/m...k.memcache.php. Помимо сервера memcache, для PHP нужно устанавливать специальное расширение для PHP, уточняйте у вашего хостинг провайдера что все два компонента установлены на вашем сервере. Цитата Ссылка на сообщение Поделиться на других сайтах
Volfgang 4 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 (изменено) Автор Вам нужно к хостеру обращаться. Возможно подключение не к 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, уже не знаю куда глядеть везде порядок получается. Изменено 20 июня 2012 пользователем Volfgang Цитата Ссылка на сообщение Поделиться на других сайтах
Sarvan 35 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 Хороший у Вас хостер. ) А tcp 0.0.0.0:11211 - это означает слушать на всех интерфейсах. А так tcp 127.0.0.1:11211 - вы указываете конкретный. Команда в SSH php -m что выдаёт? Есть там ошибки? Цитата Ссылка на сообщение Поделиться на других сайтах
Volfgang 4 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 Автор 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 Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 Зайдите по 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] и проверьте его выполнение, что он вам скажет. Цитата Ссылка на сообщение Поделиться на других сайтах
Volfgang 4 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 (изменено) Автор Зашел под рутом. Попытался зайти: 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 отписавшийся ниже прав... Изменено 20 июня 2012 пользователем Volfgang Цитата Ссылка на сообщение Поделиться на других сайтах
ower_xz 117 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 Проверить работает ли можно командой 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] Цитата Ссылка на сообщение Поделиться на других сайтах
Volfgang 4 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 (изменено) Автор 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. Изменено 20 июня 2012 пользователем Volfgang Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 072 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 У вас memcahed сервер отклоняет все соединения. Смотрите настройки /etc/sysconfig/memcached с какими параметрами запущен демон memcache конфиг должен быть примерно таким: PORT="11211" USER="memcached" MAXCONN="1024" CACHESIZE="64" OPTIONS="-l 127.0.0.1"[/CODE] смотрите настройки брандмауера, может быть порт у вас закрыт для всех. Цитата Ссылка на сообщение Поделиться на других сайтах
hrompic 4 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 Тоже самое,два дня назад такие ошибки выдавались при попытке подключения к мемкэш а решение было простым: Модуль php не был подгружен, который судя по всему необходим для корректно работы Вашего скрипта. Решение: Перезапустили apache для вступления в силу новых настроек. Надеюсь Вам поможет! Цитата Ссылка на сообщение Поделиться на других сайтах
ower_xz 117 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 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 не работать и т.д.... Цитата Ссылка на сообщение Поделиться на других сайтах
Volfgang 4 Опубликовано: 20 июня 2012 Рассказать Опубликовано: 20 июня 2012 Автор У вас 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, пока пытаюсь в нем разобраться ) Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.