Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 6 odgovora
  • 6.801 pregleda

Najnovija ↓

Kako da pokrenem program iz CGI...? 19.03.2010. u 18:52 · pre 202 meseca #1
Ovako:
1. Ne znam nista o Perlu, ali po onome sto sam nasao na netu, mozda bi ovo moglo.
2. Imam izvrsni kod (nastao iz C-a, preveden i tako to)koji radi na linuxu
3. Imam punu administrativnu kontrolu nad linuxom
4. Hocu da taj izvrsni kod stavim negde (valjda u www/cgi-bin) i da pomocu necega (valjda nesto.pl koji je takodje u cgi-bin) ga aktiviram da mi odradi ono sto inace lepo odradjuje.
Mislim da sam bio jasan.
Hvala.

Re: Kako da pokrenem program iz CGI...? 23.03.2010. u 07:27 · pre 202 meseca #2
Ako koristis Apache, treba da mu ukljucis podrsku za CGI, to je nesto poput
Code:

<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Order allow,deny
    Allow from all
</Directory>

Jednom kada postavis skript/izvrsni fajl, pristupaces mu preko URL-a tipa localhost/cgi-bin/nesto.pl.
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Re: Kako da pokrenem program iz CGI...? 24.03.2010. u 10:10 · pre 202 meseca #3
Nismo se razumeli.
Šta treba da stavim u nesto.pl da se izvrši mojprogram (tačka 2. mog pitanja) , koji je izvršni kod preveden iz C-a ?
I gde se nalazi mojprogram, kome su setovani sa chmod 755 (znači može da se izvršava).
Re: Kako da pokrenem program iz CGI...? 24.03.2010. u 13:25 · pre 202 meseca #4
Nista posebno ne stavljas, evo jednog jednostavnog primera, nazovi ga echo.pl:
Code:

use CGI;


my $query = CGI->new();
print $query->header();
print "method=" . $ENV{REQUEST_METHOD} . "\n";
print "address=" . $ENV{REMOTE_ADDR} . "\n";
# POST request has one parameter only named POSTDATA
foreach my $name ($query->param())
{
    print "$name=" . $query->param($name) . "\n";
}

Dakle, stavljas skript takav-kakav je u direktorijum poput /var/www/cgi-bin. Ako je Apache podesen, on ce gadjati gornji skript pozivom URL-a http://localhost/cgi-bin/echo.pl. Proveri samo da li je instaliran CGI modul (to je prva linija skripta), trebalo bi da je negde u direktorijumu poput /usr/lib/perl5, zove se CGI.pm a trebalo bi da postoji i CGI direktorijum.
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Re: Kako da pokrenem program iz CGI...? 25.03.2010. u 11:59 · pre 202 meseca #6
Ili ja ne umem da postavim pitanje ili je nesto drugo po sredi.
Evo idem polako.
Program koji je napisan u C-u radi npr. sledece:
1. cita neki fajl a.txt
2. odradi neke operacije sa podacima
3. rezultat upise u fajl b.txt.

Obrati paznju, ni a.txt ni b.txt nisu pravljeni za web.

Meni treba perl skript koji ce:
a) da prihvati http request parametre i na onovu njih napravi a.txt.
b) zatim se pozove moj C program.
c) zatim se iz perl skripta procita b.txt, pripremi http response i nazad ka browseru.

Ono sto sam ja pitao odnosi se samo na b).

Znaci nista Server_Side_Includes jer moj C program ne priprema odgovor koji je podoban za web,
nista Options +ExecCGI to nisam pitao to sam vec i sam uradio.

Hvala svima na trudu.

Re: Kako da pokrenem program iz CGI...? 25.03.2010. u 13:20 · pre 202 meseca #7
Pa tako reci.:)
Gorepomenuti echo.pl prihvata HTTP parametre preko $query->param() a stampa nazad jednostavnim print(). Izmedju toga treba da pozoves svoj C program recimo preko system() ili exec(). Dakle, $query->param() drzi sve parametre koji ti stizu a print() vraca izlaz browseru.
Potpis
Sveti Avgustin: "Dobar hrišćanin treba da se kloni matematičara i svih onih koji daju lažna proročanstva. Postoji opasnost da su matematičari već sklopili pakt sa Đavolom, da pomrače čovekov um i da ga okuju okovima pakla."
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme