PROZONE powered by Tophost
  Home   Forum   Regolamento Help Login Registrati   *
Statistiche
Utenti
Utenti Totali: 1707
Ultimo utente: xal
Statistiche
Posts Totali: 29470
Topics Totali: 3404
Online Oggi: 51
Presenze Massime Online: 559
(23 Luglio 2008, 14:24:28)
Utenti Online
Utenti: 2
Visitatori: 47
Totale: 49
Siti amici
Design & Multimedia

Dire e Fare il blog che ti aiuta

Wordpress
Pagine: [1] 2
 
Autore Topic: Script Perl  (Letto 14368 volte)
Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« il: 18 Novembre 2006, 14:54:31 »

Sul sito Debian.org ho visto questa pagina dove si può generare tutti i tipi di copertine per cd e DVD delle release debian:

http://debian.semistable.com/cdcover.pl

Mi sono domandato perchè non provo a fare qualcosa di simile sul mio spazio web per la distribuzione linux che utilizzo (Ubuntu) ?

Ho provato a costruire una pagina simile a quella di Debian al seguente indirizzo:
http://www.lucaguastalla.com/cgi-bin/cdcover.pl

Purtroppo non funziona, ottengo il seguente messaggio di errore:
Errore 500 - errore interno al server
Il server ha incontrato un errore interno o un problema di errata configurazione e non riesce a completare la richiesta inserita.
Questo errore può essere causato da uno script CGI non funzionante o da un file .htaccess contenente degli errori.

Questo è il contenuto del file cdcover.pl che ho modificato per gestire le versioni UBUNTU. Ho modificato anche i file eps e png con i loghi ubuntu utilizando gli stessi nomi di file.

Codice:
#!/usr/bin/perl
use CGI qw/:standard/;
use strict;
use warnings;

my $css=<<END;
END

my $error = "";

my ($sec,$min,$hour,$mday,$mon,$year,
          $wday,$yday,$isdst) = localtime time;

$year += 1900;
$mon += 1;

my $hostname = `hostname`;

