Font

CGI::Session per FTP auf fremdem Server installieren

[thread]13912[/thread]


hide all open all
  • close +39 replies
  • close close guest sman  2009-08-23 22:31 #124614 #124614
     
    Hallo,
    ich habe ein Strato Premium Paket mit allerhand Perl- und PHP-Modulen. Für meine Zwecke brauche ich das Session-Modul, PHP hat es, Perl nicht. Da das Modul installiert werden muss (kompiliert), nutzt es nichts es einfach dateiweise per FTP in den cgi-bin Ordner zu kopieren. Das führt zu massig Fehlermeldungen beim Ausführen.

    Mein Ansatz war also, das aktuelle CPAN Session Modul auf meinem Windows2000 zu installieren, damit ist es kompiliert und ich kann den ganzen Session-Ordner samt Modul per FTP nach /cgi-bin/CGI/ kopieren.

    Das erste Test-script /cgi-bin/test.cgi ist vielversprechend
    Code (perl):
    1
    2
    3
    4
    5
    6
    
    #!/usr/bin/perl
    use CGI::Carp qw(fatalsToBrowser);
    use CGI::Session;
    $session = new CGI::Session();
    #
    print "content-type: text/html\n\n1";


    Gibt ohne Probleme eine 1 aus.
    Doch schon mit der folgenden zusätzlichen Zeile (an die Stelle wo # steht) verursacht das Problem
    Code (perl):
    $CGISESSID = $session->id();


    führt zu folgendem Fehler
    Quote
    Can't call method "id" on an undefined value at /home/strato/http/premium/web8/43/39/534539/htdocs/cgi-bin/test.cgi line 5.


    Weiß jemand Rat?

    Für den Fall, dass ihm die Windows-Kompilierung nicht gefällt, wäre ich ratlos. Der Strato-Server lässt sich wie folgt identifizieren:
    Quote
    Perl-Var $^V => This is perl, version 5.004_05 built for sun4-solaris
    SERVER_SOFTWARE => Apache/2.2.11 (Unix) mod_fastcgi/2.4.6
    INC-Pfade => /opt/KQperl/lib/sun4-solaris/5.00405, /opt/KQperl/lib, /opt/KQperl/lib/site_perl/sun4-solaris, /opt/KQperl/lib/site_perl, .


    Vielleicht kann von euch jemand das Modul auf einem ähnlichen Server kompilieren und mir schicken?
    • close +4 replies
    • close close murphy  2009-08-23 23:58 #124615 #124615
      User since
      2004-07-19
      1306 articles
      [Homepage]

      user image  
      Zunächst einmal sei angemerkt, dass jedes saubere Perlprogramm die Pragmas strict und warnings verwenden sollte (siehe auch Wiki:UseStrict), besonders falls sich irgendwer dafür interessiert, ob das Programm auch funktioniert, und falls nicht, warum es fehlschlägt ;-)

      Da Perl anscheinend das Modul korrekt lädt und nicht dabei schon eine Fehlermeldung produziert, hat die Installation vermutlich funktioniert. In Anbetracht der Tatsache, dass CPAN:CGI::Session ein pures Perlmodul ohne XS-Anteil ist, wäre es auch ungewöhnlich, wenn man mehr unternehmen müsste, als den Baum mit .pm-Dateien in einen passenden Bibliotheksordner zu kopieren, damit es funktioniert.

      Die Fehlermeldung, die Du siehst, bedeutet sehr wahrscheinlich einfach, dass der Konstruktoraufruf CGI::Session->new() einen undefinierten Wert zurückgeliefert hat. Du solltest also, so wie es in der Dokumentation von CPAN:CGI::Session beschrieben ist, überprüfen, was CGI::Session->errstr() zurückgibt, um herauszufinden, wo das Problem liegt.
      When C++ is your hammer, every problem looks like your thumb.
      • close +3 replies
      • close close guest sman  2009-08-24 04:49 #124619 #124619
         
        Hallo murphy,
        zunächst danke für den guten Tipp!
        Ergänze also die Zeile zu
        Code:
        $session = new CGI::Session() or die CGI::Session->errstr();


        Die Fehlermeldung ist jetzt folgende
        Quote
        new(): failed: couldn't load CGI::Session::Driver::file: [Mon Aug 24 04:43:54 2009] test.cgi: [Mon Aug 24 04:43:54 2009] test_session.cgi: Can't continue after import errors at CGI/Session/Driver/file.pm line 9 [Mon Aug 24 04:43:54 2009] test_session.cgi: [Mon Aug 24 04:43:54 2009] test_session.cgi: BEGIN failed--compilation aborted at CGI/Session/Driver/file.pm line 9.


        Anscheinend gibt es Fehler bei file.pm. Kann es was damit zutun haben, dass man als normaler Kunde auf dem Strato-Server nicht genug Schreibrechte in root, /Temp/, usw. hat? Kann ich das irgendwie umgehen?
        • close +2 replies
        • close close renee  2009-08-24 10:15 #124627 #124627
          User since
          2003-08-04
          13296 articles
          [Homepage]
          [default_avatar]  
          Guest sman

          Die Fehlermeldung ist jetzt folgende
          Quote
          new(): failed: couldn't load CGI::Session::Driver::file: [Mon Aug 24 04:43:54 2009] test.cgi: [Mon Aug 24 04:43:54 2009] test_session.cgi: Can't continue after import errors at CGI/Session/Driver/file.pm line 9 [Mon Aug 24 04:43:54 2009] test_session.cgi: [Mon Aug 24 04:43:54 2009] test_session.cgi: BEGIN failed--compilation aborted at CGI/Session/Driver/file.pm line 9.


          Anscheinend gibt es Fehler bei file.pm. Kann es was damit zutun haben, dass man als normaler Kunde auf dem Strato-Server nicht genug Schreibrechte in root, /Temp/, usw. hat? Kann ich das irgendwie umgehen?


          Du kannst ein eigenes Verzeichnis angeben:

          Code (perl):
          $s = CGI::Session->new("driver:file", $sid, {Directory=>'/irgendein/verzeichnis/auf/das/du/zugriff/hast/'});
          • close guest sman  2009-08-24 12:19 #124635 #124635
             
            Das führt bei leider wieder auf den gleichen Fehler, "new" scheint nicht allgemein zu funktionieren.
    • close +4 replies
    • close close pq  2009-08-24 00:03 #124616 #124616
      User since
      2003-08-04
      8330 articles
      [Homepage]

      user image  
      Guest sman
      Da das Modul installiert werden muss (kompiliert),

      da muss gar nichts kompiliert werden, das ist doch reines perl und verwendet auch keinen AutoLoader.
      in Wiki:ModuleWieInstalliereIchEinModul steht eigentlich drin, was man dazu wissen muss.
      Quote
      nutzt es nichts es einfach dateiweise per FTP in den cgi-bin Ordner zu kopieren. Das führt zu massig Fehlermeldungen beim Ausführen.

      sind diese fehlermeldungen geheim oder magst du sie uns mitteilen?
      ich bin wie gesagt der meinung, bei CGI::Session muss nichts kompiliert werden, von daher geben die fehlermeldungen vielleicht auskunft darüber, ob was beim kopieren falsch gemacht wurde.
      Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
      lesen: Wiki:Wie frage ich & Perldoc:perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
      • close +3 replies
      • close close guest sman  2009-08-24 04:53 #124620 #124620
         
        Hi pq,
        beim Kopieren kann man ja nicht viel falsch machen. Ich habe bereits ausprobiert das unkompilierte Modul zu kopieren. Ein bloßes Aufrufen per use CGI::Session; führt dann zu allerhand compilation errors in allen Möglichen files des Moduls, die ich jetzt nicht mehr alle auflisten kann. Hilfreich sind sie jedenfalls nicht und weisen allesamt auf ein grundsätzliches Problem hin.
        Das Kopieren des kompilierten Moduls jedoch kann schonmal mit use CGI::Session etwas anfangen und scheint prinzipiell die richtige Variante zu sein, eben wegen der sinnvolleren Fehlermeldungen.
        • close +2 replies
        • close close renee  2009-08-24 07:23 #124621 #124621
          User since
          2003-08-04
          13296 articles
          [Homepage]
          [default_avatar]  
          Da es ein "PurePerl"-Modul ist, würde mich interessieren was Du als "kompiliertes Modul" und was als "unkompiliertes Modul" bezeichnest.

          Hast Du das komplette CGI/Session-Verzeichnis kopiert?
          • close guest sman  2009-08-24 09:08 #124623 #124623
             
            Siehe erster Beitrag:
            Quote
            Mein Ansatz war also, das aktuelle CPAN Session Modul auf meinem Windows2000 zu installieren, damit ist es kompiliert und ich kann den ganzen Session-Ordner samt Modul per FTP nach /cgi-bin/CGI/ kopieren.


            Ich würde mich sehr freuen wenn es PurePerl wäre und man es einfach nur reinkopieren kann. Mit allen anderen Modulen mache ich es auch bisher erfolgreich so. Nur CGI::Session und GD weigern sich und produzieren in meinen scripts compilation errors. Ich habe auch an einigen Stellen gelesen, dass man diese beiden Module "installieren" muss. Da ich das natürlich als Stratokunde auf dem dortigen Server nicht kann, brachte ich das in diesem Thread geschilderte Dilemma hervor.
            Wie gesagt viel mir ein es doch bei mir zu installieren und dann erst zu kopieren. Und siehe da, es geht etwas (noch nicht alles). Es muss also einen unterschied geben zwischen der installierten Session.pm und der puren Session.pm
    • close +27 replies
    • close close MartinR  2009-08-24 16:25 #124659 #124659
      User since
      2004-06-17
      279 articles
      [Homepage]
      [default_avatar]  
      ... war bei mir ähnlich (bei 1&1).

      Ich musste dann nur noch das Verzeichnis /auto/CGI/Session mit den darin enthaltenen *.al bzw *.ix Dateien einkopieren. Dann lief es.

      Und Du musst natürlich in Deinem Skript noch angeben, dass in einem zusätzlichen Verzeichnis nach Modulen gesucht werden muss:

      use lib '/dein/pfad/zum/modul/';
      Last edited: 2009-08-24 16:28:35 +02:00
      • close pq  2009-08-24 16:29 #124660 #124660
        User since
        2003-08-04
        8330 articles
        [Homepage]

        user image  
        ah, es verwendet doch AutoLoader. hab ich mich verguckt.
        Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
        lesen: Wiki:Wie frage ich & Perldoc:perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
      • close +25 replies
      • close close guest sman  2009-08-24 17:24 #124666 #124666
         
        Hey Martin,
        ich bin jetzt sehr aufgeregt weil du so hoffnungsvoll überzeugt schreibst :)

        Leider kann ich in meiner Perl Distribution in "/auto/CGI/Session/" nichts finden außer einer ".packlist"-Datei. Nach etwas googeln fand ich die Dateien hier. den auto-Ordner habe ich dann normal in /cgi-bin/ auf dem Server kopiert.
        Das Script lässt sich davon aber nicht im geringsten beeindrucken :( Vielleicht sind die Dateien falsch oder muss ich ihm beibringen dass er nach ihnen suchen soll? (Weiß AutoLoader (ist bei Strato installiert) dass es im Ordner "auto" suchen soll??)

        Mein Verzeichnis-Baum ist folgender:
        Code:
        1
        2
        3
        4
        5
        6
        /
        /otherwwwfiles
        /cgi-bin/test.cgi
        /cgi-bin/CGI/Session/Session.pm
        /cgi-bin/CGI/Session/Session/other-dirs-and-files
        /cgi-bin/auto/CGI/Session/some-alien-al-and-ix-files

        Ich gehe davon aus dass Perl in "." nach den Modulen sucht, was ohne zusätzlichen "use lib"-Befehl zumindest für CGI::Session funktioniert. Ist das nicht genug für /auto/CGI/Session?
        • close +19 replies
        • close close pq  2009-08-24 17:30 #124667 #124667
          User since
          2003-08-04
          8330 articles
          [Homepage]

          user image  
          darf ich mal ganz vorsichtig fragen, welche version von CGI::Session du hast? seit der version 4 wird kein AutoLoader mehr verwendet. und das war im februar 2005.
          d.h. falls irgendwelche .al dateien verlangt werden, hast du eine sehr veraltete version.
          du weisst nicht, wie du die version rausfindest? grep VERSION Session.pm

          edit: und im übrigen ist es gar keine gute idee, irgendwelche dateien, die man so im netz findet, manuell in den auto-ordner zu legen. evtl. passen ja die versionen gar nicht zusammen.
          besorg dir erstmal ne aktuelle version.
          oder nutz cgipan, um CGI::Session direkt auf dem server zu installieren. ist vielleicht das einfachste.
          manuell dateien von verschiedenen paketversionen wild rumzukopieren ist jedenfalls nicht angebracht, zumal dann auch keiner mehr irgendwelche fehler nachvollziehen kann.
          Last edited: 2009-08-24 17:34:08 +02:00
          Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
          lesen: Wiki:Wie frage ich & Perldoc:perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
          • close +18 replies
          • close close guest sman  2009-08-24 19:42 #124683 #124683
             
            Ich habe das aktuelle CGI::Session Modul von CPAN benutzt, das dürfte Version 4.20 sein.

            Dass man keine Dateien aus dem Netz nimmt, weis ich, aber ich wollte zumindest alles ausprobiert haben, da der Tipp irgendwie hoffnungsvoll klang. Habe die Dateien nun wieder gelöscht.

            CGIPAN:
            danke für den Hinweis, das kannte ich noch nicht. habe es gleich abgelegt unter
            Code:
            1
            2
            3
            /cgi-bin/cgipan/cgipan.cgi
            /cgi-bin/cgipan/build
            /cgi-bin/cgipan/mylib

            Zuerst trat nun im Browser ein "Insecure dependency" Software Error auf bzgl chdir im -T Switch mode. Das hab ich wegbekommen indem ich die Taint-Option -T im Aufruf von Perl (erste Zeile) entfernt habe. Dann kam der Fehler "Cant use an undefined value as a Symbol reference", behoben durch auskommentieren von "use strict;" und die Filehandler "my $dir" durch schlicht "DIR" ersetzen. Seit dem funktioniert das Script.
            Ich kopiere also das Session-Modul (gepackt) von CPAN in den build-Ordner und drücke auf der cgipan-Seite auf Start, unpack.

            Der erste Punkt danach enthält einen Link zum folgenden Fehler.
            Code:
            1
            2
            3
            /usr/bin/perl5 -I/home/strato/www/me/www.meinedomain.de/htdocs/cgi-bin/cgipan/mylib Makefile.PL PREFIX=/home/strato/www/me/www.meinedomain.de/htdocs/cgi-bin/cgipan/mylib LIB=/home/strato/www/me/www.meinedomain.de/htdocs/cgi-bin/cgipan/mylib 2>&1:
            Not enough arguments for mkdir at Makefile.PL line 145, near "))"
            BEGIN not safe after errors--compilation aborted at Makefile.PL line 150.


            Die anderen drei Punkte "make", "make test" und "make install" führen alle zu ähnlichen Fehlern:
            Code:
            1
            2
            /usr/bin/make install 2>&1:
            sh: /usr/bin/make: not found


            Wo allerdings "make" bei Strato liegt, weiß ich nicht, versuche es aber noch herauszubekommen (via tech support, vielleicht wissen die ja wenigstens das...)
            Oder habe ich bis hierhin schon irgendetwas falsch gemacht?
            • close +13 replies
            • close close pq  2009-08-24 19:48 #124685 #124685
              User since
              2003-08-04
              8330 articles
              [Homepage]

              user image  
              den fehler bei Makefile.PL kann ich nicht nachvollziehen. wenn du aber kein make zur verfügung hast, wirds eh schwer :-/
              Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
              lesen: Wiki:Wie frage ich & Perldoc:perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
              • close topeg  2009-08-24 20:03 #124690 #124690
                User since
                2006-07-10
                1293 articles

                user image  
                Gerade nachgeschaut. Ich habe kein Zugriff auf "make".
              • close +11 replies
              • close close guest sman  2009-08-24 22:02 #124696 #124696
                 
                Fehler mit Makefile.PL behoben!
                Ich habe der Funktion mkdir in Makefile.PL noch einen zweiten Parameter übergeben
                Code (perl):
                mkdir(File::Spec->catfile('t', 'sessiondata'),0666);
                Das hat er gebraucht und jetzt funktioniert Punkt 1, er gibt nun aus:

                Code:
                1
                2
                3
                4
                5
                6
                7
                8
                9
                10
                11
                12
                13
                14
                15
                16
                17
                18
                19
                20
                21
                22
                23
                24
                25
                26
                27
                28
                29
                30
                31
                32
                33
                34
                35
                36
                37
                38
                39
                40
                41
                42
                43
                44
                45
                46
                47
                48
                49
                50
                /usr/bin/perl5 -I/home/strato/www/me/www.meinedomain.de/htdocs/cgi-bin/cgipan/mylib Makefile.PL PREFIX=/home/strato/www/me/www.meinedomain.de/htdocs/cgi-bin/cgipan/mylib LIB=/home/strato/www/me/www.meinedomain.de/htdocs/cgi-bin/cgipan/mylib 2>&1:
                Warning: prerequisite CGI 3.26 not found at (eval 2) line 222.
                Warning: prerequisite Data::Dumper not found at (eval 2) line 222.
                Warning: prerequisite Digest::MD5 not found at (eval 2) line 222.
                Warning: prerequisite Scalar::Util not found at (eval 2) line 222.
                Warning: prerequisite Test::More not found at (eval 2) line 222.
                ----------------------------------------
                #### WARNING ####

                If you are using custom CGI::Session drivers they may not be compatible
                with the current driver specifications. You will need to make some changes
                to your drivers' code before proceeding with this installation to make it
                compatible with CGI::Session 4.x.

                Fortunately, current driver specifications are a lot easier to adapt to.
                Should you have any assistance re-coding your current drivers, please let
                me know.

                Current driver specs are documented in CGI/Session/Driver.pm

                #### TESTING #####

                You are encouraged to run tests for the backend you will be using. The
                database backends that need a customized connection string won't run by
                default. To run them, some environment variables must be set.

                The simplest method is to use the standard "DBI_DSN/DBI_USER/DBI_PASS"
                environment variables.

                Otherwise, you can set these variables:
                For PostgreSQL:
                CGISESS_PG_DSN
                CGISESS_PG_USER
                CGISESS_PG_PASS

                For MySQL:
                CGISESS_MYSQL_DSN
                CGISESS_MYSQL_USER
                CGISESS_MYSQL_PASS
                CGISESS_MYSQL_SOCKET

                ----------------------------------------
                Warning: Module::Metadata::Changes's ini.report.pl failed to generate or update Changelog.ini.
                ----------------------------------------
                'ABSTRACT' is not a known MakeMaker parameter name.
                'AUTHOR' is not a known MakeMaker parameter name.
                'EXTRA_META' is not a known MakeMaker parameter name.
                Writing Makefile for CGI::Session

                I didn't find CGI (version 3.26). You may find it here: CGI


                Ist das jetzt gut oder schlecht? Besonders letzter Punkt irretiert mich, bei Strato habe ich Standardmäßig das CGI-Modul Version 2.42, heißt das er kann nicht richtig weiterarbeiten bei der alten version? Kann ich die neue irgendwie nachträglich einfügen bzw in /cgi-bin/ kopieren? Reicht dann ein use lib ... -Befehl um die neue CGi der älteren vorzuziehen?
                • close +10 replies
                • close close pq  2009-08-24 22:06 #124698 #124698
                  User since
                  2003-08-04
                  8330 articles
                  [Homepage]

                  user image  
                  ach du meine güte, was ist das denn für eine perl-version?
                  das erklärt einiges. CGI 2.42 ist von ca. 1998, Data::Dumper ist schon seit der version 5.005 im core mit dabei.
                  das kann so nicht funktionieren.
                  lass dir das perl updaten oder wechsle den hoster...

                  edit: ausserdem funktioniert das mkdir nur mit 2 argumenten, und das open mit 3 argumenten bzw. lexikalischem filehandle funktionierte auch nicht. es spricht sehr viel dafür, dass du es da mit 5.00405 zu tun hast. das ist steinzeit-perl, wenn strato sowas heute noch anbietet, weiss ich, warum ich die nicht mag...
                  Last edited: 2009-08-24 22:15:25 +02:00
                  Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
                  lesen: Wiki:Wie frage ich & Perldoc:perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
                  • close +3 replies
                  • close close pq  2009-08-24 22:24 #124699 #124699
                    User since
                    2003-08-04
                    8330 articles
                    [Homepage]

                    user image  
                    ach, die version schriebst du ja oben schon, das hab ich völlig überlesen.
                    damit wirst du es sehr schwer haben, irgendwas modernes zu installieren, viele module verlangen heutzutage mindestens 5.6.0
                    also schmeiss dir am besten ein perl 5.10.1 drauf, dann bist du ein paar sorgen los.
                    Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
                    lesen: Wiki:Wie frage ich & Perldoc:perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
                    • close +2 replies
                    • close close guest sman  2009-08-24 22:43 #124701 #124701
                       
                      Ich gehe doch richtig in der Annahme, dass ich mir Perl nicht einfach "raufschmeißen" kann, oder? Also entweder Strato überreden das zu tun, oder Provider wechseln, oder auf neuzeitliches Perl und Sessions verzichten.
                      • close pq  2009-08-24 22:52 #124702 #124702
                        User since
                        2003-08-04
                        8330 articles
                        [Homepage]

                        user image  
                        wenns kein root-server ist, dann nicht, nein :-/
                        aber es gibt ja heute einige gute angebote im bereich root- und virtual server.
                        das forum läuft bei host europe auf nem vserver, und abgesehen von ein paar ärgerlichen netz-ausfällen läuft es jetzt seit einiger zeit wieder sehr zufriedenstellend.
                        Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
                        lesen: Wiki:Wie frage ich & Perldoc:perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
                  • close guest sman  2009-08-24 22:28 #124700 #124700
                     
                    Vielen Dank für die aufschlussreichen Worte!
                    ich hatte keine Ahnung wie der aktuelle Stand der Versionen ist, aber sehe nun ein dass es unzumutbar ist. Für eine Premium Version. Der Tech Support wirken morgen was von mir zu hören kriegen!

                    (Zur Rechtfertigung, mein Vater hat das Paket vor mehr als 10 Jahren gekauft und nutzt es für seine Firma. Ich bin dort kostenfrei Untermieter und arbeite darauf. Erst recht was die neuzeitliche Entwicklung in Sachen Webhosting betrifft würde ich, wenn ich es mir aussuchen könnte, heute Strato nicht wählen, wegen dieser und vieler anderer technischer Unproffessionalitäten die sich in den Jahren ergeben haben)
                  • close +5 replies
                  • close close topeg  2009-08-24 22:58 #124704 #124704
                    User since
                    2006-07-10
                    1293 articles

                    user image  
                    Ich habe hier:
                    wiki: Wie finde ich alle installierten Module?
                    Ein Script rein gestellt, mit dem sich nicht nur die Installierten Module finden lassen, sondern auch dessen Versionen.

                    Selbst mal bei Strato getestet:
                    perl-Version von "$]" ist '5.008005'
                    Die perl-Version von "perl --version" ist 'v5.8.5 built for sun4-solaris'

                    Scheint so als würde Apache ein anderes perl (fastcgi?) nutzen als sonst installiert ist.
                    Edit: Unsinn geschrieben, ist schon zu spät. Sollte besser hinschauen.
                    Last edited: 2009-08-24 23:27:44 +02:00
                    • close +4 replies
                    • close close guest sman  2009-08-24 23:23 #124713 #124713
                       
                      Mit welchem Paket testest du das?
                      Bei mir bekomme ich in Anlehnung an dein Script mit
                      Code (perl):
                      1
                      2
                      3
                      4
                      
                      #!/usr/bin/perl
                      print "content-type:text/plain\n\n";
                      print "Perl Version: $]\n";
                      print `perl --version`;

                      folgende Ausgabe:

                      Code:
                      1
                      2
                      3
                      4
                      Perl Version: 5.00405
                      This is perl, version 5.004_05 built for sun4-solaris
                      Copyright 1987-1998, Larry Wall
                      ...

                      • close +3 replies
                      • close close topeg  2009-08-24 23:43 #124717 #124717
                        User since
                        2006-07-10
                        1293 articles

                        user image  
                        Ich habe vor 9 oder 10 Jahren (gerade nachgeschaut 26.5.2000), die Visitenkarte angeschafft. Mittlerweile bin ich beim "PowerWeb Paket-A".
                        (Denke daran zu wechseln, wird doch recht teuer. Für fast das selbe Geld bekomme ich einen Vserver.)

                        Das Script im Wiki kann auch die Versionen von den Paketen ausgeben.
                        (Mal vor Jahren geschrieben weil ich Problem mit einem Webhoster hatte, nicht Strato. Da konnte ich ihm die Versionen so richtig schön unter die Nase reiben ;) )
                        • close +2 replies
                        • close close guest sman  2009-08-24 23:48 #124718 #124718
                           
                          Ich bin nur verblüfft dass du mit PowerWeb bessere Perl-Versionen hast als ich mit Premium Paket. Und warum sind die Versionen bei dir so unterschiedlich? Oder ist 5.008005==5.8.5 ?
                          • close topeg  2009-08-24 23:55 #124719 #124719
                            User since
                            2006-07-10
                            1293 articles

                            user image  
                            Sind die gleichen Versionen nur die Schreibweise ist etwas anders. Das eine ist die "Maschinen"-Variante (mit fester Länge) das andre die menschenlesbare Ausgabe.
                            Ich bin gerade selber darüber gestolpert.

                            Edit:
                            Wegen der Unterschieden:
                            Ich denke, da ich immer weiter hochgestuft wurde, bin ich von Server zu Server gewandert und habe immer die neueste Umgebung bekommen. Dein Vater dagegen ist auf dem einen Server geblieben (never change a running system).
                            Solange sich niemand beklagt...
                            Last edited: 2009-08-24 23:59:12 +02:00
            • close +4 replies
            • close close Linuxer  2009-08-24 19:53 #124687 #124687
              User since
              2006-01-27
              1241 articles

              user image  
              Guest sman
              Dann kam der Fehler "Cant use an undefined value as a Symbol reference", behoben durch auskommentieren von "use strict;"

              Ich würd da nicht von "beheben" schreiben, eher von "ich hab's auskommentiert und gebetet, dass es trotzdem funktioniert"...

              Nur weil Du "use strict;" auskommentierst, ist ein "undefined value" nicht plötzlich definiert... Am Funktionieren kann das IMHO nichts ändern...


              Last edited: 2009-08-24 20:14:33 +02:00
              meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
              Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
              • close +3 replies
              • close close guest sman  2009-08-24 20:44 #124692 #124692
                 
                Keine Sorge, dabei ging es nur darum, dass im Script immer
                Code (perl):
                opendir my $dir, "."; ... readdir $dir; ... close $dir;

                geschrieben wurde. Das hab ich vorher auch noich nicht gesehen, Erstezn durch einen simplen Handler
                Code (perl):
                opendir DIR, "."; ... readdir DIR; ... close DIR;

                löst die Sache und sollte nichts an der Funktionalität ändern. $dir wird sonst nicht verwendet im Script.
                • close Linuxer  2009-08-24 21:05 #124693 #124693
                  User since
                  2006-01-27
                  1241 articles

                  user image  
                  Der Code ist eigentlich vollkommen OK und sollte so, wie er original dort stand, auch arbeiten.

                  Siehe auch Was ist ein lexikalischer Filehandle?.

                  Mein Einwand bezog sich übrigens auf das Auskommentieren des "use strict;", was IMHO (fast [1]) immer eine schlechte Idee ist, egal um was es geht.


                  [1]Ausnahmen mag es geben, fallen mir aber aktuell keine ein.

                  meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
                  Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
                • close topeg  2009-08-24 21:08 #124694 #124694
                  User since
                  2006-07-10
                  1293 articles

                  user image  
                  Warum daraus keine Funktion machen?

                  Code (perl):
                  1
                  2
                  3
                  4
                  5
                  6
                  7
                  8
                  9
                  10
                  11
                  
                  sub read_cwdir
                  {
                    if(opendir(my $dir, "."))
                    {
                      my @list=readdir $dir;
                      close $dir;
                      return wantarray?@list:shift(@list);
                    }
                    else
                    { return wantarray?():undef; }
                  }


                  Dann kann man später mal einen zentralen ErrorHandler einbauen.
        • close +5 replies
        • close close Linuxer  2009-08-24 17:54 #124669 #124669
          User since
          2006-01-27
          1241 articles

          user image  
          Wie wäre es mit einer Anfrage beim Provider, ob die bitte das entsprechende Modul installieren können?
          Ist das so schwer bei Strato?
          "Premium" liesse mich jedenfalls hoffen, dass der Provider bei sowas behilflich sein würde.
          meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
          Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen!
          • close +2 replies
          • close close guest sman  2009-08-24 18:31 #124672 #124672
             
            Ich habe schon sehr oft angefragt, aber sie sperren sich irgendein Modul zu installieren und haben keine Lösung für das Problem.
          • close +2 replies
          • close close topeg  2009-08-24 19:38 #124682 #124682
            User since
            2006-07-10
            1293 articles

            user image  
            Installierte Module von Strato (gerade nochmal mittels 'ExtUtils::Installed' getestet)
            Quote
            Authen::SASL (2.11)
            CGI::FastTemplate (1.09)
            CGI::Screen (0.122)
            Compress::Zlib (1.41)
            Curses (1.06)
            DBD::CSV (0.22)
            DBD::SQLite (1.14)
            DBD::mysql (4.008)
            DBI (1.56)
            Data::Dumper (2.121)
            Data::ShowTable
            Date::Calc (5.4)
            Digest::HMAC (1.01)
            Digest::SHA1 (2.11)
            FCGI (0.67)
            GD (2.41)
            HTML::Parser (3.56)
            HTML::Tagset (3.20)
            HTML::Template (2.9)
            IO-stringy
            IO::Stringy (2.110)
            Image::Size (3.100001)
            LWP (5.814)
            MIME-tools
            MIME::Lite (3.01)
            Mail
            Net::DNS (0.63)
            Net::SMTP_auth (0.08)
            Net::SSLeay
            PDF::API2 (2.015)
            Parse::RecDescent (1.94)
            Perl
            RPC::XML (1.36)
            SHA (2.01)
            SOAP::Lite (0.69)
            SQL::Statement (1.15)
            Spreadsheet::WriteExcel (2.14)
            Sprite (3.21)
            Text::CSV_XS (0.23)
            TimeDate
            URI (1.35)
            XML::CanonicalizeXML (0.03)
            XML::Filter::BufferText (1.01)
            XML::LibXML (1.66)
            XML::LibXML::Common (0.13)
            XML::LibXSLT (1.66)
            XML::NamespaceSupport (1.09)
            XML::Parser (2.34)
            XML::SAX (0.96)
            XML::Simple (2.18)
            XML::Validator::Schema
            XML::XPath (1.13)
            • close guest sman  2009-08-24 19:44 #124684 #124684
               
              Bei meinem Premium-Paket sind es sogar noch eine ganze Menge mehr Module. Aber CGI::Session ist trotzdem nicht dabei.
    • close +3 replies
    • close close topeg  2009-08-24 20:31 #124691 #124691
      User since
      2006-07-10
      1293 articles

      user image  
      Ich habe es gerade selber ausprobiert.

      Mein lokale Installation unter: '/usr/share/perl5/' genommen und in das 'cgi-bin' Verzeichnis des Wabspaces kopiert. Dann dieses TestScript ausgeführt:
      Code (perl):
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      
      #!/usr/bin/perl
      use strict;
      use warnings;
      use CGI;
      use CGI::Carp qw(fatalsToBrowser warningsToBrowser);
      use CGI::Session;
      
      
      my $cgi=CGI->new();
      print $cgi->header();
      warningsToBrowser(1);
      
      my $session = CGI::Session->new();
      my $id=$session->id();
      my $header=$session->header();
      
      print <<EOH;
      <html>
        <head><title>TESTS<title></head>
        <body>
          <h3>OUTPUT:</h3>
          <pre>
      $id
      
      $header
          </pre>
        </body>
      </html>
      EOH

      Funktioniert ohne Probleme.

      Es könnte sein, dass die Installation unter Windows etwas anders abläuft, weshalb das Kopieren nicht klappt. (Rechtevergabe, Pfade, etc.)

      Ich kann dir Mein CGI::Session zuschicken. vielleicht hilft es.
      • close guest sman  2009-08-24 22:03 #124697 #124697
         
        Ja bitte!
        post at mschroen . de
      • close guest sman  2009-08-24 23:01 #124706 #124706
         
        Dein Modul verhält sich leider genauso wie meines, die Fehlermeldung
        Code:
        [Mon Aug 24 22:48:32 2009] Session.pm: [Mon Aug 24 22:48:32 2009] Session.pm: Can't use global $1 in "my" at CGI/Session.pm line 809. BEGIN failed--compilation aborted at /home/strato/http/premium/web8/43/39/534539/htdocs/cgi-bin/test.cgi line 6.

        hatte ich auch schonmal. Die Zeile 809 in Session.pm ist
        Code (perl):
        $dsn->{ $plug } = $mod_name = $1;

        Ich gehe dank pq davon aus, dass die alte Perl-Version der Grund für all das Dilemma ist. Deswegen muss ich an dieser Stelle wohl aufgeben.

        Vielen lieben Dank an euch für die fleißige, kompetente und vor allem zeitnahe Mithilfe!

        PS: Ich habe mir in der Zwischenzeit eine Holzhammer-Lösung gebastelt, da zumindest PHP (ich will garnicht wissen welche Version) mit Sessions umgehen kann. Die Notfalllösung ist erstmal, mit perl ein php-script aufzurufen, dass für mich die Session verwaltet und an perl zurückgibt. Ich vermute aber das das nicht nur sehr hässlich ist, sondern vielleicht auch Sihcerheitslücken hat? Wie auch immer, ich werde alsbald einen Providerwechsel vornehmen... :)

View all threads created 2009-08-23.

[Powered by Battie]
Powered by Perl
Powered by Pound
Some Icons are from
Fugue Icons
Impressum