Назад | Перейти на главную страницу

«Memcache не может подключиться, в подключении отказано (111)»?

Прежде всего...

Должен сказать, я мало что знаю о серверах. Я из тех php-разработчиков, которые нечасто используют командные строки. Мне в Терминале очень неудобно.

Однако я учусь. Я не привык размещать свои сайты на выделенных серверах без управляемого хостинга. Но сейчас он у меня впервые, и мне нужно самому установить Memcache.

Некоторая информация о сервере

Что я наделал

Я следовал этому руководству: https://mediatemple.net/community/products/dv/204644340/installing-pecl-extensions

Но конечно с memcache вместо того uploadprogress.

И я проверил, установлен и запущен Memcache. И $memcache = new Memcache; работает в моих кодах php. Но $memcache->connect('localhost', 11211); не работает. Я получаю сообщение об ошибке:

Warning: Memcache::connect(): Can't connect to localhost:11211, Connection refused (111) in /var/www/vhosts/[mydomain]/httpdocs/index.php on line 10 Could not connect to memcache server

И я пытался изменить localhost на IP-адрес сервера, но безуспешно.

Я много гуглил и попал в статьи и обсуждения на форумах об установке Memcached перед. Я последовал одному из этих руководств и попытался установить его. Но есть сообщения об ошибках No package memcached available. поэтому он не может быть установлен.

Вот примеры команд, которые я сделал после этого:

Nothing to do
[root@mydomain /]# php -i | grep memcache
PHP Warning:  Module 'memcache' already loaded in Unknown on line 0
/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 'America/Los_Angeles' for 'PDT/-7.0/DST' instead in Unknown on line 0
memcache
memcache support => enabled
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => standard => standard
memcache.max_failover_attempts => 20 => 20
Registered save handlers => files user memcache 
OLDPWD => /memcached-1.4.9
_SERVER["OLDPWD"] => /memcached-1.4.9
[root@mydomain /]# ps aux | grep memcache
root      6434  0.0  0.0   9288   868 pts/0    S+   02:37   0:00 grep memcache
[root@mydomain /]# getenforce
Disabled

Так...

Что я забыл сделать?

Обновить!

В конце концов мне это удалось. Как:

  1. googled "посмотреть, установлен ли memcached в командной строке centos5"
  2. Щелкнул по третьему результату, оказался на этой странице: http://cnedelcu.blogspot.se/2009/09/setting-up-and-using-memcached-memcache.html
  3. Выполнил шаги
  4. Успешно установить Memcached, но не Memcache:

    [root@mydomain /]# yum install php-pecl-memcache
    Loaded plugins: fastestmirror, priorities
    Loading mirror speeds from cached hostfile
    * base: centos.mirror.nac.net
    * extras: mirror.atlanticmetro.net
    * updates: centos.mirror.nac.net
    base                                                     | 1.1 kB     00:00     
    extras                                                   | 2.1 kB     00:00     
    updates                                                  | 1.9 kB     00:00     
    Setting up Install Process
    Resolving Dependencies
    --> Running transaction check
    ---> Package php-pecl-memcache.x86_64 0:2.2.3-1.el5_2 set to be updated
    --> Processing Dependency: php-api = 20041225 for package: php-pecl-memcache
    --> Finished Dependency Resolution
    php-pecl-memcache-2.2.3-1.el5_2.x86_64 from extras has depsolving problems
      --> Missing Dependency: php-api = 20041225 is needed by package php-pecl-memcache-2.2.3-1.el5_2.x86_64 (extras)
    Error: Missing Dependency: php-api = 20041225 is needed by package php-pecl-memcache-2.2.3-1.el5_2.x86_64 (extras)
     You could try using --skip-broken to work around the problem
     You could try running: package-cleanup --problems
                            package-cleanup --dupes
                            rpm -Va --nofiles --nodigest
    The program package-cleanup is found in the yum-utils package.
    

Однако, похоже, в этом не было необходимости. Memcache теперь работает!