LINUX.ORG.RU

Cи и программа под Apache 2


0

0

Народ. Как настроить Apache что бы он запускал C скомпилированные программы, так же как, например, php скрипты?. Искал по гуглу, по форуму, бьюсь головой о стену ничего не получается. Может информация устаревшая, просто у меня Apache2. Что прописать в конфигурации, что в .htaccess?

Листинг программы:

#include <stdio.h>

int main (int argc, char **argv)
{
printf("Content-type: text/html\n\n");
return 0;
}


В .htaccess дописываю Options ExecCGI, выдает 403 ошибку, убираю -- файл идет на скачивание.. Помогите, уж не хочется возвращаться на php ;).

anonymous

UPD: Положил программу в /var/www/localhost/cgi-bin/, работает, блин. Но что с настройками не понял, вроде бы одинаковые и для остальных каталогов :'(..

anonymous
()
Ответ на: комментарий от anonymous

Как через .htaccess настроить любой каталог, что бы в нем исполнялись откомпилированные программы :'(?

anonymous
()
Ответ на: комментарий от anonymous

Сначала изучи как пользоваться апачем. Уж потом решай свою проблему. Как php влоб не получится, нужен модуль, который бы подхватывал код, компилил, после чего отдавал. Как CGI - без проблем. Есть вроде выход, называется D, но он от c++ и там не сильно всё гладко, но рабочего результата добиться можно.

Anoxemian ★★★★★
()
Ответ на: комментарий от Miguel

Бляха, умники. Зачем мне на лету компилировать и т.п? Я имею ввиду что вот php скрипт можно запустить из любого места и любого каталога, а откомпилированный софт только из cgi-bin работает. А вот как настроить Apache2 что б он запускал бинарники из любого каталога?

anonymous
()
Ответ на: комментарий от anonymous

Или еще, как настроить Apache2 на определенное расширение, что бы он при запросе файла запускал бинарную программу и скармливал ей этот файл :)? Или это совсем уж круто и потянет на модуль?

anonymous
()
Ответ на: комментарий от anonymous

Вопрос снят, всем спасибо ;).

.htaccess
Options +ExecCGI
AddHandler cgi-script .cgi

foo.cgi
#!/bin/sh
./test

test.c
Уже приводил.

А на расширение настроить можно ведь и mod_rewrite'ом :). Ура, ура, ура :).

anonymous
()
Ответ на: комментарий от anonymous

Ещё раз: не надо этого делать. Особенно с C.

Miguel ★★★★★
()
Ответ на: комментарий от boombick

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

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Почему не надо делать? Почему когда был похожий топик и я лично говорил не надо этого делать, мне заткнули рот выдав кучу ссылок на обезопашивание си программы под апачем? где вы были тогда?
и почему, собственно, не надо? если ваши руки кривы, это не значит что остальные не умеют работать с памятью ;)

anonymous
()
Ответ на: комментарий от anonymous

1) Почему не надо делать - потому что каждый инструмент надо использовать по назначению. C категорически не заточено под веб. Он не имеет никаких веб-ориентированных конструкций вообще. Его удел - низкоуровневое программирование и системы реального времени (и то нужно рассмотреть также и другие варианты). 2) Почему заткнули рот - потому что дураков много. 3) Где я был - понятия не имею, возможно, например, что на Чёрном море. 4) Почему не надо - см. 1) 5) У меня прямые руки. Не надо в вебне "работать с памятью", не дело вменяемого программиста думать о такой фигне.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Miguel, ты прав только частично.

Есть, если причины программировать веб на C/C++ - просто это явно не задача для аффтара топика; не тот уровень.

Вот на чем, как ты думаешь, написаны, скажем, счетчики mail/rambler/liveinternet? Ни разу не на рельсах ведь ;)

anonymous
()
Ответ на: комментарий от anonymous

Писать на C++ причин нет. Вообще.

Писать на C - есть, но не под веб. Даже если писать модули к апачу.

На чём написаны - не знаю, но, полагаю, не на сях. Впрочем, к дискуссии это отношения не имеет - много чего делается через задницу.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

> Писать на C++ причин нет. Вообще.

Красноглазие 2-ой степени.

> Писать на C - есть, но не под веб. Даже если писать модули к апачу.

