Установка phpDaemon + libevent на Ubuntu
Зачем нам это надо можно понять из предыдущей статьи, теперь о том как нам всё это установить:
0. PHP должен быть собран с этим:
PHP5 CLI >= 5.3 с поддержкой pcntl, shmop и sockets
1. На всякий случай удаляем старывй libevent (если его не было ничего страшного не будет).
1 |
apt-get remove --purge libevent1 |
2. Качаем libevent из ветки 1.4.x по этой ссылке
3. Распаковываем архив
4. Выполняем конфигурирование и компилируем библиотеку
1 2 3 |
./configure make make install |
5. Устанавливаем pecl расширение для php
1 |
pecl install channel://pecl.php.net/libevent-0.0.4 |
6. Добавляем расширение в php.ini для php-cli, т.е. /etc/php5/cli/php.ini
1 |
extension=libevent.so |
7. Перезапускаем веб-сервер
8. Смотрим phpinfo(); и убеждаемся, что там есть раздел про libevent
7. Заходим в папку, куда будем ставить phpDaemon
1 |
cd /usr/local/lib |
8. Делаем туда импорт из GIT репозиатрия phpDaemon
1 |
git clone git://github.com/kakserpom/phpdaemon.git $path |
9. Ставим права
1 2 |
cd ./phpdaemon chmod +x ./bin/phpdaemon |
10. Ставим расширение proctitle
1 |
pecl install proctitle |
11. Добавляем его в php.ini для php-cli, т.е. /etc/php5/cli/php.ini
и снова перезапускаем веб сервер
1 2 |
extension=proctitle.so service apache2 restart |
12. Запускаем phpdaemon
1 |
/usr/local/lib/phpdaemon/bin/phpdaemon start --user=andrey |
Дальше для удобства сделаем симлинк:
1 |
ln /usr/bin/phpdaemon /usr/local/lib/phpdaemon/bin/phpdaemon |
Теперь можно в конфиг-файле, который находится в /usr/local/lib/phpdaemon/conf/phpdaemon.conf.php закомментировать строчку
1 |
'mod-fastcgi-enable' => 1, |
(т.к. у меня кто-то уже висел на 9000 порту, который он хотел занять), и добавить строчку
1 |
'mod-http-enable' => 1, |
А в файле /app-servers/HTTP.php меняем listen-port с 80 на 82 дабы не толкаться с apache.
После этого убиваем старого демона командой
1 |
phpdaemon stop --user=andrey |
и запускаем его заново
1 |
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/