Perl wel vanaf shell niet vanaf web

Pagina: 1
Acties:

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Ik was dus een beetje Perl aan het leren. Nu mooi Samba share'tje aangemaakt. Ik file erop zetten, mooi http://10.0.0.100/cgi-bin/test.pl gedaan, kwam er dus gewoon
code:
1
2
3
#!/usr/bin/perl

printf "Hi world!\n";

te staan. Mooi minder, permissie staat gewoon op 755, de user van de share klopt met die van de HTTP user (gameone). Ik dus mooi vanuit shell proberen, dus ikke ./test.pl en hij mooi 'Hi world'. Wat heb ik fout staan?

zeroxcool.net - curity.eu


  • dinges
  • Registratie: September 2000
  • Niet online
edit:
laatmaar

PSN: Houtvlot


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Ja, is mee gecompiled (btw standard volgens mij met rh 7.1)

zeroxcool.net - curity.eu


  • dinges
  • Registratie: September 2000
  • Niet online
moest je niet iets toevoegen aan je httpd.conf ofzo?
ik heb er geen ervaring mee eigenlijk :)
weet niet wat ik in dit topic doe :/

PSN: Houtvlot


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
perl test.pl

Doet hij ook...

zeroxcool.net - curity.eu


Verwijderd

probeer dit±

#!/usr/bin/perl

use CGI,

my page = new CGI;

print "Hello, World!";

exit;


try it... kan nu niet controleren, zit niet achter me eige puters.

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Via web hetzelfde:
code:
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

use CGI;

my page = new CGI;

print "Hello, World!";

exit;

, maar via shell krijg ik dit:
code:
1
2
3
4
[root@server cgi-bin]# perl test.pl
No such class page at test.pl line 5, near "my page"
syntax error at test.pl line 5, near "my page ="
Execution of test.pl aborted due to compilation errors.

zeroxcool.net - curity.eu


  • jep
  • Registratie: November 2000
  • Laatst online: 15-08 16:52

jep

Je vergeet de header. Er vanuit gaande dat je webserver settings en permissies van je .cgi/.pl goed zijn:
code:
1
2
3
4
#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "Fuck you world!\n";

Let op deze regel in je httpd.conf
code:
1
 AddHandler cgi-script .pl

Bovendien moet de httpd hem kunnen uitvoeren, maar dat zit wel goed denk ik :)

  • jep
  • Registratie: November 2000
  • Laatst online: 15-08 16:52

jep

Op zaterdag 05 januari 2002 00:34 schreef ZeRoXcOoL het volgende:
Via web hetzelfde:
code:
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

use CGI;

my page = new CGI;

print "Hello, World!";

exit;

, maar via shell krijg ik dit:
code:
1
2
3
4
[root@server cgi-bin]# perl test.pl
No such class page at test.pl line 5, near "my page"
syntax error at test.pl line 5, near "my page ="
Execution of test.pl aborted due to compilation errors.
Dan zit er gewoon een syntax error in, zoals hij zegt :). Denk dat je een variabele zonder $ ervoor en met spatie aan het maken bent ofzo :? :D

Verwijderd

Op zaterdag 05 januari 2002 00:34 schreef ZeRoXcOoL het volgende:
Via web hetzelfde:
code:
1
2
3
4
5
6
7
8
9
#!/usr/bin/perl

use CGI;

my page = new CGI;

print "Hello, World!";

exit;

, maar via shell krijg ik dit:
code:
1
2
3
4
[root@server cgi-bin]# perl test.pl
No such class page at test.pl line 5, near "my page"
syntax error at test.pl line 5, near "my page ="
Execution of test.pl aborted due to compilation errors.
ik krijg t vermoeden dat je perl niet lekker geinstalleerd staat, of de CGI-compatability niet....

ook denk ik dat je in Apache (?) perl niet goed geconfigged hebt


edit:
bovenstaande heeft gelijk
t moet zijn;

my $page = new CGI;

en je apache is denk niet lekker

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Op zaterdag 05 januari 2002 00:35 schreef j3p het volgende:
Je vergeet de header. Er vanuit gaande dat je webserver settings en permissies van je .cgi/.pl goed zijn:
code:
1
2
3
4
#!/usr/local/bin/perl

print "Content-type: text/html\n\n";
print "Fuck you world!\n";

Succes.
Dit moet denk ik:
code:
1
2
3
4
#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "Fuck you world!\n";

Zijn?

zeroxcool.net - curity.eu


  • jep
  • Registratie: November 2000
  • Laatst online: 15-08 16:52

jep

Klopt :) Jou perl zal denk ik in /usr/bin/perl staan ja :)

Verwijderd

Op zaterdag 05 januari 2002 00:38 schreef ZeRoXcOoL het volgende:

[..]

Dit moet denk ik:
code:
1
2
3
4
#!/usr/bin/perl