my %release_names = ('4.10' => 'Warty Warthog',
      '5.04' => 'Hoary Hedgehog',
      '5.10' => 'Breezy Badger',
      '6.06 LTS' => 'Dapper Drake',
      '6.10' => 'Edgy Eft',
      '7.04' => 'Feisty Fawn';

my @arches = ('i386', 'sparc', 'powerpc','amd64');

@arches = sort @arches;

my $xpos = 105.0;
my $ypos = 73.0;

if (param('ok')) {
my $log;
open($log, ">> types.log");
print $log param('file_type'), "\t",
   param('output_type'), "\t",
   param('release'), "\t",
   param('printer_type'), "\n";
close $log;
# check the parameters, if they are ok generate the result, otherwise
# create error messages
  
# XXX check the date
# append errors like this: $error = li("testing");
unless ($error) {
  # fix release codename based on version number
  if (exists $release_names{param('release')}) {
   param('codename', $release_names{param('release')});
  }
  elsif (param('release') eq 'unstable') {
   param('codename', "");
  }
  # append snapshot if necessary
  if (param('release') eq 'testing') {
   param('set_type', param('set_type')." Snapshot");
  }
  elsif (param('release') eq 'unstable') {
   param('set_type', param('set_type')." Snapshot");
  }
  # calculate position
  if (param('label') eq 'Upper') {
   $ypos = $ypos + 146;
  }
  param('offset_x', ($xpos + param('offset_x')) / 10.0);
  param('offset_y', ($ypos - param('offset_y')) / 10.0);
  # create the result
  my $cmdline = "./cdlabelgen ";
  if (param('printer_type') eq 'Color') {
   $cmdline .= "-e openlogo-nd.eps -E openlogo.eps "
  }
  else {
   $cmdline .= "-e openlogo-nd-bw.eps -E openlogo-bw.eps "
  }
  $cmdline .= "-c \"".param('operating_system')." ".
   param('release')."\" ";
  $cmdline .= "-s \"";
  if (param('release') ne 'unstable') {
   $cmdline .= "\\\"".param('codename')."\\\" ";
  }
  $cmdline .= param('set_type')." ".param('arch')."\" ";
  if ((param('release') eq 'unstable') or
   (param('release') eq 'testing')) {
   $cmdline .= "-d \"".
    param('year')."-".param('month')."-".param('day')."\" ";
  }
  else {
   $cmdline .= "-D ";
  }
  $cmdline .= "--cd-in-set \"".param('cd')."\" ";
  if (param('output_type') eq 'Slim CD Cover') {
   $cmdline .= "-m ";
  }
  elsif (param('output_type') eq 'CD Envelope') {
   $cmdline .= "-M ";
  }
  $cmdline .= "--centerx=\"".param('offset_x')."\" --centery=\"".
   param('offset_y')."\" ";
  if (param('output_type') eq 'CD Envelope') {
   $cmdline .= "-S 2.5,-0.65,0.4 -T 0.75,-0.4,0.4 -b -t ";
  }
  else {
   $cmdline .= "-S 2.5,-0.65,0.4 -T 0.75,-0.1,0.1 -b -t ";
  }
  if (param('output_type') eq 'CD Label') {
   $cmdline .= "cdlabel.ps ";
   if (param('file_type') eq 'PDF') {
    $cmdline .= " | ps2pdf - -";
    print header(-type=>'application/pdf',
      -attachment=>'cdlabel.pdf');
   }
   else {
    print header(-type=>'application/postscript',
      -attachment=>'cdlabel.ps');
   }
  }
  else {
   $cmdline .= "cdcover.ps ";
   if (param('file_type') eq 'PDF') {
    $cmdline .= " | ps2pdf - -";
    print header(-type=>'application/pdf',
      -attachment=>'cdcover.pdf');
   }
   else {
    print header(-type=>'application/postscript',
      -attachment=>'cdcover.ps');
   }
  }
  my $result = `$cmdline`;
  print $result;
  exit;
}
}

print header(), start_html(-title=>'Ubuntu Media Cover/Label Generator',
                  -style=>{-code=>$css}), h1(img {src=>"openlogo-nd-50.png",
      align=>"right"},
      " Ubuntu Media Cover/Label Generator"),
      "<hr noshade style=\"color:black;background-color:black\">",
"This page will allow you to generate covers and labels for your Ubuntu ".
"media sets easily and with a common look. You just need to fill out the ".
"fields below, if anything is missing, if you have problems or suggestions ".
"don't hesitate to contact ".a({-href=>'mailto:lucaguastalla@hotmail.com'},
'Luca Guastalla &lt;lucaguastalla@hotmail.com&gt;'). ".", p;

if ($error) {
print font({-color=>'red'}, 'There are problems with your input, please correct
them and try again:'. ul($error)), p;
}
print startform("post", url(-relative=>1));
print table({-cellspacing=>"3", -cellpadding=>2},
Tr([
  th({-colspan=>3, -align=>"left", -valign=>"top"}, "General options affecting the output:"),
#  th({-bgcolor=>"#DDDDDD", -align=>"left", -valign=>"top"},"Paper Size:").
#   td({-valign=>"top"}, popup_menu(-style=>'width: 100%',
#       -name=>'paper_size',
#       length=>"24",
#          -values=>['A4'],
#                      -default=>'A4')).
#   td({-valign=>"top"}, "Currently only A4 is supported, Letter is on it's way"),
  th({-bgcolor=>"#DDDDDD", -align=>"left", -valign=>"top"},"Printer Type:").
   td({-valign=>"top"}, popup_menu(-style=>'width: 100%',
       -name=>'printer_type',
       length=>"24",
          -values=>['Color','Grayscale'],
                      -default=>'Color')).
   td({-valign=>"top"}, "For enhanced contrast select \"Grayscale\" if you are not ".
   "planning to print on a color printer"),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"File Type:").
   td({-valign=>"top"}, popup_menu(-style=>'width: 100%',
       -name=>'file_type',
          -values=>['Postscript', 'PDF'],
                      -default=>'PDF')).
   td({-valign=>"top"}, "Postscript available too, make sure you don't apply any scaling when printing."),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"Output Type:").
   td({-valign=>"top"}, popup_menu(-style=>'width: 100%',
       -name=>'output_type',
          -values=>['Normal CD Cover', 'Slim CD Cover',
       'CD Envelope', 'CD Label'],
                      -default=>'Normal CD Cover')).
   td("Currently only CD Covers are supported, CD Labels are a bit experimental"),
  th({-colspan=>3, align=>"left", -valign=>"top"}, "How to label the Volume:"),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"Operating System:").
   td({-valign=>"top"}, popup_menu(-style=>'width: 100%',
       -name=>'operating_system',
          -values=>['Ubuntu', 'Kubuntu','Edubuntu', 'Xubuntu'],
                      -default=>'Ubuntu')),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"Release:").
   td({-valign=>"top"}, popup_menu(-style=>'width: 100%',
       -name=>'release',
          -values=>['4.10', '5.04', '5.10', '6.06 LTS', '6.10','7.04'],
                      -default=>'6.10')),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"Set Type:").
   td({-valign=>"top"}, popup_menu(-style=>'width: 100%',
       -name=>'set_type',
          -values=>['Desktop', 'Server','Alternate'],
                      -default=>'Desktop')).
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"Architecture:").
   td({-valign=>"top"}, popup_menu(-style=>'width: 100%',
       -name=>'arch',
          -values=>[@arches],
                      -default=>'i386')),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"CD:").
   td({-valign=>"top"}, textfield(-style=>'width: 100%',
       -name=>'cd',
                -default=>'Binary-1',
       -size=>'22',
       -maxlength=>40)),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top", -nowrap=>"yes"},"Date (YYYY-MM-DD):").
   td({-valign=>"top", -nowrap=>"yes"}, popup_menu(
       -name=>'year',
          -values=>[(2004..2007)],
                      -default=>"$year")." - ".
   popup_menu(
       -name=>'month',
          -values=>[(1..12)],
                      -default=>$mon)." - ".
   popup_menu(
       -name=>'day',
          -values=>[(1..31)],
                      -default=>$mday)).
  th({-colspan=>3, align=>"left", -valign=>"top"}, "Label-specific ".
  "options:"),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"Label:").
   td({-valign=>"top", -nowrap=>"yes"},
    popup_menu(-style=>'width: 100%',
       -name=>'label',
          -values=>['Upper', 'Lower'],
                      -default=>'Upper')),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"Offset X [mm]:").
   td({-valign=>"top"}, textfield(-style=>'width: 100%',
       -name=>'offset_x',
                      -default=>'0'), td('mm')),
  th({-bgcolor=>"#DDDDDD", align=>"left", -valign=>"top"},"Offset Y [mm]:").
   td({-valign=>"top"}, textfield(-style=>'width: 100%',
       -name=>'offset_y',
                      -default=>'0'), td('mm')),
  td([""," "]),
  td(["",submit(-style=>'width: 100%',
      -name=>'ok',
            -value=>'Ok')]).
  td({-valign=>"top"}, "Don't forget to give me some <a href=\"mailto:lucaguastalla\@hotmail.com\">feedback</a> on how to improve this service, especially if you are using the labels!"),
]));
print endform;
print end_html;
« Ultima modifica: 19 Novembre 2006, 00:17:55 da Gioxx » Loggato
Rikkardone
Moderatore
*
Posts: 754