> На чём написаны - не знаю, но, полагаю, не на сях. Впрочем, к дискуссии это отношения не имеет - много чего делается через задницу.

Мораль сей басни - ты никогда не писал высоконагруженных веб-приложений. Ты представляешь себе нагрузку на счетчик масштаба mail.ru-шного или там баннерную систему типа Бегуна? Динамические языки, и даже Java, там не живут вообще - накладные расходы слишком большие.

anonymous
()
Ответ на: комментарий от anonymous

> Динамические языки, и даже Java, там не живут вообще - накладные расходы слишком большие.

У одних красноглазие, у других безграмотность. Статических языков - до одного места, кроме сей и жабы.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

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

anonymous
()
Ответ на: комментарий от Miguel

> > Динамические языки, и даже Java, там не живут вообще - накладные расходы слишком большие.

> У одних красноглазие, у других безграмотность. Статических языков - до одного места, кроме сей и жабы.

Работоспособных, дающих native code, без GC (или с отключаемым)? Ну, ээ, я знаю про C, C++, Pascal, Ada, Fortran, эээ, и все. Ну может Eiffel еще. Остальное на практике неприменимо, потому как not production ready.

anonymous
()
Ответ на: комментарий от anonymous

Вообще, нормальные люди делают не "всё руками", а что-то молотком, что-то отвёрткой и т.п.

Miguel ★★★★★
()
Ответ на: комментарий от anonymous

Ну, это понятно. Что сказать-то хотел?

Miguel ★★★★★
()
Ответ на: комментарий от anonymous

Почему без GC? Это теперь такая модная форма мазохизма?

К твоему сведению: оверхед от современных GC - практически незаметный по сравнению с ручным управлением памятью.

Miguel ★★★★★
()

1. на си
http://fastcgi.com/devkit/doc/overview.html

либо модуль к апачу

Бука: " Writing Apache Modules with Perl and C "

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


2. perl

либо модуль к апачу на перле (mod_perl), либо как FastCGI сервер (FCGI.pm)

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

остановился на Nginx + бэкэнд на Perl/FCGI
(критические участки на C/FCGI)

Effect
()
Ответ на: комментарий от Miguel

> Почему без GC? Это теперь такая модная форма мазохизма?

> К твоему сведению: оверхед от современных GC - практически незаметный по сравнению с ручным управлением памятью.

Да я в курсе. Только вот из перечисленных языков GC есть только в Java (несовременный и знаменитый полуминутными паузами), и в C++, который ты предлагаешь запретить. Про Eiffel, правда, не помню.

Таки на чем предлагается писать веб-приложения, типа тех, про которые сейчас рассказывают на highload?

anonymous
()
Ответ на: комментарий от anonymous

Про HighLoad не знаю, а веб-приложения можно писать на многих вещах. SISCweb, HAppS, BRL в конце концов. Когда Links доведут до ума, можно будет на нём писать, подозреваю, будет очень неплохо - но это дело будущего. ErlyWeb не смотрел, но, говорят, хорошая вещь. И т.д. и т.п.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

Гм... О чём это мы? А то я уже несколько забыл, и, кажется, теряю нить... Надо больше спать.

Miguel ★★★★★
()
Ответ на: комментарий от Miguel

> Про HighLoad не знаю, а веб-приложения можно писать на многих вещах. SISCweb, HAppS, BRL в конце концов. Когда Links доведут до ума, можно будет на нём писать, подозреваю, будет очень неплохо - но это дело будущего. ErlyWeb не смотрел, но, говорят, хорошая вещь. И т.д. и т.п.

еще раз - _высоконагруженные_ приложения нельзя писать на динамических языках. Т.е. CL, Scheme, Erlang отпадают. Ну, CL и Java с натяжкой еще можно пробовать.

И вообще элитисты-функционоиды идут нафек. Как правильно тут уже говорили - после некоторого уровня сложности проекта язык программирования перестает играть значимую роль в сложности его развития/поддержания. Ну, исключая паталогические случаи типа ERP на VBA.

anonymous
()
Ответ на: комментарий от Miguel

> Erlang, минимум, не отпадает. Он масштабируется легко.

Масштабируется не язык, я программа. И потом, вместо 10 машин ставить 50 только для того, чтобы писать на идеологически правильном языке, никто не бутдет.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.