Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> CGI внутри PHP 
:(
    Опции темы
kilogram
Дата 19.3.2012, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: -1
Всего: 0



Изучаю пхп, там пишут что так не используют, но это важно знать как подключается cgi в пхп.

Вот написал код.
Код

#include <iostream>
#include <stdlib.h>
using namespace std;

void main(){

char *RemoteAddr = getenv("REMOTE_ADDR");
char *QueryString = getenv("QUARY_STRING");
cout<<"Content-type: text/html"<<endl<<endl;
cout<<"<html><body>";
cout<<"<h>Здравствуйте! Мы знаем о Вас все!</h1>";
printf("Ваш IP-адрес: %s<br>",RemoteAddr);
printf("Вот параметры, которые вы указали: %s", QueryString);
cout<<"</body></html>";
cin.get();
}


Скомпилировал программу, получил файл 1.exe, кинул этот файл возле файла index.php
Далее там пишут вот такое, что пишут, на фото вложил.
В файле index.php ничего не писал, там просто
Код
<?php echo 'Привет мир!'; ?>


Не могу понять, что в браузере ввести чтоб вызвать методом GET эту программу написанную на С++.
Когда ввожу так: http://test.ru/1.exe?a=1&b=2
происходит просто скачка файла 1.exe на компьютер, но не запуск cgi-программы(я так понял это называется любая программа написанная на ином языке, которую мы хотим запустить в браузере,верно?).

Подскажите, как запустить программу 1.exe?

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  clip_image002.jpg 46,41 Kb
PM MAIL   Вверх
skyboy
Дата 19.3.2012, 00:47 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



дело в том, что CGI ­— механизм, используемый НТТР-сервером. То есть, тебе надо взять почитать мануал используемого тобой НТТР-сервера.
к примеру, есть туториалы для разных версий на сайте httpd.apache.org
из РНР можно просто вызывать программу и получать от неё данные при помощи system или других функций выполнения, но тогда тебе придется в РНР скрипте самостоятельно транслировать GET/POST параметры в аргументы командной строки запускаемой программы
PM MAIL   Вверх
kilogram
Дата 19.3.2012, 01:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: -1
Всего: 0



Согласно http://httpd.apache.org/docs/2.4/howto/cgi.html

Эта строка у меня раскомментирована LoadModule cgi_module modules/mod_cgi.so

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

Это сообщение отредактировал(а) kilogram - 19.3.2012, 01:56
PM MAIL   Вверх
Fortop
Дата 19.3.2012, 08:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: 20
Всего: 42



Цитата(kilogram @  19.3.2012,  01:32 Найти цитируемый пост)
Что ввести нужно в браузере чтоб запустилась программа?

Настроить веб-сервер


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
perloid
Дата 19.3.2012, 09:55 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 14.11.2008

Репутация: -1
Всего: -1



1) Убедиться что настроен обработчик cgi в конфиге, что из такой-то папки можно запускать cgi скрипты и приложения.
2) Расширение файла exe на cgi поменять (на скриншот свой посмотри - там cgi расширение), можно конечно добавить в список расширение exe (но это кретинизм).
3) Не понял причем тут php и нафига нужен index.php
PM MAIL   Вверх
kilogram
Дата 20.3.2012, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: -1
Всего: 0



Апач находится у меня на диске С:\www
Я зашел в C:\www\conf 
в файл httpd.conf 
Ввел там такое: 

   
Код

 AddHandler cgi-script .cgi .pl .bat .exe
    AddType cgi-script .exe



Затем зашел в C:\www\conf нашел файл просто
httpd(текстовой) нашел там

Код

<Directory "C:/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>


и ввел ниже этого:

Код

<Directory "C:/www/htdocs/test.ru/www">
#тут могут быть и другие настройки типа AllowOverride или Allow
Options ExecCGI
</Directory>


Ввожу такую ссылку: 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
Выдает ошибку:

Код

Not Found

The requested URL /cgi-bin/1.cgi was not found on this server.


user posted image

Это сообщение отредактировал(а) kilogram - 20.3.2012, 19:35
PM MAIL   Вверх
kilogram
Дата 20.3.2012, 23:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 139
Регистрация: 19.3.2012

Репутация: -1
Всего: 0



Все , запустил программу на С++ в пхп, оказывается нужно было переименовать в расширение cgi расширение exeи кинуть в папку cgi апача программу, а не в cgi возле папки сайта или в папкe www-сайта.
Скажите, а для каких возможностях используются cgi, какие проги пишутся примерно чтоб использовать cgi для пхп?
PM MAIL   Вверх
skyboy
Дата 21.3.2012, 01:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



например, php.exe
CGI, как я уже говорил, механизм НТТР сервера. через этот механизм может работать много программ, в том числе — сам php.exe
или что-то вместо него. и не обязательно это будет исполняемый файл. может быть — скрипт.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0797 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.