Script Perl
« Risposta #1 il: 18 Novembre 2006, 18:13:57 »

controllato che i permessi del .pl siano corretti?
Loggato

Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #2 il: 18 Novembre 2006, 19:51:33 »

Che cosa intendi per corretti ?

I permessi sul file cdcover.pl sono 750

Se li imposto a 777 ottengo questo messaggio di errore:

CGI execution Error:

Security conflict between permision and script
Script cdcover.pl is world writable
Loggato
bad
Utente Attivo
****
Posts: 452


Script Perl
« Risposta #3 il: 18 Novembre 2006, 21:13:57 »

Citazione

Purtroppo non funziona, ottengo il seguente messaggio di errore:
Errore 500 - errore interno al server
Il server ha incontrato un errore interno o un problema di errata configurazione e non riesce a completare la richiesta inserita.
Questo errore può essere causato da uno script CGI non funzionante o da un file .htaccess contenente degli errori.

 
sei sicuro di aver fatto l'upload dello script usando la modalità binaria di trasferimento dell'ftp ? a me un problema simile in passato si creava perchè il client ftp trasferiva lo script in modalità binaria.
Da quache parte dovresti avere l'opzione "trasferisci in modalità ascii".
Loggato
Rikkardone
Moderatore
*
Posts: 754


Script Perl
« Risposta #4 il: 19 Novembre 2006, 00:01:22 »

Citazione
Che cosa intendi per corretti ?

I permessi sul file cdcover.pl sono 750

Se li imposto a 777 ottengo questo messaggio di errore:

CGI execution Error:

Security conflict between permision and script
Script cdcover.pl is world writable
imposta i permessi in 744, un tentativo lo farei  Occhiolino  
Loggato

Gioxx
Supervisore
*
Posts: 904


Script Perl
« Risposta #5 il: 19 Novembre 2006, 00:19:05 »

@Guastalla: ho modificato il tuo post per includere nei tag [Code] il tuo codice (che evitano di far sfasare il tema del forum la dove ci dovessero essere particolari codici che manderebbero in conflitto i file del forum) Occhiolino

Ciao.
Loggato

Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #6 il: 25 Novembre 2006, 09:58:00 »

Grazie Gioxx
Loggato
Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #7 il: 25 Novembre 2006, 10:05:31 »

Citazione
Citazione
Che cosa intendi per corretti ?

