2011-02-03 4 views
0

Я хочу создать расширение apache для моего специального протокола, который прослушивает тот же порт, что и apache, но в определенном каталоге или файле, таком как php. Мне нужно это, чтобы включить мою игру с помощью настраиваемого сервера, но не с php. Я не могу слушать другой порт или другой сервер. apache httpd extension help

Я не хочу создавать файл php или что-то подобное. Мне нужна полная исполняемая программа, где я могу динамически выделять память и т. д. программа полностью вне сервера Apache, но apache «передает» специальные запросы к этой программе (например, файлы .foo или каталог/foo/.

Мне нужен учебник или помощь для создания пользовательского расширения для апача

UPDATE:.

я хочу создать демон работает в фоновом режиме моего сервера, а затем, когда апач посылает запрос, он отправил это моему демону, а затем демон генерирует запрос, а затем отправляет ответ. Это важно, что не похоже на файл сценария php или perl, потому что это не выполняется один раз, программа работает все время и ждет, когда apache отправит что-нибудь. Я не знаю, как общаться с apache. Но я думаю, что это не CGI, потому что, если я хорошо читаю, CGI работает как: apache получает reuest, а затем START новый процесс для моего php или perl-файла, отправляет данные через аргументы и stdIN, а затем, когда процесс заканчивается, читает форму ответа stdOut и отправляет ее обратно, процесс завершается.

Но моя prgram все еще работает. Мне нужно запустить мою программу в фоновом режиме все время, потому что мне нужно хранить данные в памяти, которая загружается при запуске.

как это .: http://i53.tinypic.com/v45jzo.jpg

ответ

2

Вам не нужно специальное расширение, просто register a CGI handler, что вызывает ваш код обработки.

Edit Вы можете настроить апач на proxy запросы на ваш демон.

Вам нужно будет вернуть правильно отформатированный ответ HTTP или он не будет работать. Вы должны прочитать об Apache и веб-коммуникациях в целом, чтобы лучше понять, что необходимо вашему демону.

ProxyRequests Off 

<Proxy *> 
Order deny,allow 
Allow from all 
</Proxy> 

ProxyPass /foo http://foo.example.com/bar 
ProxyPassReverse /foo http://foo.example.com/bar 

P.S. Написание расширения Apache: много сложнее не переносимое.

+0

Я действительно не понимаю, что такое CGI. это в API, как материал? Я хочу создать исполняемую программу, а не php-файл. –

+0

работает с этой конфигурацией прокси. и действительно портативен. еще раз спасибо! –

0

Чтобы ответить на ваш второй вопрос о том, что CGI является

CGI означает общий интерфейс шлюза.

Когда вы регистрируете обработчик, как указал Байрон, вы говорите apache, чтобы дать «запрос» вашему приложению. apache прослушивает вывод stdout вашего приложения и возвращает результат пользователю.

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

Но если вы не понимаете этого, у вас возникнут проблемы. например, вы должны установить определенные заголовки.

DC

Смежные вопросы