Установка 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
