Pagina 1 di 1

Configurazione perl per apache2

Inviato: martedì 1 marzo 2011, 13:06
da orsomannaro
Ho installato ubuntu server 10.4 selezionando anche i pacchetti in
oggetto, creando in sostanza un server LAMPP.

- Ho verificato perl su apache2:

#a2enmod perl
Module perl already enabled

- Ho copiato in /var/www un software scritto in perl assegnando utente e
gruppo www-data e permessi 755

- Secondo quanto specificato dagli autori del software, ho abilitato il
virtual host cosi':

#cat /etc/apache2/sites-available/mysoft

Alias /mysoft/ /var/www/mysoft/


AddHandler cgi-script .pl
Options ExecCGI Includes FollowSymlinks



Order Deny,Allow
Deny from All



Il problema e' che andando su http://server/mysoft i file .pl non vengono
eseguiti ma il browser (firefox/chromium) propone di scaricarli.


Qualcuno mi puo' aiutare?
Grazie

Re: Configurazione perl per apache2

Inviato: martedì 1 marzo 2011, 14:09
da ReMichael
Hai abilitato mod_cgi?

Re: Configurazione perl per apache2

Inviato: mercoledì 2 marzo 2011, 8:23
da orsomannaro
ReMichael ha scritto: Hai abilitato mod_cgi?
si

# a2enmod cgi
Module cgi already enabled

Se creo un file cgi questo viene interpretato correttamente dal browser.
Se creo un file .pl questo viene correttamente eseguito da console, ma non dal browser.

Io credo sia una questione di permessi apache2 da settare in maniera corretta, perche' ritengo si possa presupporre che selezionando i pacchetti in fase di installazione di ubuntu, la configurazione di base di apache2 per mysql/php/perl sia automatica e corretta ...

Re: Configurazione perl per apache2

Inviato: mercoledì 2 marzo 2011, 8:58
da ReMichael
si

# a2enmod cgi
Module cgi already enabled

Se creo un file cgi questo viene interpretato correttamente dal browser.
Se creo un file .pl questo viene correttamente eseguito da console, ma non dal browser.

Io credo sia una questione di permessi apache2 da settare in maniera corretta, perche' ritengo si possa presupporre che selezionando i pacchetti in fase di installazione di ubuntu, la configurazione di base di apache2 per mysql/php/perl sia automatica e corretta ...
i permessi mi pare li hai settati in maniera corretta. ho fatto una prova veloce aggiungendo un virtualhost:

Codice: Seleziona tutto

<VirtualHost *:80>
   ServerName provaperl
   DocumentRoot /var/www/perl

   <Directory /var/www/perl>
      AllowOverride all
      AddHandler cgi-script .pl
      Options -MultiViews ExecCGI FollowSymLinks
      Order allow,deny
      Allow from all
   </Directory>
</VirtualHost>
proprietario e gruppo www-data, permessi 755 e mi funziona senza problemi.

Le differenze rispetto alla tua configurazione mi sembrano minime.. io ho creato un vhost in httpd e come vedi non ho specificato alias.. ho specificato in più allow e deny.

Prova anche a controllare i log nel caso, anche se non avendo nessun tipo di errore dubito che ci sia scritto qualcosa di interessante

Re: Configurazione perl per apache2

Inviato: mercoledì 2 marzo 2011, 10:22
da orsomannaro
Intanto grazie
ReMichael ha scritto: io ho creato un vhost in httpd e come vedi non ho specificato alias..
Qui ho un dubbio:
creare un vhost in httpd intendi un file in /etc/apache2/sites-available/ abilitato poi con a2ensite o altro?

Re: Configurazione perl per apache2

Inviato: mercoledì 2 marzo 2011, 10:36
da ReMichael
orsomannaro ha scritto: Intanto grazie
ReMichael ha scritto: io ho creato un vhost in httpd e come vedi non ho specificato alias..
Qui ho un dubbio:
creare un vhost in httpd intendi un file in /etc/apache2/sites-available/ abilitato poi con a2ensite o altro?
no, intendo inserire proprio un virtualhost nel file httpd.conf. Io sono solito togliere il site di default e impostare tutti i vhosts in httpd.conf.. però è una scelta, va bene sia usare httpd.conf che utilizzare i sites

Re: Configurazione perl per apache2

Inviato: mercoledì 2 marzo 2011, 11:02
da orsomannaro
ReMichael ha scritto: no, intendo inserire proprio un virtualhost nel file httpd.conf. Io sono solito togliere il site di default e impostare tutti i vhosts in httpd.conf.. però è una scelta, va bene sia usare httpd.conf che utilizzare i sites
Ho creato un site inserendo la configurazioni che hai testato tu, ma niente.

Ho provato poi a disabilitare il site default, e noto che cosi' facendo il browser pare vietare l'accesso a tutta la DocumentRoot.
Ho pensato che e' default site possa contenere restrizioni sull'esecuzione di script, ma anche fosse credo che queste verrebbero annullate dalla configurazione del site in perl ...

Re: Configurazione perl per apache2

Inviato: mercoledì 2 marzo 2011, 11:12
da ReMichael
orsomannaro ha scritto: Ho creato un site inserendo la configurazioni che hai testato tu, ma niente.

Ho provato poi a disabilitare il site default, e noto che cosi' facendo il browser pare vietare l'accesso a tutta la DocumentRoot.
Ho pensato che e' default site possa contenere restrizioni sull'esecuzione di script, ma anche fosse credo che queste verrebbero annullate dalla configurazione del site in perl ...
Io farei questa prova: come hai già provato, togli il site default e temporaneamente anche altri eventuali sites abilitati. Metti il virtualhost come l'ho scritto io nel file httpd.conf (aggiustando servername e path), restarta apache e vedi se così funziona.

Perché non mi torna il fatto che togliendo il default site non ti fa accedere.. io nel virtualhost ho specificato allow e deny e questi dovrebbero evitare appunto il problema.

Re: Configurazione perl per apache2

Inviato: mercoledì 2 marzo 2011, 13:55
da orsomannaro
ReMichael ha scritto: Io farei questa prova:
ora provo

Intanto ho provato a installare un programma perl da repository:

apt-get install otrs2

e tutto funziona a dovere... pertanto apache e perl sono ok.

Re: Configurazione perl per apache2

Inviato: mercoledì 2 marzo 2011, 14:19
da orsomannaro
ReMichael ha scritto: Io farei questa prova: come hai già provato, togli il site default e temporaneamente anche altri eventuali sites abilitati. Metti il virtualhost come l'ho scritto io nel file httpd.conf (aggiustando servername e path), restarta apache e vedi se così funziona.
500 Internal Server Error

ReMichael ha scritto: Perché non mi torna il fatto che togliendo il default site non ti fa accedere.. io nel virtualhost ho specificato allow e deny e questi dovrebbero evitare appunto il problema.
Mi correggo: collegandomi a http://MYIP/ vedo il messaggio "It works!" di apache, mentre collegandomi su http://MYIP/perl ho il su citato errore.


Inoltre:

# cat /var/www/test.pl
#!/usr/bin/perl
print "Hello World.\n";
# chown www-data:www-data /var/www/test.pl
# chmod 755 /var/www/test.pl
# /var/www/test.pl
Hello World.

ma http://MYIP/test.pl mi chiede se voglio scaricare test.pl
Idem con patate se invece metto il file nella directory /var/www/test e creo un site.

Re: Configurazione perl per apache2

Inviato: mercoledì 2 marzo 2011, 14:34
da ReMichael
L'errore ti esce perché prima della print devi mettere:

Codice: Seleziona tutto

print "Content-type: text/html\n\n";