Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > PHP: Общие вопросы > CGI внутри PHP |
Автор: kilogram 19.3.2012, 00:18 | ||||
Изучаю пхп, там пишут что так не используют, но это важно знать как подключается cgi в пхп. Вот написал код.
Скомпилировал программу, получил файл 1.exe, кинул этот файл возле файла index.php Далее там пишут вот такое, что пишут, на фото вложил. В файле index.php ничего не писал, там просто
Не могу понять, что в браузере ввести чтоб вызвать методом GET эту программу написанную на С++. Когда ввожу так: http://test.ru/1.exe?a=1&b=2 происходит просто скачка файла 1.exe на компьютер, но не запуск cgi-программы(я так понял это называется любая программа написанная на ином языке, которую мы хотим запустить в браузере,верно?). Подскажите, как запустить программу 1.exe? |
Автор: skyboy 19.3.2012, 00:47 |
дело в том, что CGI — механизм, используемый НТТР-сервером. То есть, тебе надо взять почитать мануал используемого тобой НТТР-сервера. к примеру, есть туториалы для разных версий на сайте http://httpd.apache.org/docs/2.4/howto/cgi.html из РНР можно просто вызывать программу и получать от неё данные при помощи http://php.net/system или http://php.net/manual/en/ref.exec.php, но тогда тебе придется в РНР скрипте самостоятельно транслировать GET/POST параметры в аргументы командной строки запускаемой программы |
Автор: kilogram 19.3.2012, 01:32 |
Согласно http://httpd.apache.org/docs/2.4/howto/cgi.html Эта строка у меня раскомментирована LoadModule cgi_module modules/mod_cgi.so Вроде делаю по книжке и почему-то программа не запускается. Что ввести нужно в браузере чтоб запустилась программа? |
Автор: Fortop 19.3.2012, 08:36 |
Настроить веб-сервер |
Автор: perloid 19.3.2012, 09:55 |
1) Убедиться что настроен обработчик cgi в конфиге, что из такой-то папки можно запускать cgi скрипты и приложения. 2) Расширение файла exe на cgi поменять (на скриншот свой посмотри - там cgi расширение), можно конечно добавить в список расширение exe (но это кретинизм). 3) Не понял причем тут php и нафига нужен index.php |
Автор: kilogram 20.3.2012, 19:33 | ||||||||
Апач находится у меня на диске С:\www Я зашел в C:\www\conf в файл httpd.conf Ввел там такое:
Затем зашел в C:\www\conf нашел файл просто httpd(текстовой) нашел там
и ввел ниже этого:
Ввожу такую ссылку: http://test.ru/1.exe?a=1&b=2 Опять скачивается файл 1.exe но не запускается Добавлено @ 19:34 Переименовал файл 1.exe на 1.cgi и запустил http://test.ru/cgi-bin/1.cgi?a=1&b=2 Выдает ошибку:
![]() |
Автор: kilogram 20.3.2012, 23:34 |
Все , запустил программу на С++ в пхп, оказывается нужно было переименовать в расширение cgi расширение exeи кинуть в папку cgi апача программу, а не в cgi возле папки сайта или в папкe www-сайта. Скажите, а для каких возможностях используются cgi, какие проги пишутся примерно чтоб использовать cgi для пхп? |
Автор: skyboy 21.3.2012, 01:40 |
например, php.exe CGI, как я уже говорил, механизм НТТР сервера. через этот механизм может работать много программ, в том числе — сам php.exe или что-то вместо него. и не обязательно это будет исполняемый файл. может быть — скрипт. |