I permessi sul file cdcover.pl sono 750

Se li imposto a 777 ottengo questo messaggio di errore:

CGI execution Error:

Security conflict between permision and script
Script cdcover.pl is world writable
imposta i permessi in 744, un tentativo lo farei  Occhiolino
Grazie riccardo.r

con 744 lo script parte ma devo aver fatto degli errori perchè non riesco ad ottenere le copertine cd come vorrei.

Adesso provo a lavorarci su, vediamo cosa succede.
Loggato
Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #8 il: 25 Novembre 2006, 10:36:06 »

Dopo aver settato a 744 il file cdcover.pl lo script ha funzionato fino a quando tramite la funzione File manager del pannello di controllo di tophost sono andato a modificare una virgola nello script.

Sono andato a controllare il valore che avevo settato sul file cdcover.pl e mi risulta ancora essere 744 ma adesso ottengo questo messaggio di errore:

CGI execution Error:
Script cdcover.pl refuse execution

Non riesco a capire che cosa posso aver rovinato Huh?
Loggato
Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #9 il: 25 Novembre 2006, 11:54:48 »

Per tagliare la testa al toro ho pensato di eseguire queste fasi passo passo:

1) scaricare il file http://debian.semistable.com/cdcover.tar.gz ;
2) installare nella cartella /cgi-bin il contenuto del file cdcover.tar.gz;
3) settare il file cdcover.pl e cdlabel con valore 744;
4) provare se funziona;
5) procedere alla modifica dei singoli file fino ad arrivare a produrre le versioni ubuntu delle etichette.

Vi tengo informati sugli sviluppi
Loggato
Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #10 il: 25 Novembre 2006, 13:33:19 »

Ho modificato le descrizioni dei testi nel file cdcover.pl lasciando intatti i valori delle variabili.

Risultato:
La procedura funziona nel creare etichette in formato postscript mentre nel formato PDF ottengo questo messaggio di errore in Acrobat



Loggato
Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #11 il: 2 Dicembre 2006, 14:53:38 »

Nessuno sa proprio come aiutarmi ?
Loggato
Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #12 il: 3 Dicembre 2006, 10:12:19 »

Il messaggio è dovuto al fatto che il file generato dalla procedura è vuoto:
$ file cdcover.pdf
cdcover.pdf: empty
$ du -h cdcover.pdf
0       cdcover.pdf
$ cat cdcover.pdf
$

Ho controllato l'elenco dei moduli disponibili per perl dalla sezione "Informazioni CGI e PERL" del cpanel di Tophost, ma non mi sembra di aver visto alcun modulo per generare i file PDF.

Ho aperto un ticket e adesso aspetto notizie.
Loggato
Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #13 il: 3 Dicembre 2006, 12:55:10 »

Mi hanno risposto che:
"Siamo spiacenti di informarla che non è possibile aggiungere nuovi moduli per il
perl installato sui nostri server rispetto a quelli visualizzati nella sezione
indicata."

Allora mi sa proprio che non riesco ad ottenere dal mio sito web i file in formato PDF.

Qualche suggerimento ?
Loggato
Guastalla
Nuovo Utente
**
Posts: 25


Script Perl
« Risposta #14 il: 5 Dicembre 2006, 12:11:14 »

Ma allora, mi domando:

se carico un CMS tipo joomla o similare, la funzione di stampa della pagina in pdf non dovrebbe funzionare sui server di tophost.

E' un osservazione sbagliata ?
Loggato
Pagine: [1] 2
 
 
Salta a:  

Oggetto Iniziato da Risposte Visto Ultimo Post
Link Utili guardaqua 5 11845 Ultimo Post 25 Ottobre 2009, 17:27:51
da Sonia D
Le cose da NON fare con AdSense. lacellula 0 3172 Ultimo Post 18 Settembre 2007, 10:32:19
da lacellula
Controllo Risorse Nell'hosting Condiviso effe8 10 10140 Ultimo Post 22 Maggio 2008, 15:41:19
da Darknico
Installazione di e107 su TopHost lacellula 0 45548 Ultimo Post 11 Giugno 2007, 12:03:52
da lacellula
Tophost: Infrastruttura Blade Center IBM « 1 2 » Tophost 20 11825 Ultimo Post 8 Agosto 2008, 11:43:34
da daniele4home
Powered by MySQL Powered by PHP Powered by SMF 1.1.8 | SMF © 2006-2008, Simple Machines LLC
Traduzione Italiana a cura di SMItalia

TinyPortal v0.9.8 © Bloc
XHTML 1.0 Valido! CSS Valido!


Ultima visita di Google a questa pagina 2 Agosto 2010, 18:34:51