
04.01.2009, 03:12
|
|
Постоянный
Регистрация: 06.05.2007
Сообщений: 393
Провел на форуме: 1510937
Репутация:
398
|
|
Настраиваем PHP+MemCached
1. Устанавливаем сервер memcached
PHP код:
cd /usr/ports/databases/memcached
make && make install && make clean
Настраиваем.
По умолчанию memcached слушает на всех адресах, чего нам не нужно (достаточно localhost).
PHP код:
#./memcached -d -m 2048 -p 11211 -u nobody -l 127.0.0.1
# в rc.conf
memcached_enable="YES"
memcached_flags="-l 127.0.0.1"
2. Устанавливаем расширение для php
Прошло нормально? Значит повезло.
У меня FreeBSD пятерка, возникли некоторые проблемы:
PHP код:
/usr/local/bin/phpize: /tmp/download/memcache-2.2.3/build/shtool: Permission denied
Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF
environment variable is set correctly and then rerun this script.
которые решались следующим образом.
PHP код:
export PHP_AUTOCONF=autoconf
export PHP_AUTOHEADER=autoheader
phpize
./configure
make
make install
Installing shared extensions: /usr/local/lib/php/20060613/
То есть установка ручками.
Настраиваем php для работы с новоиспеченным модулем.
PHP код:
[root@host /usr/local/etc/php]# tail ./extensions.ini
extension=memcache.so
3. Перезагрузка сервисов
PHP код:
/usr/local/etc/rc.d/memcached.sh start
apachectl restart
4. Проверяем работу
PHP код:
#!/usr/local/bin/php
<?php
$memcache = new Memcache;
$memcache->connect('localhost', 11211) or die ("Could not connect");
$version = $memcache->getVersion();
echo "Server's version: ".$version."<br/>\n";
$tmp_object = new stdClass;
$tmp_object->str_attr = 'test';
$tmp_object->int_attr = 123;
$memcache->set('key', $tmp_object, false, 10) or die ("Failed to save data at the server");
echo "Store data in the cache (data will expire in 10 seconds)<br/>\n";
$get_result = $memcache->get('key');
echo "Data from the cache:<br/>\n";
var_dump($get_result);
Tip's:
Для фряхи модуль для php лучше собрать из портов, чтобы удобнее обновлять
PHP код:
/usr/ports/databases/pecl-memcache
Класс для работы с memcached из php можно найти на phpclasses.org, например:
http://www.phpclasses.org/browse/file/17230.html
|
|
|