« ffmpeg - Конвертор видео (пример 3GP - FLV)



Xdebug для php.. »



Для клиента
Пользователь:
Пароль:
 

Настраиваем PHP+MemCached

Категория: / Mine блог / Сервер (FreeBSD)
1. Устанавливаем сервер memcached

cd /usr/ports/databases/memcached
make && make install && make clean


Настраиваем.
По умолчанию memcached слушает на всех адресах, чего нам не нужно (достаточно localhost).

#./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

pecl install memcache


Прошло нормально? Значит повезло.
У меня FreeBSD пятерка, возникли некоторые проблемы:

/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.


которые решались следующим образом.

export PHP_AUTOCONF=autoconf
export PHP_AUTOHEADER=autoheader
 
phpize
./configure
make
make install
 
Installing shared extensions:     /usr/local/lib/php/20060613/
 


То есть установка ручками.
Настраиваем php для работы с новоиспеченным модулем.

[root@host /usr/local/etc/php]# tail ./extensions.ini
extension=memcache.so


3. Перезагрузка сервисов

/usr/local/etc/rc.d/memcached.sh start
apachectl restart


4. Проверяем работу

 
#!/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);
 



UPD: memcached не запускатся на интерфейсе 127.0.0.1

После смены операционной системы, внезапно, memcached стал доступен на всех внешних интерфейсах, вместо одного лупбека.
В саппорте ответили: На виртуализации с FreeBSD ПО не будет слушать адрес 127.0.0.1.
В свое время использовалась виртуализация сети Vnet где был данный адрес, но в настоящее время она не используется и не будет использоваться из-за очень нестабильной работы.

Ок, вешаем memcached на юниксовый сокет, что кстати, добавит ему скорости.

В rc.conf в флагах добавляем -s /tmp/memcached.socket -a 0777

Права 777 нужны чтобы вебсервер мог взаимодействовать с мемкэшедом, работающим от другого пользоватя.

Подключаемся к Memcache из php скрипта:
$memcache = new Memcache;
$memcache->connect('unix:///tmp/memcached.socket', 0);


@author: j4ck
@date: Четверг, 07 Февраль 2008


Комментарии : 10


10] Гость - 09:26, 02 Апрель, 2012
Команда pecl не работает, если не установлен pear

cd /usr/ports/devel/pear
make
make install
9] Гость - 00:29, 09 Январь, 2011
Memcached действительно дает прирост производительности вашего сайта. Но лучше использовать его в связке nginx(fronten for apache)+apache+eAccelerate+memcached.
И тогда получите почти идеальный вариант производительности для большинства проектов. У меня после установки на сайте http://eshopes.com получилось рост в 3 раза приблизительно по скорости загрузки и выполнения.
Советую попробовать этот вариант.
8] Гость - 14:06, 08 Ноябрь, 2010
Гость, который писал 18 февраля: можно-то можно, но нужно ли лепить что-то из найденных по помойкам кусков? По-моему, лучше написать свое (если времени достаточно) с учетом специфики проекта и в соответствии со своим стилем кода.

Последним трем гостям: да вы по жизни чмо и уроды!
7] Гость - 15:06, 20 Июль, 2010
гыыы
6] Гость - 16:38, 13 Июль, 2010
Лашары
5] Гость - 22:13, 08 Январь, 2009
вы все гамасеки =)
4] Гость - 21:06, 01 Январь, 2009
При использовании скрипта выше упираемся в дедлоки на большом трафике =(
http://blogdr.ru/how-to-solve-deadlock-memcached-php/
3] Гость - 22:57, 11 Май, 2008
Для фряхи модуль для php лучше собрать из портов, чтобы удобнее обновлять
/usr/ports/databases/pecl-memcache
2] Гость - 16:47, 18 Февраль, 2008
Класс для работы с memcached из php можно найти на phpclasses.org, например:
http://www.phpclasses.org/browse/file/17230.html

Комментировать:




Код подтверждения: *
Введите подтверждающий код, так же как он отображен на картинке.
Надоело разбирать числа на картинке? Зарегистрируся, докажи что ты не робот!

@СКАЖИРЕКЛАМЕНЕТ@

Загородная жилая недвижимость: продаем пригородное жилье на Realtymag.ru. . магниты заказать . 8 Марта -Сеть фирменных салонов: диваны для офиса. 700 моделей мебели! Кредит.