Archivio

Archivio per la categoria ‘Apache’

Usare Python come CGI

18 ottobre 2009 loade Nessun commento

Per poter eseguire script Python all’interno del vostro web server ci sono diverse modalità (una delle quali è stata  già affrontatata su deec.it e la trovate a questo link). In questa guida affronteremo la configurazione del web server apache configurando python come CGI.

Quello che dobbiamo fare è creare un handler e dire ad apache di eseguire gli script python utilizzando il modulo cgi.

Verifichiamo prima che il modulo cgi sia caricato sul nostro apache:

a2enmod
Your choices are: actions alias asis auth_basic cgi ….
Which module(s) do you want to enable (wildcards ok)?

In questo modo vediamo i moduli caricati sul nostro server web, nel caso non fosse presente cgi per caricarlo:

a2enmod cgi

A questo punto possiamo decidere di configurare il nostro handler all’interno della configurazione del nostro Virtualhost oppure direttamente dentro un file .htaccess.

Per la configurazione all’interno del Virtualhost, dobbiamo inserire quanto segue nel file di configurazione:

vi /etc/apache2/sites-enabled/www.vostrosito.ext

AddHandler cgi-script .py

Se invece vogliamo eseguire gli script .py solo in alcune directory del nostro sito, possiamo creare un file .htaccess all’interno della directory interessata con il seguente contenuto:

vi /var/www/www.vostrosito.ext/htdocs/miadir/.htaccess

AddHandler cgi-script .py

In questo caso dobbiamo verificare che nella configurazione del nostro Virtualhost sia presente la direttiva che permette la lettura dei file .htaccess da parte del nostro webserver.

<Directory /var/www/www.vostrosito.ext/htdocs/>
AllowOverride All
<Directory>

A questo punto non ci resta che creare il file di test:

vi test.py
#!/usr/bin/python
print “Content-type: text/html”
print
print “<title>deec.it — Hello World</title>”
print “<h1>A First CGI Example</h1>”
print “<p>Hello World!</p>”

Per terminare l’operazione dobbiamo rendere il file di test eseguibile:

chmod 755 test.py

Modificare l’open_basedir su Plesk per singolo dominio

29 settembre 2009 loade 1 commento
open_basedir
<Directory /var/www/vhosts/nomedominio.ext/httpdocs>
php_admin_flag engine on
php_admin_value open_basedir ?/var/www/vhosts/nomedominio.ext/httpdocs:/nuovo/path?
</Directory>
Per modificare l’open_basedir per un singolo dominio sul pannello Parallels Plesk dovete editare il file
vi /var/www/vhosts/nomedominio.ext/conf/vhost.conf  (se non esiste createlo)
e aggiungete al suo interno:
<Directory /var/www/vhosts/nomedominio.ext/httpdocs>
php_admin_flag engine on
php_admin_value open_basedir “/var/www/vhosts/nomedominio.ext/httpdocs:/nuovo/path”
</Directory>
nel caso vogliate, invece, disabilitarlo:
<Directory /var/www/vhosts/nomedominio.ext/httpdocs>
php_admin_flag engine on
php_admin_value open_basedir none
</Directory>
Una volta fatto questo dovete eseguire il seguente comando:
/usr/local/psa/admin/sbin/websrvmng –reconfigure-vhost –vhost-name=nomedominio.ext

Configurare connessioni https con apache2 e mod_ssl

21 settembre 2009 Luca Nessun commento

apache

Questo articolo illustra come abilitare il protocollo https con il web server apache (versione 2.x).

La procedura e’ molto semplice ed e’ strutturata in questo modo:

  • Creazione del certificato
  • Installazione del modulo mod_ssl
  • Configurazione del server web e quindi del sito

Vediamo nel dettaglio le varie fasi:

Per creare il certificato utilizzeremo l’applicazione openssl

Se state utilizzando una distribuzione linux  Debian/Ubuntu potrete installarla con questo comando

apt-get install openssl

Con Fedora/Centos invece si installa cosi’

yum install openssl

Se non disponete di un pacchetto precompilato potrete  compilare il sorgente di openssl.

Compilazione ed installazione vengono eseguiti nel modo ‘classico’

gunzip openssl-0.9.8k.tar.gz

tar xvf openssl-0.9.8k.tar

cd openssl-0.9.8k

sh ./config

make make test

make install


Dopodiche’ dovremmo creare il certificato. Ecco il comando:

openssl req -newkey rsa:1024 -x509 -nodes -days 365 -out /etc/apache2.pem -keyout /etc/apache2.pem

N.B. Nell’opzione days e’ specificato il valore 365 quindi il certificato sara’ valido per 1 anno

Occupiamoci ora del modulo ssl e configuriamo apache.

In Debian/Ubuntu il modulo ssl e’  installato di default e dovra’ essere solamente abilitato con

a2enmod ssl

Gli utenti che utilizzano Fedora invece per abilitarlo dovranno inserire nel file /etc/httpd/conf.d/ssl.conf questa direttiva

LoadModule ssl_module modules/mod_ssl.so

N.B. Se  mod_ssl non e’ installato, bastera’ digitare questo comando “yum install mod_ssl”

Il protocollo https accetta connessioni sulla porta 443 (a differenza di http che utilizza l’80).

Gli utenti Debian/Ubuntu dovranno aggiugere in /etc/apache2/ports.conf

Listen 443

Gli utenti Fedora invece dovranno scrivere la suddetta direttiva in /etc/httpd/conf.d/ssl.conf

Non rimane che configurare il VirtualHost

<VirtualHost www.deec.it:443>
DocumentRoot “/var/www/sito/htdocs”
ServerName www.deec.it

SSLEngine on

SSLCertificateFile /etc/apache2.pem

</VirtualHost>

N.B Cambiate il nome del virtualhost, del server e la documentroot del sito

e riavviare apache

/etc/init.d/httpd restart (Fedora)

/etc/init.d/apache2 restart (Debian e Ubuntu)

Installare Mod_python su Debian

16 settembre 2009 loade Nessun commento

Se volete utilizzare Python per scrivere le vostre applicazioni web le soluzioni sono molteplici, quella analizzata in quest’articolo si riferisce ad un modulo integrato in apache: Mod_python.

Per il corretto funzionamento di Mod_python su Debian dovete installare il pacchetto libapache2-mod-python :

apt-get install libapache2-mod-python

caricare il modulo dentro apache se non è già stato caricato:

a2enmod python

Se volete avere maggiori informazioni sul modulo caricato aggiungete nel VirtualHost:

<Location /mpinfo>
SetHandler mod_python
PythonHandler mod_python.testhandler
</Location>

Se richiamate la seguente URL avrete tutte le informazioni sul modulo:

http://www.nomesito.ext/mpinfo

A questo punto dentro la home dir del sito create un file .htacces con il seguente contenuto:

SetHandler mod_python
PythonHandler mod_python.publisher
PythonDebug On

e la index.py:

def index(req):
return “Hello World!!!”

Per vedere il nostro Hello World:

http://www.nomesito.ext/

Per approfondimenti www.modpython.org.