Archive for Luglio, 2007

Lug 27 2007

Richiesta di autenticazione tramite file .htaccess

Può capitare, avendo un sito web composto da diverse directory e/o sottodirectory, di dover consentire l’accesso ad una particolare directory solamente ad alcuni utenti. Avendo un web server come Apache su piattaforma Linux (le informazioni indicate di seguito le ho provate su una Debian Etch), è possibile utilizzare un file .htaccess, da creare nella directory a cui si vuole limitare l’accesso, per raggiungere lo scopo prefisso.

Il primo passo consiste appunto nella creazione del file .htaccess e nell’assegnazione dei corretti permessi al file stesso:

# touch /var/www/sito/dirProtetta/.htaccess
# chmod 644 /var/www/sito/dirProtetta/.htaccess

Fatto questo, editare il file .htaccess col proprio editor preferito inserendo queste righe:

AuthName "Area protetta"
AuthType Basic
AuthUserFile /var/www/sito/dirProtetta/.htpasswd
<Limit GET PUT POST>
Require valid-user
</Limit>

L’istruzione nella prima riga rappresenta il titolo della finestra di richiesta autenticazione, la seconda riga indica invece il tipo di autenticazione alla directory, cioé l’autorizzazione di tipo Basic, che consente il passaggio in chiaro del traffico di autenticazione, a differenza dell’autenticazione di tipo Digest; la terza riga specifica il percorso del file .htpasswd, che altri non è che il file contenente le accoppiate username -> password degli utenti a cui è consentito autenticarsi. Di seguito abbiamo il tag <Limit>, con gli attributi GET, PUT e POST che rappresentano le operazioni consentite in relazione alla directory (rispettivamente download, upload e invio informazioni tramite form), al cui interno vi è l’istruzione "Require valid-user" che dice ad Apache di consentire l’accesso alla directory solamente agli utenti riconosciuti come validi, cioé che hanno fornito le corrette credenziali d’accesso.

Eseguiti questi passaggi, bisogna creare gli utenti del caso tramite il comando htpasswd. La creazione del primo utente comporta anche la creazione del file .htpasswd, tramite questo comando:

# htpasswd -c /var/www/sito/dirProtetta/.htpasswd utente1

Digitato questo comando, verrà chiesta per due volte la password da assegnare all’utente, e contestualmente verrà creato il file .htpasswd nella directory specificata con l’opzione -c; a questo file vanno assegnati adeguate autorizzazioni, in particolare il gruppo www-data (il gruppo che contiene l’utente omonimo che esegue il demone apache2) dovrà poter accedere al file almeno in lettura:

# chown root:www-data /var/sito/dirProtetta/.htpasswd
# chmod 640 .htpasswd

Ora possiamo creare gli altri utenti in questo modo:

# htpasswd /var/www/sito/dirProtetta/.htpasswd utente2

Creati gli utenti, abbiamo fatto quasi tutto; l’ultimo passaggio consiste nel modificare la configurazione di Apache in modo tale che sia consentito l’accesso ai file .ht per la directory che vogliamo proteggere, infatti, almeno in Debian (non so se è così anche con altre distribuzioni), l’accesso ai file .ht è inibito per default, quindi bisogna dire ad Apache che vogliamo sovrascrivere questa impostazione limitatmente alla directory specifica. In particolare, cercare all’interno del file /etc/apache2/apache2.conf il tag <Files> in modo tale che la configurazione finale sia questa:

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>

<Directory /var/www/sito/dirProtetta/>
    AllowOverride AuthConfig Limit
</Directory>

dove il tag <Directory> rappresenta appunto la sovrascrittura delle impostazioni date all’interno del tag <Files>.

E’ tutto, ora quando un utente accede a questa particolare directory del sito si ritroverà davanti alla richiesta di inserimento di username e password che Apache dovrà autenticare o meno.

No responses yet

Lug 26 2007

Configurare MySQL per Wordpress

Published by Lorenzo under SQL Server, Wordpress

Se dobbiamo installare Wordpress su un server con un’installazione pulita di MySQL (dando per scontato di aver correttamente installato e configurato Apache, PHP e MySQL), per prima cosa dovremo creare il database in cui verranno messe tutte le tabelle relative a Wordpress, e l’utente MySQL che avrà pieno accesso al database, ipotizzando di denominare il database "wordpressDB", a cui potrà accedere con i pieni privilegi l’utente "wordpressUSR" con password "wordpressPWD".

La prima cosa da fare, trattandosi di un’installazione pulita di MySQL, è quella di assegnare una password al superutente (root) di MySQL, tramite il comando:

