Установка phpDaemon + libevent на Ubuntu
// 10 сентября, 2010 // Highload, PHP, Веб-разработка
Зачем нам это надо можно понять из предыдущей статьи, теперь о том как нам всё это установить:
0. PHP должен быть собран с этим:
PHP5 CLI >= 5.3 с поддержкой pcntl, shmop и sockets
1. На всякий случай удаляем старывй libevent (если его не было ничего страшного не будет).
apt-get remove --purge libevent1
2. Качаем libevent из ветки 1.4.x по этой ссылке
3. Распаковываем архив
4. Выполняем конфигурирование и компилируем библиотеку
./configure make make install
5. Устанавливаем pecl расширение для php
pecl install channel://pecl.php.net/libevent-0.0.4
6. Добавляем расширение в php.ini для php-cli, т.е. /etc/php5/cli/php.ini
extension=libevent.so
7. Перезапускаем веб-сервер
8. Смотрим phpinfo(); и убеждаемся, что там есть раздел про libevent
7. Заходим в папку, куда будем ставить phpDaemon
cd /usr/local/lib
8. Делаем туда импорт из GIT репозиатрия phpDaemon
git clone git://github.com/kakserpom/phpdaemon.git $path
9. Ставим права
cd ./phpdaemon chmod +x ./bin/phpdaemon
10. Ставим расширение proctitle
pecl install proctitle
11. Добавляем его в php.ini для php-cli, т.е. /etc/php5/cli/php.ini
и снова перезапускаем веб сервер
extension=proctitle.so service apache2 restart
12. Запускаем phpdaemon
/usr/local/lib/phpdaemon/bin/phpdaemon start --user=andrey
Дальше для удобства сделаем симлинк:
ln /usr/bin/phpdaemon /usr/local/lib/phpdaemon/bin/phpdaemon
Теперь можно в конфиг-файле, который находится в /usr/local/lib/phpdaemon/conf/phpdaemon.conf.php закомментировать строчку
'mod-fastcgi-enable' => 1,
(т.к. у меня кто-то уже висел на 9000 порту, который он хотел занять), и добавить строчку
'mod-http-enable' => 1,
А в файле /app-servers/HTTP.php меняем listen-port с 80 на 82 дабы не толкаться с apache.
После этого убиваем старого демона командой
phpdaemon stop --user=andrey
и запускаем его заново
phpdaemon start --user=andrey
заходим по адресу http://127.0.0.1:82 и наслаждаемся картинкой.
Мы получили рабочий мнопроцессный HTTP-сервер на PHP! Потестим его:
siege http://127.0.0.1:82/ -d1 -r10 -c25
Transactions: 250 hits
Availability: 100.00 %
Elapsed time: 8.06 secs
Data transferred: 0.46 MB
Response time: 0.00 secs
Transaction rate: 31.02 trans/sec
Throughput: 0.06 MB/sec
Concurrency: 0.13
Successful transactions: 250
Failed transactions: 0
Longest transaction: 0.03
Shortest transaction: 0.00
Получается он работает с частотой 30Hz
Спасибо!
Если вам помогла статья, или вы хотите поддержать мои исследования и блог - вот лучший способ сделать это:
Эх с установкой то проблем нет.
лучше бы показали на примере как пользоваться этим чудом
Обязательно покажу, просто ещё руки не дошли 🙂
Буду ждать с нетерпением)
Здравствуйте, не могу запустить Демон, все библиотеки установил, демон установил, не могу запустить, пишется ошибка
PHP Warning: Module ‘libevent’ already loaded in Unknown on line 0
[PHPD] Config file not found in ‘/etc/phpd/phpd.conf;./conf/phpd.conf’.
помогите )
По поводу Warning -> скорее всего libevent подключается сразу в нескольких конфигах. Посмотрите и снесите лишний.
По поводу второй ошибки -> собственно нет файла с конфигом демона ни в системной папке (/etc/phpd/) ни в текущей(./conf)/ Надо его создать. Вот его образец: https://github.com/kakserpom/phpdaemon/blob/master/conf/phpd.conf.example
ура, заработал демон, как примеры в демоне запустить ?
Отлично!
Ну собственно php yourappbootstrap.php
Вот руководство по контролю выполнения: https://github.com/kakserpom/phpdaemon/wiki/Execution-Control
Уважаемый господин Андрей Токарчук.
Объясните пожалуйста тупому, как запустить примеры которые входят в состав phpDaemon. В последней версии демона нет конфига phpdaemon.conf.php, есть phpd.conf, в него не прописывается ‘mod-http-enable’ => 1, я поменял в /app-servers/HTTP.php listen-port 80 на 82, перегрузил демон, зашел по адресу http://127.0.0.1:82, и страницей которая вывелась у вас не насладился :(,
Да, Вася там знатно поменял всё. Файла phpdaemon.conf.php действительно нет, где указать порт — вообще непонятно.
Нашел вот несколько ссылок:
По установке
По конфигурированию
но пока больше вопросов. У них там намечаклся грандиозный рефакторинг, видимо до конфа ещё не сделали. Пойду, у него спрошу, может просветит, чего и как.
Варианта два.
Первый вариант: — прямо в настройках app есть стартовый конфиг, который можно править…
Например HTTP.php — прописываем биндинг, порт, дефаултное приложение и т.п.
Второй вариант: — он уже описан в примерах на ГИТЕ
в phpd.conf :
_Имя_Модуля {
_НАСТРОЙКИ МОДУЛЯ_
}
Например:: ServerStatus {
enable 1;
}
HTTP {
enable 1;
privileged;
}
Андрей Токарчук
Вы разобрались как все таки установить phpdaemon ???
У меня тоже не получается по Вашей статье!
Нет, исходники поменяли очень сильно. Ищите информацию на офсайте: http://phpdaemon.net/