print "Content-type: text/html\n\n";
print "Fuck you world!\n";

Zijn?
hangt van je distro af

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Ik zal even m'n httpd.conf online zetten:
http://www.gameone.nl/remote/httpd.conf

Ik weet het, een beetje een rommeltje...

zeroxcool.net - curity.eu


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Op zaterdag 05 januari 2002 00:39 schreef Reflex het volgende:

[..]

hangt van je distro af
RedHat 7.1

zeroxcool.net - curity.eu


  • jep
  • Registratie: November 2000
  • Laatst online: 15-08 16:52

jep

Waar staan je websites? Stel ze staan in /var/www/, zet dan het volgende in je config:
code:
1
2
3
4
5
6
7
8
<Directory "/www/www">
    Options ExecCGI FollowSymLinks Includes     
    IncludesNOEXEC
    Indexes MultiViews SymLinksIfOwnerMatch
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

/edit waar je cgi files (bij) staan dus ;)

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
laat maar... moest 1 regel zijn...

zeroxcool.net - curity.eu


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Werkt nog niet, ik ga slapen :z, tot morgen =]

zeroxcool.net - curity.eu


Verwijderd

Het lijkt erop of je je Apache niet goed geconfigureerd hebt. Heb je wel aangegeven dat er in die directory CGI scripts (en dus Perl scripts) staan? Zodat ie ze ook daadwerkelijk uitvoert? Het ziet ernaar uit dat ie het gewoon als HTML parsed.

Als ik jouw was zou ik de Apache conf even doorlopen. Voorbeeldje van mij (wel virtualhost, maar moet niet uitmaken en ik heb wat dingen tussen * * staan die niemand wat aangaan):
code:
1
2
3
4
5
6
7
8
9
10
11
12
<VirtualHost *ip*>
    ServerAdmin email@domein.nl
    DocumentRoot /www/sub/domein/html
    ServerName sub.domein.nl
    ScriptAlias /cgi-bin/ "/www/sub/domein/cgi-bin/"
    <Directory "/www/sub/domein/cgi-bin">
      AllowOverride None
      Options None
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>

Zoiets werkt bij mij perfect, kan je ook globaal definieeren maar dat heb ik niet gedaan i.v.m. meerdere pages.

Suc6!

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Weet je wat, ik ga gewoon een keer Debian proberen. Of zal ik als RedHat user zijnde nog even wachten?

Ik zet nog wel even m'n HTTPD.conf online, het maffe is dat hij nu niets meer vindt in http://10.0.0.100/cgi-bin .

http://www.gameone.nl/remote/httpd.conf

zeroxcool.net - curity.eu


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Op zaterdag 05 januari 2002 00:53 schreef thaduck het volgende:
Het lijkt erop of je je Apache niet goed geconfigureerd hebt. Heb je wel aangegeven dat er in die directory CGI scripts (en dus Perl scripts) staan? Zodat ie ze ook daadwerkelijk uitvoert? Het ziet ernaar uit dat ie het gewoon als HTML parsed.

Als ik jouw was zou ik de Apache conf even doorlopen. Voorbeeldje van mij (wel virtualhost, maar moet niet uitmaken en ik heb wat dingen tussen * * staan die niemand wat aangaan):
code:
1
2
3
4
5
6
7
8
9
10
11
12
<VirtualHost *ip*>
    ServerAdmin email@domein.nl
    DocumentRoot /www/sub/domein/html
    ServerName sub.domein.nl
    ScriptAlias /cgi-bin/ "/www/sub/domein/cgi-bin/"
    <Directory "/www/sub/domein/cgi-bin">
      AllowOverride None
      Options None
      Order allow,deny
      Allow from all
    </Directory>
</VirtualHost>

Zoiets werkt bij mij perfect, kan je ook globaal definieeren maar dat heb ik niet gedaan i.v.m. meerdere pages.

Suc6!
Wat dus het mafste is dat een script wat ik er al op had staan, #!/bin/sh was het, gewoon werkte, en nu dus ook niet meer. Help

zeroxcool.net - curity.eu


  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 09-07 21:48
Het .pl scripte wordt niet eens naar de perl parser gestuurd, het wordt meteen door apache als html uitgespuugd.

Heb je suexec meegecompiled? Dit zorgt ervoor dat je het door bv perl (#!/usr/bin/perl) of python kan laten interpreteren.
Zonder suexec geen cgi.

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Weet je wat hier precies de .rpm naam van is?

zeroxcool.net - curity.eu


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Na een beetje zoeken ben ik erachter gekomen dat het gewoon bij Apache zelf zit (rpm), en die werkt perfect. Iemand ideeen?

zeroxcool.net - curity.eu


  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 14-08 15:59
Het werkt nu, na een beetje gestuntel in httpd.conf, allemaal nog bedankt voor je reacties...

zeroxcool.net - curity.eu

Pagina: 1