[Apache] Problemen met de CGI-BIN

Pagina: 1
Acties:

  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 14-09 14:44
Specs:
OpenBSD 3.2;
Apache 1.3.26;
Perl 5.6.1;

Probleem:
Apache kan geen scripts executen uit /var/www/cgi-bin. In de httpd.conf heb ik het volgende mbt cgi-bin:

code:
1
2
3
4
5
6
7
8
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

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


Verder zijn alle scripts owned door root, group bin en mode 755. Nou heb ik al gespeeld met de scripts laten ownen door de user waaronder httpd draait (www), maar dat bood geen soelaas. Ik heb last van de volgende error:

In error_log:
[Mon Mar 17 17:37:31 2003] [error] (2)No such file or directory: exec of /cgi-bin/printenv failed
[Mon Mar 17 17:37:31 2003] [error] [client 130.89.232.13] Premature end of script headers: /cgi-bin/printenv
In de browser:
HTTP/1.1 500 Internal Server Error

De scripts zijn wel uit te voeren vanuit de console, door alle users op de bak.

Iemand ervaring of een oplossing voor dit probleem? Ik dank u alvast.

[ Voor 5% gewijzigd door Koffie op 17-03-2003 17:44 . Reden: Code tags geplaatst ;) ]

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • Koffie
  • Registratie: Augustus 2000
  • Laatst online: 12:06

Koffie

Koffiebierbrouwer

Braaimeneer

Move PNS > SA

Lijkt me dus redelijk simpel ;)
Apache kan de juiste directory niet vinden.

Braaikamer - Smoke&BBQ


  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 14-09 14:44
Danku voor t plaatsen van die codetag, nu verdenkt iedereen mij ervan dat ik die haakjeszut eromheen ben vergeten :). En redelijk simpel? T is nog niet opgelost he?

edit:

En hoe zorg ik dat Apache ze wel vindt? Hij staat toch duidelijk in de httpd.conf?

[ Voor 24% gewijzigd door TGEN op 17-03-2003 17:54 ]

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • Marcel Loesberg
  • Registratie: Juni 2000
  • Laatst online: 30-05-2024
"Premature end of script headers" en "internal server error" duidt vaak een probleem met het script aan.
Kijk een wat je vind in httpd.error.log (of hoe je error log ook het) wat er precies mis gaat.
Ik doe meestal een tail -f op mijn error log en kijk wat er voorbi komt op het moment
dat ik het script in kwestie aanroep (in een browser want op de console werkt het zeg je).
Post de informatie die je daar vind dan komen we wellicht verder.

HP9000 715/50, 192Mb, 3 x 2Gb, HP-UX 10.20, 21" HP A1097C


  • Marcel Loesberg
  • Registratie: Juni 2000
  • Laatst online: 30-05-2024
Oeps, je had error_log al gepost, sorry.
Hmm. Hij kan je printenv niet vinden.
Heeft apache wel toegang tot /var/www/cgi-bin ?
Hoe staan de permissions van /var /var/www en /var/www/cgi-bin?
Ik heb wel eens vergeten dat je minstens --x aan "other" moet geven op
een directory zodat andere gebruikers in die directory kunnen kijken.
Ik had ooit /var op 750 = rwxr-x--- staan en toen kon apache niet bij
/var/www komen omdat ie /var niet in mocht :-)

HP9000 715/50, 192Mb, 3 x 2Gb, HP-UX 10.20, 21" HP A1097C


  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 14-09 14:44
Zoals ik al zei, zijn alle scripts in mode 755.

/var: 755
/var/www: 755
/var/www/cgi-bin: 755

:)

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 14-09 14:44
Nog een kleine excerpt uit de access_log:

130.89.232.13 - - [17/Mar/2003:17:37:31 +0000] "GET /cgi-bin/printenv HTTP/1.1" 500 618

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 14-09 14:44
Update:

