Демон на PHP

HraKK

Мудак
Команда форума
Демон на PHP

Не спрашивайте почему именно PHP.

Хочу сделать демона на php, который будет выступать в роли сервера, клиент-серверной игрушки. Отсюда у меня несколько вопросов:
Как лучше принимать данные от клиента?
И может лучше не заморачиватся и просто подымать скрипт каждый раз ?

ПС общение между клиент - сервером будет происходить на C библиотеке CURL
 

440hz

php.ru
сдается мне ты понятия не имеешь о клиент-серверных технологиях.

по какому событию ты будешь его поднимать-то?
когда на порт что-нтиь придет?

=)

или ты будешь серверную часть из скрипта дергать курлом?
тогда это жестоко...
 

Alexandre

PHPПенсионер
http://phpclub.ru/talk/search.php?s=&action=showresults&searchid=1812972&sortby=after&sortorder=descending
почитай возникшие вопросы

-~{}~ 13.07.07 17:25:

по какому событию ты будешь его поднимать-то?
когда на порт что-нтиь придет?
думаю, на то он и демон, чтоб сидеть в памяти постоянно и слушать порт...
запускаться демон должен один раз, из консоли например.
 

440hz

php.ru
2Alexandre

общение между клиент - сервером будет происходить на C библиотеке CURL
когда говорят про "поднимать скрипт", я пугаюсь...
вдруг поднимут, а "опустить" забудут. что тогда?
=)
 

HraKK

Мудак
Команда форума
Я вообще со всеми терминалогиями не дружу.

Alexandre
Да именно, запускатся из кончоли и слушать порт.

сейчас прочитаю.

-~{}~ 13.07.07 16:35:

ладно, я в принципе разобрался +)
 

MiksIr

miksir@home:~$
Если интенсивность подключений клиентов невысока - можно поднимать каждый раз.. через inetd или аналоги. Плюсы - простота: не надо писать сокет-обвеску и управление детьми, минусы - малое бустродействие и ресурсоемкость.
Так что если серверу станет плохо от таких подъемов, то пиши демон, который будет listen на порту, accept новые соединения и форкать детей с этими соединениями.
Но я бы посоветовал обернуть протокол общения в HTTP, поставить что-то вроде nginx-а и отдавать соединения с него в пхп через FastCGI.
 

HraKK

Мудак
Команда форума
Но я бы посоветовал обернуть протокол общения в HTTP, поставить что-то вроде nginx-а и отдавать соединения с него в пхп через FastCGI.
Какие будут плюсы?

Еще вопрос. Если я отсылаю что-то порт, надеюсь apache не плодит детей? Если плодит, то верхний вопрос снимается)

-~{}~ 13.07.07 16:43:

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

Alexandre

PHPПенсионер
Если я отсылаю что-то порт, надеюсь apache не плодит детей?
если слушает порт, то плодит...

если имеется ввиду написание демона на пхп, то он запускается вне апача. В этом случае слушается иной порт (напр 8080), отличный от того, что слушает апач (напр 80)
 

HraKK

Мудак
Команда форума
Понятно.
Тогда конечно 64mb памяти на 1 клиента :))
Устрой апокалипсис серверу))

-~{}~ 13.07.07 17:00:

Alexandre
Стоп. демон на пхп. Как он получает данные если не через прослушку порта?

-~{}~ 13.07.07 17:02:

Дописал )
Да все верно, это я и имел ввиду, конечно не 80. Вот я и думаю нафиг в этой связке апач.

Значит толку он nginx не будет.
 

Alexandre

PHPПенсионер
можешь для этих целей гникс использовать + эФЦГИ, эхотя - повторяюсь
 

HraKK

Мудак
Команда форума
Alexandre
Зачем если обращение идет минуя nginx?
 

MiksIr

miksir@home:~$
Если Вы пишете сервер на php то забудьте про apache.

>Какие будут плюсы?
Вам не нужно будет писать демон, работу с сокетами и форками. В случае запуска PHP как FastCGI он заранее стартует и делает префорки, так что запросы будут обрабатываться с минимальными задержками, ибо не будет тратиться время и ресурсы на форкание.

>Еще вопрос. Если я отсылаю что-то порт, надеюсь apache не плодит детей?
Апач в режиме prefork работает с обычными форками, т.е. делает определенное кол-во префорков, ими обрабатывает запросы, а если их не хватает - форкает новых детей. 2.x Апач умеет работать в других, более адекватных режимах, но, насколько я помню, запуск mod_php с ними не рекомендован.
 

Alexandre

PHPПенсионер
Хочу сделать демона на php, который будет выступать в роли сервера,
что делает демон?
засыпает-просыпается,
слушает порт, если в порт что-то поступило, вызывает обработчик.
снова засыпает.
 

MiksIr

miksir@home:~$
> Тогда конечно 64mb памяти на 1 клиента )
Память бывает шареная.
 

HraKK

Мудак
Команда форума
Память бывает шареная.
Причем тут шаред мемори? 1 Apache жрет около 64 мб памяти.

это если не хочешь писать демона, а просто скрипт обработки данных, который жрет памяти меньше раз в сто чем апач.
Демон предпочтительнее. А про nginx я знаю.

ЗЫ не в сто а вроде ~30 Раз)
 

Alexandre

PHPПенсионер
кажется здесь http://phpclub.ru/talk/showthread.php?s=&threadid=95051&highlight=%E4%E5%EC%EE%ED есть некоторые ньюансы ...
 

MiksIr

miksir@home:~$
> Причем тут шаред мемори? 1 Apache жрет около 64 мб памяти.
Вы это по какой цифре определили? Занимаемая память может состоять из личных данных процесса и шареных между процессами (как правило либы).
 

WP

^_^
Советую использовать nginx + fastcgi, демон вряд ли стоит писать, тем более на PHP. Про апач конечно же сразу забудь.
 
Сверху