Newsgroup: it.comp.lang.perl
Titolo: Perl e Apache su Mac

Ciao a tutti
Voglio iniziare ad utilizzare Perl sul web dove trovo informazioni per
configurare Apache x Perl e per definire l'environment x Perl (ammesso
ve ne sia bisogno).
Il tutto su un imac g3 con osx 10.3.9 utilizzo come db postgresql o
mysql.
Grazie
Virgilio

 mysql.
Il lato db te lo devi installare a mano o con qualche pacchetto
pre-fatto, e cosi` pure i driveri DBD::*
Per quanto riguarda Apache e Perl, gia` li hai sul Mac. Puoi usare sia
CGI sia mod_perl. Per la documentazione su come configurare Apache per
CGI, ce l'hai gia` installata: e` il manuale di Apache. Dalle
preferenze di sistema attiva la "condivisione web", poi punto un
browser a:
 
http://localhost/manual/
Per mod_perl, aspetta ;-) e cmq la documentazione la trovi presso:
 
http://perl.apache.org/
-- 
  dakkar
  sono su PerlMonks.org, 
use.perl.org
, PAUSE/CPAN

<dak...@nautilus.blackbit.lan> wrote:

Grazie, provo poi faccio sapere
Ciao, Virgilio

<dak...@nautilus.blackbit.lan> wrote:

Ciao
Perche' il browser lista lo script anziche' eseguirlo?
Lo script ha l'estensione  .pl  ed inizia con  #!/usr/bin/perl
Grazie, Virgilio  

 Grazie, Virgilio  
Leggi la documentazione di Apache, c'e` una FAQ al proposito. In
breve, devi specificare ad Apache quali file sono da eseguire.


 breve, devi specificare ad Apache quali file sono da eseguire.
Scusa se non capisco ancora, ho letto la faq che credo mi interessi ho
fatto la modifica in httpd.conf  (AddHandler cgi-script .pl) adesso non
lista nulla ma:
403 forbidden _You don't have permission to access /~virgilio/prova.pl_
on this server.
Cosa manca ancora? 
Grazie
Virgilio

 Cosa manca ancora? 
Il bit di esecuzione al file?
Qualcosa tipo 'chmod +x 
prova.pl
' ?


 Qualcosa tipo 'chmod +x 
prova.pl
' ?
L'avevo dato chmod 777 
prova.pl
 grazie
ciao Virgilio

     </Directory>
Questo me lo ha suggerito via email salvomic con la differenza che il
path era /private/etc/httpd/users/virgilio.conf e come opzione a
AllowOverride All
Grazie
Aggiungo una domanda: dovendo fare un programma o script non web
che estrae dati da tabelle Oracle per scrivere un file seq anziche'
scrivere un plsql o peggio codice cobol e' possibile utilizzare perl
giusto per tirar su la mano? E se si cosa mi serve?
Ciao
Virgilio

 se devi usare il .htaccess vai pure :)
Grazie
Ciao Virgilio

     </Directory>
Fatto, mi mancavano ExecCGI e AddHandler cgi-script .pl.
Ma non funziona comunque, vedo il sorgente dello script anzichč il
risultato. Cosa posso controllare?
-- 
Ciao Valerio
(Un uomo senza pancia č come un cielo senza stelle)

 - che cominci con lo she-bang: "#!/usr/bin/perl"
C'č
Che faccio!?!?!?
Ho notato una cosa strana, il file di configurazione si chiama
diversamente dal nome dell'utente č un problema?


 2) stai riavviando apache perche' prenda le modifiche?
si dopo ogni modifica (edito il file con pico e lo salvo) poi stop e
avvia "condivisione web" dal pannello condivisione delle preferenze di
sistema.


 "sudo apachectl graceful", fai prima :)
Ottimo, spero di ricordarmelo, si vede che sono un pivellino ;-p
-- 
Ciao Valerio
(Un uomo senza pancia è come un cielo senza stelle)

 </Directory>
Ma ottengo un errore 500 Internal server error.
-- 
Ciao Valerio
(Un uomo senza pancia č come un cielo senza stelle)

 beh, fatti un buovo ".conf" con il nome breve del tuo utente.
Fatto, ed ho lo stesso risultato.
Ho mantenuto maiuscole e minuscole come il nome dell'utente nel path.
Che faccio mi creo un nuovo utente?


 tail -f /var/log/httpd/error_log
"malformed header from script. Bad header=Ciao, Mondo!:
/Users/MonicaValerio/Sites/test/
ciaomondo.pl
"
Ok, sono pirla io, per fare uno script cgi devo inviare l'html
necessario! pirla al cubo e niubbo, come minimo.


 necessario! pirla al cubo e niubbo, come minimo.
Ora una domanda sorge spontanea, come mando l'header corretto?
C'è una stra-faq immagino.
-- 
Ciao Valerio
(Un uomo senza pancia è come un cielo senza stelle)

 print 'Ciao, mondo!';
Ecco copincollato e mi dà lo stesso errore di prima nel log.


 Ecco copincollato e mi dà lo stesso errore di prima nel log.
Rettifico, mi sono incasinato con i file, adesso funziona, grazie.
Ma dove trovo gli header per altri usi? Ad esempio cone html?


 Ma dove trovo gli header per altri usi? Ad esempio cone html?
Per html dovrebbe essere "Content-type: text/html".


 scusa, e` "Content-Type", con la maiuscola :#PP
Non è un errore tuo, avevo cannato io lo script dove l'ho scritto, ma ho
trovato questo esempio:
#!/usr/bin/perl
  use CGI qw/:standard/;
  print header,
        start_html('A Simple Example'),
        h1('A Simple Example'),
        start_form,
        "What's your name? ",textfield('name'),p,
        "What's the combination?", p,
        checkbox_group(-name=>'words',
                       -values=>['eenie','meenie','minie','moe'],
                       -defaults=>['eenie','minie']), p,
        "What's your favorite color? ",
        popup_menu(-name=>'color',
                   -values=>['red','green','blue','chartreuse']),p,
        submit,
        end_form,
        hr;
   if (param()) {
       my $name      = param('name');
       my $keywords  = join ', ',param('words');
       my $color     = param('color');
       print "Your name is",em(escapeHTML($name)),p,
             "The keywords are: ",em(escapeHTML($keywords)),p,
             "Your favorite color is ",em(escapeHTML($color)),
             hr;
   }
Che usa un modulo per scrivere html standard (anzi credo che scriva
xhtml), ma mi chiedevo se ne valeva la pena usare il modulo, oppure è
meglio scrivere tutto da se?.


 sarebbe piu` utile imparare a gestire CGI.pm
Ok, consiglio accettato, già che ci sono ne approfitto:
Come DB cosa mi consigli? A me piacerebbe provare con Sqlite (mi pare ci
siano già i moduli).
Inoltre ho sentito parlare di "template", mi sembrano molto carini, che
ne dici?


 database (comunque opterei per MySQL o Postgres da 
entropy.ch
)
Ok, mo provo.
Grazie 1000.