Als ik een niet bestaande file uit die dir opvraag, krijg ik wel netjes een 404. Alsof Apache ze eerst wel kan vinden, maar ze kwijt is zodra ie ze wil executen?

edit:

Als ik een welbestaand HTML'etje wil openen (die dus in de cgi-bin staat), dan krijg ik een Permission Denied, oftewel:
[code]
[Tue Mar 18 11:41:37 2003] [error] [client 130.89.232.13] file permissions deny server execution: /cgi-bin/bla.html
[/code]
Rare is, dat die bla.html niet executable gemod is (of zou Apache alles in de cgi-bin willen executen?).

En code tags werken niet binnen edit tags? bugje?

[ Voor 60% gewijzigd door TGEN op 18-03-2003 11:39 ]

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 14-09 14:44
Tsssk, niemand ook maar een stapje in de goede richting?

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • Booster
  • Registratie: Februari 2000
  • Laatst online: 27-08 22:11

Booster

Superuser

Wat ik hier heb staan:

code:
1
2
3
4
5
6
7
8
9
10
11
# cgi-bin/ssi, suEXEC wrapper secured
<Directory "/home/*/www/cgi-bin">
         AllowOverride None
         Options None
         Options +ExecCGI
         Order allow,deny
         Allow from all
</Directory>
AddHandler cgi-script cgi pl
AddHandler server-parsed .shtml
AddType text/html .shtml


files en directories zijn 755, owned by username/usergroup

[ Voor 28% gewijzigd door Booster op 21-03-2003 15:59 ]

The cake is a lie | The Borealis awaits...


  • chaotik
  • Registratie: Januari 2001
  • Laatst online: 10-08-2025
staat in de eerste regel het correcte pad naar de interpretor van je CGI script. Bij een Perl script zou dit bijvoorbeeld zijn

code:
1
#!/usr/bin/perl


Ik geloof dat Apache daardoor op een dergelijke wijze op zijn bek kan gaan

  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 14-09 14:44
chaotik: als ik die fout had, dan kon ik ze ook niet vanuit de console executen (dmv ./testperl.pl).

Booster: Heb jij dan geen ScriptAlias setting? Zonder die setting wil Apache al helemaal nisk in die dir...

btw, nog de code van testperl.pl:
code:
1
2
3
4
5
6
#!/usr/bin/perl

print "Content-type: text/html\n\n";
print STDERR "OK so far.\n";
print "<html><head><title>Bla</title></head><body>Bla</body></html>\n";
exit(0);


Na het uitpluizen van wat archieven kwam ik op deze link, waar iets heel belangrijks wordt vertelt over Apache: het chroot! Dat betekent dus dat alle scripts die verwijzen naar /usr/bin/perl niks kunnen, omdat er geen perl is in /var/www/usr/bin. Die website komt dan ook met een oplossing (het mirroren van /usr/bin). Gonna try it now!

[ Voor 40% gewijzigd door TGEN op 26-03-2003 10:36 ]

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • TGEN
  • Registratie: Januari 2000
  • Laatst online: 14-09 14:44
Ik draai Apache nu met de -u flag, zodat ie dus niet chrooted is. Is misschien minder secure, maar ik zie geen andere nette oplossing (dat mirroren heeft zoveel om het lijf, dat het onderhoudswerk ondoenlijk wordt). De security issues die ik nu zou kunnen ondervinden zijn dan wel jammer, maar helaas. Volgende keer beter Apache :).

Pixilated NetphreaX
Dronkenschap is Meesterschap
DragonFly


  • MadMurdock
  • Registratie: Oktober 2000
  • Niet online
volgens mij moet t gewoon zo gewoon werken:
code:
1
2
3
4
5
6
7
8
ScriptAlias /cgi-bin/ /var/www/cgi-bin/

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

[ Voor 33% gewijzigd door MadMurdock op 26-03-2003 12:01 ]

Pagina: 1