> mysqladmin -u root -p PasswordROOT

dove per PasswordROOT si intende la password assegnata all’utente root.

A questo punto è possibile connettersi a MySQL come superutente per preparare il database su cui si appoggerà Wordpress col comando:

> mysql -u root -p

che richiederà di inserire la password del superutente. Una volta entrati in MySQL, creare il database per Wordpress:

mysql> create database wordpressDB;

quindi, creare l’utente MySQL "wordpressUSR" ed assegnarli tutti i privilegi sul database "WordpressDB":

mysql> grant all privileges on wordpressDB.* to ‘wordpressUSR’@'localhost’ identified by ‘wordpressPWD’;

Ora non rimane altro che rinominare il file wp-config-sample.php in wp-config.php e configurare queste quattro righe nel modo seguente:

define(’DB_NAME’, ‘wordpressDB’);    // The name of the database
define(’DB_USER’, ‘wordpressUSR’);     // Your MySQL username
define(’DB_PASSWORD’, ‘wordpressPWD’); // …and password
define(’DB_HOST’, ‘localhost’);

Siamo al passo finale, basta connettersi tramite browser al sito http://indirizzoblog/wp-admin/install.php e procedere con l’installazione (veramente semplicissima) di Wordpress.

No responses yet

Lug 20 2007

Installare e gestire SQL Server 2005 Express

SQL Server 2005 Express è il database gratuito di Microsoft appartenente alla serie SQL Server 2005, e si pone quindi come successore di MSDE, il database rilasciato gratuitamente da Microsoft fino alla serie SQL Server 2000. Questa versione di SQL è liberamente scaricabile dal sito Microsoft e richiede il framework .NET 2.0, altrimenti non si installa.

Il grosso limite di SQL Express è che non ha un’interfaccia visuale di gestione, per cui andrà gestito da linea di comando (a meno di non avere un’altra installazione di SQL Server attiva sulla rete o di altri tool che al momento non conosco), ma soprattutto, in modo predefinito, SQL Express non accetta connessioni da altri host.

Per permettere a SQL Express di accettare connessioni da altri host, è necessario per prima cosa aprire il tool di configurazione di SQL Express che prende il nome di SQL Configuration Manager, quindi da lì andare in "SQL Server 2005 Network Configuration", poi su "Protocols for SQLEXPRESS", quindi abilitare il protocollo TCP/IP. Fatto questo, andare nel registro di configurazione e impostare il valore HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\90\SQL Browser\Ssrplistener a 1, dopodiché bisogna abilitare l’avvio automatico del servizio "SQL Server Browser", poi bisogna avviarlo ed infine riavviare il servizio "SQL Server (SQLEXPRESS). Ora, oltre a rendere possibile l’accesso ad altri host, è possibile anche amministrare la nostra installazione di SQL col tool da riga di comando SQLCMD, tramite il comando:

sqlcmd -E -S nomeserverSQL\nomeistanzaSQL,1434

dove per nomeserverSQL si intende il nome host del PC su cui è installato SQL Express, per nomeistanzaSQL si intende il nome che si è dato all’istanza in fase d’installazione (il nome dell’istanza predefinita è MSSQL$EXPRESS) e per 1434 si intende la porta TCP su cui risponde SQL Express.

A questo punto, è abbastanza probabile che si vogliano riutilizzare database utilizzati in precedenza con SQL Server 2000 o con MSDE; se abbiamo i file del database (.mdf e .ldf), è possibile metterli nella cartella predefinita in cui sono contenuti i database di sistema di SQL Express e quindi, tramite T-SQL, creare un nuovo database facendo un attach dei file già esistenti:

> CREATE DATABASE nuovoDB ON
> (FILENAME = ‘c:\program files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\nomefileDB.mdf’) FOR ATTACH;

in questo modo SQL Express crea il nuovo database agganciando i vecchi dati in nostro possesso, facendo una conversione nel nuovo formato se stiamo facendo l’attach di un database SQL Server 2000

E’ inoltre possibile che esistano applicazioni distribuite sulla rete locale che devono accedere al database SQL Express presente su un server, per cui in questo caso possono servire i driver nativi per accedere al database via ODBC o via OLE DB. Questi driver sono installati con un pacchetto messo a disposizione di Microsoft e chiamato "Microsoft SQL Server Native Client", scaricabile ovviamente dal sito Microsoft.

