Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Apache e dbi-perl

  1. #1

    Apache e dbi-perl

    Ho un problema con il modulo DBI. Il server Apache mi restituisce errore 500, server misconfiguration. Il perl funziona correttamente, il database (MySQL) anche. Però non riesco a ottenere le righe della mia piccola tabella di testing. Eppure la tabella è corretta e i parametri passati anche. In Apache ho configurato come spiegato sui vari tutorial trovati su cpan, ma non ho ottenuto successo. Il dbi è installato bene, perchè se uso il perl dalla shell di linux, mi ritorna le righe della tabella che cerco. MI sapete aiutare?
    Grazie
    vuoi giocare al fantacalcio gratis, solo per divertirti con tante altre persone? clicca su http://www.fantamagic.it

  2. #2
    Ciao,

    posta il codice che usi per fare le prove.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  3. #3
    questo è il semplicissimo codice che utilizzo. Al posto delle variabili avrei potuto utilizzare i placeholders, ma ho alcuni problemi a utilizzarli in sostituzione al nome della tabella.

    #!/usr/bin/perl

    use DBI;

    $dbname = "test";
    $user = "root";
    $pass = "";
    $table = "test";

    my $db = DBI->connect("DBI:mysql:$dbname", $user, $pass);

    $DBI::result = $db->prepare("select * from $table");
    $DBI::result->execute();

    while(@row = $DBI::result->fetchrow_array) {
    print @row, "\n";
    }

    $db->disconnect;
    con
    root@localhost# perl nomefile.pl tutto funziona bene.
    ciao e grazie!
    vuoi giocare al fantacalcio gratis, solo per divertirti con tante altre persone? clicca su http://www.fantamagic.it

  4. #4
    codice:
    #!/usr/bin/perl 
    
    use DBI; 
    
    $dbname = "test"; 
    $user = "root"; 
    $pass = ""; 
    $table = "test"; 
    
    my $db = DBI->connect("DBI:mysql:database=$dbname", $user, $pass) || die "Errore di connessione: $DBI::errstr\n"; 
    
    my $result = $db->prepare("select * from $table"); 
    $result->execute() || die "Errore select: $DBI::errstr\n"; 
    
    while(@row = $result->fetchrow_array) { 
    print @row, "\n"; 
    } 
    
    $db->disconnect;
    prova così in modo da vedere il motivo dell'errore.
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

  5. #5
    Purtroppo il risultato non cambia: l'errore di Apache è sempre il 500. Credo che sia un problema di configurazione di Apache, sebbene il perl funzioni a dovere e ripeto il rpogramma fatto girare con
    perl nomeprogramma.pl
    funziona benissimo.
    Magari devo inserire qualche riga nel file di configurazione di apache?
    Aspetto utili consigli
    Grazie!
    vuoi giocare al fantacalcio gratis, solo per divertirti con tante altre persone? clicca su http://www.fantamagic.it

  6. #6
    Per la precisione il file /etc/http/logs/error_log scrive:
    [error] [client 127.0.0.1] malformed header from script. Bad header=Gigi: connessione2.pl
    dove Gigi è il valore del campo nome della tabella selezionata.
    Qualche idea in più?
    vuoi giocare al fantacalcio gratis, solo per divertirti con tante altre persone? clicca su http://www.fantamagic.it

  7. #7
    Ora ho capito !!!

    trattandosi di CGI apache si aspetta che la chiamata restituisca qualcosa, per cui sarà sufficiente aggiungere alla fine dello script:

    print "Content-type: text/html\n\n";
    print "Tutto ok\n";
    Marco Allegretti
    shishii@tiscalinet.it
    Lang: PERL, PHP, SQL.
    Linux user n° 268623 Fedora Core 10, Fedora Core 6, Debian Sarge on mips

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.