Содержание
Денвер и memcached
Memcached — связующее программное обеспечение, реализующее сервис кэширования данных в оперативной памяти. Используется для снижения нагрузки на сервер базы данных.
Вся установка пройдет в три этапа:
- Установка расширения memcache для PHP.
- Установка сервера memcached.
- Проверка работы сервера.
- Привязка запуска и остановки сервера memcached к запуску и остановке Денвера.
Внимание! Работать мы будем с папкой в которую вы установили Денвер, а не с виртуальным диском, который создает Денвер. Это критично для установки служб Windows. Для краткости обозначим путь к этой папке как [Денвер].
Установка расширения memcache
Первое что нужно сделать это найти и скачать расширение для PHP. Скажу сразу ссылки постоянно меняются, старые отваливаются, новые появляются. Рекомендую начать с pecl.php.net. Только внимательно смотрите, что вы скачиваете, т.к. это репозиторий для unix-подобных систем (хотя вы можете скачать исходник и скомпилировать свою библиотеку). Библиотеки для систем Windows помечены соответствующим логотипом.
Но если вам не критична версия библиотек, то можете скачать их тут (PHP 5.3): php_memcache-2.2.6-5.3-vc9-x86.zip.
Файл php_memcache.dll из архива переносим в папку расширений PHP ([Денвер]/usr/local/php5/ext/).
Открываем файл php.ini ([Денвер]/usr/local/php5/php.ini) и добавляем следующую строку:
extension=php_menchace.dll
Я рекомендую внести ее в блок Dynamic Extensions, в алфавитном порядке.
Теперь пробуем запустить Денвер. Если запуск произошел без ошибок, то расширение заработало, иначе ищите другую библиотеку.
При запуска команды phpinfo() в выводе появится новый блок «Memcache».
Установка сервера memcached
Сервер memcached будет установлен как служба Windows.
С поиском дистрибутива memcached под Windows проблем будет еще больше чем с расширением. Рекомендую начать с memcached.org.
И опять-таки, если не принципиально иметь последнюю версию, то сервер можно скачать тут: memcached-1.2.4-win32-preview-20080309_bin.zip
Помещаем все содержимое архива в папку [Денвер]/usr/local/memcached.
Открываем утилиту cmd (WinXP: Пуск → Выполнить → cmd; Win7: Пуск, в строке поиска набираем cmd и через правую клавишу «Запуск от имени администратора»). И переходим в утилите в папку [Денвер]/usr/local/memcached.
Для тех кто не помнит/не знает dos команд:
<Буква диска>: - переход на указанный диск (к примеру, D:).
cd <папка1>/<папка2>/<папка3> - переход в указанную папку (к примеру, cd web/usr/local/memcached).
Находясь в папке с сервером набираем следующую команду:
memcached.exe -d install
Эта команда установит службу Memcached. Проверить работу службы можно командами:
memcached.exe -d start memcached.exe -d stop
Если проблем с запуском нет, то все хорошо и можно работать. Иначе ищем другой сервер (перед установкой нового сервера не забываем удалить старый: memcached.exe -d remove).
Проверка работы сервера
Для проверки сосздаем и запускаем простой PHP скрипт:
PHP: <?php $memcache = new Memcache(); $memcache->connect('127.0.0.1', 11211); echo $memcache->getVersion();
Если после запуска скрипта вы увидели циферки и точечки, то все хорошо, иначе правим ошибки.
Привязка службы Memcached к Денверу
Служба будет запускаться всякий раз как запускается система. Однако кто-то не захочет чтобы процесс всегда висел и поедал ресурсы, а каждый раз запускать и останавливать службу вручную, тоже на до сказать не выход. Поэтому давайте привяжем запуск и остановку службы к Денвер.
Первое, что нужно сделать, это запретить автоматический запуск службы. Для этого нажимаем правой клавишей на «Мой компьютер» и выбираем пункт «Управление».
Далее «Службы и приложения» → «Службы» → ищем в списке «memcached Server», двойной клик. В разделе «тип запуска» выбираем «Вручную».
Теперь идем в папку [Денвер]/denwer/scripts/init.d/ и создаем файл memcached.pl, в который вносим следующий текст:
#!perl -w package Starters::Memcached; BEGIN { unshift @INC, "../lib"; } use StartManager; my $basedir = '/usr/local/memcached/'; chdir($basedir); StartManager::action $ARGV[0], start => sub { ### ### START. ### print "Starting memcached\n"; system("memcached.exe -d start"); print " Started!\n"; }, stop => sub { ### ### STOP. ### print "Stopping memcached\n"; system("memcached.exe -d stop"); print " Stopped!\n"; }; return 1 if caller;
Далее идем в папку [Денвер]/denwer/scripts/main/start и смотрим на файлики. Порядок следования файлов - это порядок запуска служб. Поэтому выбираем любой порядковый номер и создаем файл <номер>_mamcached (к примеру, 15_memcached) и вносим в него следующий текст:
init.d/memcached
Теперь копируем этот файл в папки [Денвер]/denwer/scripts/main/stop и [Денвер]/denwer/scripts/main/restart.
Проверяем запуск, рестарт и остановку Денвера.