Установка ПО · 3 min read · Jan 02, 2026

Установка memcached и модуля PHP5 memcache на Debian Etch (Apache2)

Установка memcached и модуля PHP5 memcache на Debian Etch (Apache2)

Версия 1.0
Автор: Фалко Тимме

Это руководство объясняет, как установить memcached и модуль PHP5 memcache на систему Debian Etch с Apache2. memcached — это демон, который может хранить объекты в памяти системы (например, результаты запросов к базе данных), что может значительно ускорить ваш веб-сайт. Вы можете использовать memcached через сеть (т.е. установить ваше веб-приложение на одном сервере, а memcached на другом сервере), но обычно вы устанавливаете оба на одном сервере, чтобы избежать сетевых накладных расходов.

Следует отметить, что memcached не является готовым решением для ускорения ваших веб-приложений. Обычно вам нужно настроить ваши скрипты (PHP, Perl и т.д.) для работы с memcached, поэтому это требует немного работы.

Этот документ предоставляется без каких-либо гарантий! Я не даю никаких гарантий, что это будет работать для вас!

1 Предварительная заметка

Я протестировал это на сервере Debian Etch с IP-адресом 192.168.0.100, где уже установлены и работают Apache2 и PHP5. Я буду использовать корневую папку документа по умолчанию Apache /var/www в этом учебном пособии для демонстрационных целей. Конечно, вы можете использовать любой другой виртуальный хост, но вам, возможно, придется настроить путь к файлу info.php, который я использую в этом учебном пособии.

2 Проверка текущего состояния PHP5

Сначала, перед установкой memcached, давайте узнаем о нашей установке PHP5. Для этого мы создаем файл info.php в нашем корневом каталоге документов /var/www:

vi /var/www/info.php

| |

После этого мы вызываем этот файл в браузере: http://192.168.0.100/info.php

Как вы видите, у нас установлена PHP 5.2.0…

… но модуль PHP5 memcache нигде не упоминается на странице:

3 Установка memcached и модуля PHP5 memcache

memcached и модуль PHP5 memcache доступны в виде пакетов для Debian Etch, поэтому мы можем установить их следующим образом:

apt-get install memcached php5-memcache

После установки memcached должен уже работать. Вы можете проверить это, набрав

netstat -tap | grep memcached

server1:~# netstat -tap | grep memcached
tcp 0 0 :11211 :* LISTEN 3053/memcached
server1:~#

Как вы видите, memcached работает на порту 11211 (порт memcached по умолчанию), и он слушает на всех интерфейсах системы. Поскольку у memcached нет встроенных механизмов аутентификации (чтобы не терять скорость), это означает, что любой может подключиться к нему извне и использовать его. Чтобы избежать этого, вы можете либо закрыть порт 11211 в вашем файрволе, либо настроить memcached так, чтобы он слушал только на localhost. Я буду использовать последний метод здесь.

Для этого откройте конфигурацию memcached, которая хранится в /etc/memcached.conf:

vi /etc/memcached.conf

Добавьте -l 127.0.0.1 в конфигурацию (вы также можете настроить другие параметры, если хотите - файл содержит объяснения для каждого параметра):

| [...] # Укажите, на каком IP-адресе слушать. По умолчанию слушает на всех IP-адресах # Этот параметр является одной из немногих мер безопасности, которые имеет memcached, поэтому убедитесь, # что он слушает на интерфейсе с файрволом. # -l 12.34.56.78 -l 127.0.0.1 [...] |

Перезапустите memcached…

/etc/init.d/memcached restart

… и выполните

netstat -tap | grep memcached

снова. Как вы видите, memcached теперь слушает только на localhost:

server1:~# netstat -tap | grep memcached
tcp 0 0 localhost.localdo:11211 : LISTEN 3092/memcached
server1:~#

После этого мы перезапускаем Apache, чтобы наша новая конфигурация PHP вступила в силу:

/etc/init.d/apache2 restart

После этого снова откройте info.php в браузере: http://192.168.0.100/info.php

Теперь вы должны увидеть упоминание memcache на странице, что означает, что он успешно интегрирован и работает как ожидалось:

Чтобы использовать модуль PHP memcache с вашими PHP-приложениями, вам следует ознакомиться с примерами memcache и справочником функций memcache.

Я буду использовать пример скрипта с http://dk.php.net/manual/en/memcache.examples.php и сохраню его в файл /var/www/memcachetest.php:

vi /var/www/memcachetest.php

| connect('localhost', 11211) or die ("Не удалось подключиться"); $version = $memcache->getVersion(); echo "Версия сервера: ".$version."
"; $tmp_object = new stdClass; $tmp_object->str_attr = 'test'; $tmp_object->int_attr = 123; $memcache->set('key', $tmp_object, false, 10) or die ("Не удалось сохранить данные на сервере"); echo "Сохранить данные в кэше (данные истекут через 10 секунд)
"; $get_result = $memcache->get('key'); echo "Данные из кэша:
"; var_dump($get_result); ?>
|

Затем я вызываю этот файл в браузере (http://192.168.0.100/memcachetest.php). Если все пройдет хорошо, вывод должен выглядеть следующим образом:

4 Ссылки

Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.