CGI C++ - jak to zrobić?
-
- Piegowaty Guziec
- Posty: 5
- Rejestracja: 14 wrz 2010, 17:30
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
CGI C++ - jak to zrobić?
Witam!
Mam następujący problem: chciałbym zrobić serwer www, w którym będę mógł używać cgi. Wiem, że apache udostępnia taką możliwość, ale nie wiem gdzie to się ustawia. Chciałbym się również dowiedzieć czy są do tego potrzebne jakieś specjalne biblioteki lub flagi do g++.
Z góry dziekuje za pomoc.
Mam następujący problem: chciałbym zrobić serwer www, w którym będę mógł używać cgi. Wiem, że apache udostępnia taką możliwość, ale nie wiem gdzie to się ustawia. Chciałbym się również dowiedzieć czy są do tego potrzebne jakieś specjalne biblioteki lub flagi do g++.
Z góry dziekuje za pomoc.
- DDAroo
- Serdeczny Borsuk
- Posty: 107
- Rejestracja: 27 cze 2009, 10:47
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: KDE Plasma
- Architektura: x86
- Lokalizacja: Kraków
- Kontakt:
Odp: CGI C++ - jak to zrobić?
CGI polega na tym, że serwer www zamiast samemu generować odpowiedź HTTP na żądanie HTTP użytkownika, zleca to zewnętrznemu skryptowi/programowi. W dużym uproszczeniu wygląda to tak, że żądanie HTTP od użytkownika jest przetwarzane przez serwer. Wyciąga on zmienne GET oraz POST z żądania. Następnie ustawia zmienne środowiskowe dla uruchamianego skryptu, w których umieszcza informacje różne informacje o żądaniu od użytkownika, którego mogą być przydatne skryptowi, jak na przykład adres IP użytkownika czy typ żądania HTTP. Następnie uruchamia skrypt, na którego standardowe wejście zostaje wysłane żądanie CGI, które zawiera np. zmienne HTTP. Skrypt przetwarza te dane i na na standardowe wyjście wypisuje odpowiedź CGI, które jest przetwarzane przez serwer www, który daje odpowiedź użytkownikowi.
użytkownik -----[żądanie HTTP]----> serwer www ----[żądanie CGI]---> program ----[odpowiedź CGI]---> serwer www ----[odpowiedź HTTP]---> użytkownik
Forma żądania i odpowiedzi CGI oraz zalecenia w uruchamianiu skryptów CGI znajdują się w standardzie CGI 1.1. Nie musisz używać żadnych zewnętrznych bibliotek aby uruchomić program, ustawić zmienne środowiskowe, wypisać dane na jego standardowe wejście i odczytać jego standardowe wyjście.
użytkownik -----[żądanie HTTP]----> serwer www ----[żądanie CGI]---> program ----[odpowiedź CGI]---> serwer www ----[odpowiedź HTTP]---> użytkownik
Forma żądania i odpowiedzi CGI oraz zalecenia w uruchamianiu skryptów CGI znajdują się w standardzie CGI 1.1. Nie musisz używać żadnych zewnętrznych bibliotek aby uruchomić program, ustawić zmienne środowiskowe, wypisać dane na jego standardowe wejście i odczytać jego standardowe wyjście.
-
- Piegowaty Guziec
- Posty: 5
- Rejestracja: 14 wrz 2010, 17:30
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.04
- Środowisko graficzne: GNOME
- Architektura: x86
Odp: CGI C++ - jak to zrobić?
OK. Zainstalowałem sobie serwer lighttpd i uruchomiłem cgi wg skryptu zawartego w index.html (lighty-enable-mod cgi). Skompilowałem prosty program test.cpp
i wsadziłem plik wynikowy do folderu /usr/lib/cgi-bin/ jako test.o i test.cgi(po prostu zmieniając nazwę).
Wyszukiwarka na zapytanie localhost/cgi-bin/test.o i localhost/cgi-bin/test.cgi daje wynik: "404 - not found"
Spróbuję później zrobić to samo na apachu.
Na apachu wyszukiwarka mi wypisała: You don't have permission to access /cgi-bin/ on this server. Po zmianie ustawień dostępu do folderu /usr/lib/cgi-bin/ zadziałało.
Dzieki za pomoc.
Kod: Zaznacz cały
#include<iostream>
using namespace std;
int main()
{
cout << "Content-type: text/html\n\n";
cout << "jakis tekst" << endl;
}
Wyszukiwarka na zapytanie localhost/cgi-bin/test.o i localhost/cgi-bin/test.cgi daje wynik: "404 - not found"
Spróbuję później zrobić to samo na apachu.
Na apachu wyszukiwarka mi wypisała: You don't have permission to access /cgi-bin/ on this server. Po zmianie ustawień dostępu do folderu /usr/lib/cgi-bin/ zadziałało.
Dzieki za pomoc.
- DDAroo
- Serdeczny Borsuk
- Posty: 107
- Rejestracja: 27 cze 2009, 10:47
- Płeć: Mężczyzna
- Wersja Ubuntu: 11.04
- Środowisko graficzne: KDE Plasma
- Architektura: x86
- Lokalizacja: Kraków
- Kontakt:
Odp: CGI C++ - jak to zrobić?
Chyba tak średnio pomogłem, myślałem że chcesz samemu napisać taki serwer, a nie uruchomić swoje programy na serwerze 

-
- Wytworny Kaczor
- Posty: 352
- Rejestracja: 15 paź 2008, 18:30
- Płeć: Mężczyzna
- Wersja Ubuntu: 9.04
- Środowisko graficzne: KDE Plasma
Odp: CGI C++ - jak to zrobić?
A może lepiej użyć Wt? (pakiet witty)
- leon1313
- Zakręcona Traszka
- Posty: 668
- Rejestracja: 02 sty 2006, 19:35
- Płeć: Mężczyzna
- Wersja Ubuntu: 10.10
- Środowisko graficzne: KDE Plasma
- Architektura: x86
Odp: CGI C++ - jak to zrobić?
Poczytaj sobie troszkę o nagiosie i konfiguracji lighttpd do współpracy z tym programem.
http://redmine.lighttpd.net/wiki/1/NagiosRecipe
Samych przykładów jest też troszkę:
http://www.google.pl/#hl=pl&source=hp&b ... 14e5fb5152
http://redmine.lighttpd.net/wiki/1/NagiosRecipe
Samych przykładów jest też troszkę:
http://www.google.pl/#hl=pl&source=hp&b ... 14e5fb5152
"Poza tym dostałeś PLONKa i zabraniam Ci pisać na te grupe!!! Powiedziałem PLONK i sie zamknij i nawet nie knuj rzeby mi odpisywać! Zabraniam!!!"
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 10 gości