Avatar billede -street- Nybegynder
14. januar 2003 - 12:03 Der er 11 kommentarer og
1 løsning

Eksekvering af binære CGI-filer.

Jeg programmerer i Perl og har nogen gange brug for at kryptere mine scripts. Jeg har derfor fundet et program som konverterer mine Perl scripts til binære CGI-filer. Nu skal jeg bare finde ud af hvordan man sætter Apache op til at kunne køre disse ?
Avatar billede madst Nybegynder
14. januar 2003 - 12:21 #1
Præcist som du ville hvis det var almindelige perl scripts. CGI er
ikke bundet til at det er scripts - webserveren kører blot programmet
med det rigtige environment sat og sender eventuelle POST data på
standard input.
Almideligvis tillader man cgi-script i apache med enten
ScriptAlias eller Options +ExecCGI.
http://httpd.apache.org/docs-2.0/mod/mod_alias.html#scriptalias
http://httpd.apache.org/docs-2.0/mod/core.html#options
Avatar billede -street- Nybegynder
14. januar 2003 - 14:41 #2
Jeg har sat 'ExecCGI' til i 'Options', i det bibliotek jeg ønsker at eksekvere CGI-scriptet. Jeg har ingen problemer med at køre normale Perl scripts derfra, men binære CGI-scripts vil den ikke være med til. CGI behøver jo ikke være Perl, det er jeg udemærket klar over. CGI er bare den metode du bruger til kommunikere mellem server og klient. Hvad kan fejlen være ?
Avatar billede madst Nybegynder
14. januar 2003 - 14:52 #3
Kik i din error_log - der vil højest sandsynligt være hints at finde.
Oftest er det fordi det environment webserver brugeren har ikke er det
samme som det du selv har. Kan evt. testes ved som root at køre:

su -c nobody '/path/to/script'
Avatar billede -street- Nybegynder
14. januar 2003 - 15:16 #4
Det er en Windows maskine med Apache på. Dette kan derfor ikke være fejlen :(
Avatar billede madst Nybegynder
14. januar 2003 - 15:24 #5
right - så træder jeg bare i baggrunden igen - windows særheder er ikke
noget jeg gør ret meget i ;)
Eneste ide jeg kan komme på er at lave et lille almindeligt perl script
der ikke gør andet end at eksekvere din binary og printe outputtet. Og
så selvfølgelig som altid - kig i ErrorLog - det er den bedste kilde
til debugging info.
Avatar billede jinxit Nybegynder
14. januar 2003 - 15:35 #6
Tilføj følgende til dit Directory-directive

Options +ExecCGI
SetHandler cgi-script

Så vil Apache2 behandle alle filer i det specificerede bibliotek som cgi-scripts,
Avatar billede madst Nybegynder
14. januar 2003 - 15:50 #7
ScriptAlias /cgi-bin /path/to/cgi-bin

er nemmere
Avatar billede -street- Nybegynder
15. januar 2003 - 09:23 #8
Jeg har sat mit 'ScriptAlias' og min 'SetHandler', så jeg kan afvikle Perl overalt på mit websted. Men jeg kan stadig ik' eksekvere binære CGI-filer.
Avatar billede -street- Nybegynder
15. januar 2003 - 10:05 #9
...og for at gøre det klart er det ikke en Apache2, men derimod en Apache 1.3.27 from the good old days :)
Avatar billede morten_linder Praktikant
15. januar 2003 - 11:20 #10
frækkert
Avatar billede -street- Nybegynder
16. januar 2003 - 15:29 #11
Programmet jeg bruger til kompilere fra normale Perl scripts til binære CGI-filer er Perl2exe (http://www.perl2exe.com). Ved ikke om det kan give folk et praj om hvad fejlen evt. kunne være ?
Avatar billede -street- Nybegynder
04. februar 2003 - 14:29 #12
Har fundet ud af det selv...
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