Meddelande

Minska
No announcement yet.

Premature end of script headers + error 500

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • Premature end of script headers + error 500

    Får följande fel när jag försöker köra ett cgi script.
    Serverfel!

    Servern råkade ut för ett internt fel och det var inte möjligt att slutföra din begäran.

    Felmeddelande:
    Premature end of script headers: ubr_upload.pl

    Om du tror att detta beror på ett serverfel, vänligen kontakta webbansvarig.
    Error 500
    Vad betyder det, och hur löser jag det?
    Både filen ubr_upload.pl samt katalogen /cgi-bin har rättigheterna 755.
    Det jag inte redan vet vill jag gärna lära mig...

  • #2
    Jag har följande i vhosts.conf:
    <VirtualHost *>
    ServerAdmin info@site.org
    DocumentRoot "/mnt/www2/site"
    ServerName site.org
    ServerAlias www.site.org
    ScriptAlias /cgi-bin/ "/mnt/www2/site/cgi-bin/"

    <Directory "/mnt/www2/site">
    Options Indexes FollowSymLinks +ExecCGI
    AddHandler cgi-script .cgi .pl
    AllowOverride All
    Order allow,deny
    Allow from all
    </Directory>

    </VirtualHost>
    Det jag inte redan vet vill jag gärna lära mig...

    Kommentera


    • #3
      Ingen som vet?
      Det jag inte redan vet vill jag gärna lära mig...

      Kommentera


      • #4
        ge mig de tio första raderan i scriptet.

        samt:
        [kod]
        ls -al /mnt/www2/site/cgi-bin/
        [/kod]

        även:
        [kod]
        which perl
        [/kod]
        Vet du om den kör under suEXEC?
        Isf kan det vara en idé att kolla den loggen också. Typ här:
        /var/log/apache/suexec.log
        Min alldeles egna directory listing.

        Kommentera


        • #5
          ls -al /mnt/www2/site/cgi-bin/
          totalt 44
          drwxr-xr-x 2 root root 4096 2008-12-08 05:56 ./
          drwxr-xr-x 27 root root 4096 2008-12-08 05:39 ../
          -rwxr-xr-x 1 root root 756 2008-12-08 20:36 1.cgi*
          -rwxr-xrwx 1 root root 29004 2008-12-08 05:20 ubr_upload.pl*
          which perl
          /usr/bin/perl
          (Jag bifogade hela cgi-filen som txt.)

          EDIT: suEXEC verkar inte vara installerat.
          Bifogade filer
          Det jag inte redan vet vill jag gärna lära mig...

          Kommentera


          • #6
            Är oerhört tacksam för all hjälp jag kan få.

            Kan "felet" bero på att mina hemsidor finns på en annan hdd som är mountad under /mnt på min master?
            (Både mysql, apache, php och annat finns installerat på min "master".)

            Sorry för alla dumma frågor...
            Det jag inte redan vet vill jag gärna lära mig...

            Kommentera


            • #7
              vad säger den om du kör filen från command line?
              Min alldeles egna directory listing.

              Kommentera


              • #8
                Gissar på att perlskriptet körs som annan användare.
                Testa sätt 777 på katalogen.

                Kommentera


                • #9
                  colione skrev:
                  vad säger den om du kör filen från command line?
                  Hur menar du då?

                  nohope skrev:
                  Gissar på att perlskriptet körs som annan användare.
                  Testa sätt 777 på katalogen.
                  Det hjälpte tyvärr inte.
                  Det jag inte redan vet vill jag gärna lära mig...

                  Kommentera


                  • #10
                    *bump*
                    Det jag inte redan vet vill jag gärna lära mig...

                    Kommentera


                    • #11
                      När jag körde scriptet direkt i konsolen, fick jag:
                      [root@localhost ~]# perl -w /mnt/***/cgi-bin/ubr_upload.pl
                      Can't locate CGI/Carp.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.10.0 /i386-linux-thread-multi /usr/lib/perl5/site_perl/5.10.0 /usr/lib/perl5/vendor_p erl/5.10.0/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.10.0 /usr/lib/pe rl5/5.10.0/i386-linux-thread-multi /usr/lib/perl5/5.10.0 /usr/lib/perl5/site_per l /usr/lib/perl5/vendor_perl .) at /mnt/***/cgi-bin/ubr_uploa d.pl line 34.
                      BEGIN failed--compilation aborted at /mnt/***/cgi-bin/ubr_upl oad.pl line 34.
                      Carp.pm finns under /usr/lib/perl5/5.10.0/



                      EDIT: Jag lyckades att fixa "felet" med Carp.pm.
                      Skapade en test (test.pl), och den fungerade bra att köpa direkt i konsolen.
                      [root@localhost ~]# perl -w /mnt/***/cgi-bin/test.pl
                      Content-type: text/html

                      Hello, World.
                      MEN.. jag kan inte köra filen i webbläsaren.
                      [Wed Dec 10 05:35:55 2008] [error] [client xx.xxx.xxx.xxx] (13)Permission denied: exec of '/mnt/***/cgi-bin/test.pl' failed
                      [Wed Dec 10 05:35:55 2008] [error] [client xx.xxx.xxx.xxx] Premature end of script headers: test.pl
                      Last edited by Guldstrand; 2008-12-10, 05:44.
                      Det jag inte redan vet vill jag gärna lära mig...

                      Kommentera


                      • #12
                        Skickar du korrekt header och skickar du den först innan annat skickas till webbläsare? Har du typ 755 rättigheter på filen? Är sökvägen till perl korrekt?

                        Content-type: text/plain\n\n

                        Kommentera


                        • #13
                          Att köra scripten med perl -w innan förtar lite av poängen. Ta bort båd perl och -w och se vad du får för resultat.

                          Sen kan du ju ven få posta loggen du får på den första filen.
                          Min alldeles egna directory listing.

                          Kommentera


                          • #14
                            Om man kontrollerar ubr_upload.pl filen så nyttjar den sig av Content-type, ex rad 555.

                            Så länge !$print_issued

                            Men när det kommer till sådana här saker så är det ju lite jobbigare.. "Premature end of script headers", kan ju vara typ vad som helst..

                            Och eftersom att han inte kan göra filen i webbläsaren, detta verkar bero på någon behörighetssak. [citat][Wed Dec 10 05:35:55 2008] [error] [client xx.xxx.xxx.xxx] (13)Permission denied: exec of '/mnt/***/cgi-bin/test.pl' failed[/citat]

                            När jag kollade lite högre upp så är ägaren av filerna root: [citat]drwxr-xr-x 2 root root 4096 2008-12-08 05:56 ./
                            drwxr-xr-x 27 root root 4096 2008-12-08 05:39 ../
                            -rwxr-xr-x 1 root root 756 2008-12-08 20:36 1.cgi*
                            -rwxr-xrwx 1 root root 29004 2008-12-08 05:20 ubr_upload.pl*[/citat]Det hör väl inte till det vanliga! Om man skall köra filerna genom en webbserver.. får servern exekvera en server-side fil som har rooträttigheter så kan mycket lull lull ske om fel person leker på..
                            För lata svin är marken alltid frusen..

                            Don't try to fix your linux system without knowing where your towel is. It is useful for three things
                            1. Muffling screams of frustration
                            2. Covering evidence of your ineptitude
                            3. Crying into.


                            Ubuntu forums
                            Umbraco é nice.
                            Jag försöker åtminstone..

                            Ironi är intelligenta människors möjlighet att göra en viktig poäng samtidigt som man har lite kul.

                            Kommentera


                            • #15
                              Jag misstänker också att det är något knas med rättigheterna, men hur löser jag det?

                              colione skrev:
                              Att köra scripten med perl -w innan förtar lite av poängen. Ta bort båd perl och -w och se vad du får för resultat.
                              [root@localhost ~]# /mnt/***/cgi-bin/
                              -bash: /mnt/***/cgi-bin/: is a directory
                              Det jag inte redan vet vill jag gärna lära mig...

                              Kommentera

                              Working...
                              X