Per amministrare la nostra installazione di SQL Express 2005, è possibile anche scaricare ed installare SQL Server Management Studio Express, che altro non è che l’erede di Enterprise Manager, ovvero la console MMC di gestione visuale di SQL Server, in questo modo non siamo legati per forza all’amministrazione di SQL Express da riga di comando.

No responses yet

Lug 14 2007

Visualizzare webcast Microsoft su Windows Mobile

Published by Lorenzo under Windows, Windows Mobile

Microsoft mette a disposizione diversi webcast in cui vengono trattati svariati argomenti molto interessanti che vanno dalla gestione di Windows Server, ad Exchange e così via. I webcast sono scaricabili dal sito di Technet in formato Windows Media Video, e quindi si possono visualizzare tranquillamente con Windows Media Player, finché si rimane su PC; se si cerca di visualizzare il webcast con Windows Media Player su Windows Mobile (quindi su un palmare o su uno smartphone) invece è possibile solamente sentire l’audio, ma non vedere la parte video del webcast. Ciò è dovuto al fatto che il codec video con cui sono realizzati i webcast Microsoft è il Windows Media Video 9 Screen, che non è supportato da Windows Media Player Mobile.

Per ovviare a questo problema, è possibile scaricare ed installare Windows Media Encoder 9, uno strumento che permette di fare diverse cose riguardanti la manipolazione di contenuti audio e video, e che tra le altre cose permette di convertire un video dal formato WMV al formato WMV per Pocket PC. Per fare la conversione, bisogna selezionare, appena partito il programma, la voce "Convert a file", quindi indicare il file di origine ed il file di destionazione, poi andare avanti e scegliere la voce "Pocket PC" alla richiesta di scelta del metodo di distribuzione del contenuto multimediale, dopodiché scegliere come formato video "Pocket PC standard video (CBR)" e come formato audio "Voice quality audio (CBR)", impostazioni che ci aiutano a ridurre le dimensioni del video senza perdere troppo in qualità, considerato il tipo di contenuto. Fatto questo, rimangono opzioni poco importanti fino ad arrivare alla fine della creazione guidata ed all’inizio della conversione vera e propria.

Tenere presente che la conversione prende un po’ di tempo (su un video di 1 ora e mezzo può impiegare all’incirca mezz’ora), ma soprattutto che il file così creato è decisamente più grande dell’originale (il nuovo file può essere quasi 5 volte più grande del file originario in termini di occupazione di memoria), quindi è necessario dotarsi di una scheda di memoria capiente per il proprio palmare se si ha intenzione di sfruttarlo intensivamente per visualizzare questo tipo di contenuto.

No responses yet

Lug 07 2007

Gestire gli upload di file in ASP

Quando si realizza una pagina di caricamento file (upload) in ASP, intervengono diversi fattori che determinano il successo o meno del caricamento, in particolare, con file piuttosto grandi, è possibile avere dei problemi che possono dipendere dal fatto che, passato un determinato periodo di tempo, lo script ASP va in timeout prima che il file sia stato caricato completamente sul server Web, oppure, un altro fattore che entra in gioco è la dimensione massima del file che può essere caricato su un server Web.

Per quanto riguarda la regolazione del timeout dello script, è possibile utilizzare la proprietà Server.ScriptTimeout, che indica il tempo massimo - espresso in secondi - a disposizione dello script per la sua completa esecuzione, secondo questa forma:

Server.ScriptTimeout = 300

Con l’esempio indicato, uno script andrà in timeout dopo 300 secondi, ossia dopo 5 minuti.

La dimensione massima caricabile su un server Web IIS 6.0 su Windows Server 2003 invece va regolata editando il file c:\windows\system32\inetsrv\metabase.xml e impostando il valore del parametro "AspMaxRequestEntityAllowed", che assume il valore predefinito di 204800 byte (200Kbyte), alla dimensione desiderata, espressa sempre in byte. L’editing diretto di questo file però non è consentito se IIS è attivo, ma comunque è possibile modificare questo valore tramite l’esecuzione di uno script VBS in grado di variare questo parametro, seguendo questa sintassi:

cscript adsutil.vbs set w3svc/ASPMaxRequestEntityAllowed dimensione

dove al posto di dimensione va indicata la massima dimensione in byte consentita per i file caricati tramite upload. Fatta questa modifica va riavviato il servizio iisadmin tramite la console di gestione dei servizi di Windows Server oppure tramite il comando iisreset. Fatta questa operazione, la modifica è attiva ed è operativo il nuovo limite di caricamento file sul server Web.

Link di riferimento
Knowledge Base Microsoft

No responses yet