Avatar billede half_d Nybegynder
25. april 2001 - 14:13 Der er 9 kommentarer og
2 løsninger

Execute C++ filer via HTTP

Hejsa,

jeg har en compilet C++ fil, som skal modtage noget data fra en html form via POST.

Det vil den ikke.

Det der er problemet er at serveren ikke genkender filen som executable og derfor bare spytter kildekoden ud i hovedet på en.

Jeg kan godt køre den via telnet, altså inde på selve serveren.

Lidt info :
Apache server på FreeBSD.
C++ kode compilet med g++

Anybody got ideas?
Avatar billede morpheus Nybegynder
25. april 2001 - 14:24 #1
Sæt en mime type... ?
Avatar billede thomasledet Nybegynder
25. april 2001 - 17:04 #2
Du skal være sikker på at den endelse filen (.cgi feks.) har er sat som script i apaches configuration, samt at det directory har execute rettigheder i apache configurationen.
Apache configurationen kan du ændre på to måder.
Hvis du har et site hostet får du formentlig ikke lov til at ændre i de \'rigtige\' conf filer. Derimod kan du formentlig lave en .htaccess fil der skal indeholde noget i retning af:

<Directory /denfuldesti>
  Options ExecCGI Includes Indexes FollowSymLinks
</Directory>

hvor ExecCGI angiver at der må køres cgi-scripts
Includes angiver der må køres serverside includes filer (php f.eks.), indexes angiver at der bliver lavet en liste over indholdet i biblioteket hvis der ikke er nogen index.html og followsymlinks angiver at den skal følge symbolske links.

Du skal forresten også huske at CHMOD\'e din executable 755

håber det kan bruges ja?
Avatar billede mtilsted Nybegynder
25. april 2001 - 19:45 #3
Er det kilden til dit c++ program den spytter ud??

I saa fald skal du huske at compile dit program :}
Avatar billede half_d Nybegynder
26. april 2001 - 01:22 #4
OK, jeg har lige fundet ud af at den godt vil køre hvis jeg kalder filen .cgi tilsidst..

meen ... (for der er jo et lille men)
jeg vil gerne ha at der ikke er noget \'efternavn\' på filen,
altså at adr. ville se sådan ud f.eks.
www.blabla.com/images?i=blabla.jpg
istedet for
www.blabla.com/images.cgi?i=blabla.jpg
som den ser ud nu.
Avatar billede thomasledet Nybegynder
26. april 2001 - 17:16 #5
det nemmeste ville være at sætte filen som index-fil i din .htaccess... så vil der godtnok komme en skråstreg mere på...

tilføj denne linie eller erstat den med den gamle i det dir, du har filen i->

DirectoryIndex ditfilnavn.cgi

så vil du kunne kalde filen sådan her

www.blabla.com/images/?i=blabla.jpg

du kan selvfølgelig også rette i dine filetypes, således at filer uden efternavn behandles som .cgi-filer...

ellers så kig en tur forbi www.apache.org og læs noget dokumentation om .htaccess
Avatar billede half_d Nybegynder
26. april 2001 - 17:58 #6
Ja, det var en måde at gøre det på, det med at sætte DirectoryIndex til min cgi fil.

Problemet er jo mest at det ikke er min server, så jeg kan ikke komme helt ned og pille i config filerne.

Men kan jeg sætte filetypes i local dir?

Jeg smutter lige forbi apache igen, var der et godt stykke tid i går, men fandt ikke rigtig noget.
Avatar billede thomasledet Nybegynder
26. april 2001 - 21:24 #7
fra apache.org ...

AddHandler directive
Syntax: AddHandler handler-name extension [extension] ...
Context: server config, virtual host, directory, .htaccess
Override: FileInfo
Status: Base
Module: mod_mime
Compatibility: AddHandler is only available in Apache 1.1 and later

AddHandler maps the filename extensions extension to the handler handler-name. This mapping is added to any already in force, overriding any mappings that already exist for the same extension. For example, to activate CGI scripts with the file extension \".cgi\", you might use:

    AddHandler cgi-script .cgi

Once that has been put into your srm.conf or httpd.conf file, any file containing the \".cgi\" extension will be treated as a CGI program.

The extension argument is case-insensitive, and can be specified with or without a leading dot.

du kan NÆSTEN altid få lov at sætte din .htaccess fil... og så skulle det være muligt at ændre... har du ikke adgang til det, vil det være et problem...

som sagt før-> http://www.apache.org/docs
Avatar billede thomasledet Nybegynder
26. april 2001 - 21:30 #8
for dit vedkommende ville

AddHandler cgi-script .

måske være løsningen... har ikke lige testet det... leg selv løs med det...
Avatar billede delwin Nybegynder
27. april 2001 - 14:44 #9
Kig her.. Det er godt nok lavet til PHP, men det forklarer hvordan du sætter Apache op til at kunne bruge filer uden endelser.. ved hjælp af .htaccess

http://www.phpbuilder.com/columns/tim20000526.php3
Avatar billede half_d Nybegynder
27. april 2001 - 15:41 #10
Nu har jeg fundet ud af en måde at gøre det på :
I min .htaccess fil i det dir. hvor jeg har min cgi fil :

ForceType application/x-httpd-cgi

Det tvinger simpelthen alle filer i det dir. til at være cgi filer.

Så skal jeg bare flytte selve html filerne til et andet dir, ellers får man nogle gode 500 errors :)

thomas :
AddHandler cgi-script . virker ikke.
Den kan ellers bruges, hvis man vil ha\' f.eks. en fil der hedder action.pzxdde
AddHandler cgi-script .pzxdde

:)
Avatar billede half_d Nybegynder
27. april 2001 - 15:44 #11
Nu er det jo ikke sådan at jeg afviser mit svar :)
Fordi det er jo sådan set svaret på  mit spørgsmål...
men jeg ville jo ikke give mig selv point vel...

Tak for hjælpen!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Uanset kodesprog, så giver vi dig mulighederne for at udvikle det, du behøver.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester