Показать сообщение отдельно

Настраиваем PHP+MemCached
  #9  
Старый 04.01.2009, 03:12
PandoraBox
Постоянный
Регистрация: 06.05.2007
Сообщений: 393
Провел на форуме:
1510937

Репутация: 398
Отправить сообщение для PandoraBox с помощью ICQ
По умолчанию Настраиваем 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
PHP код:
pecl install memcache 
Прошло нормально? Значит повезло.
У меня FreeBSD пятерка, возникли некоторые проблемы:

PHP код:
/usr/local/bin/phpize: /tmp/download/memcache-2.2.3/build/shtoolPermission 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_objectfalse10) 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

 
Ответить с цитированием