Informazioni tecniche per gestire uno spazio web
Informazioni di base
Configurazione di base del server
Versione sistema operativo Linux: "Red Hat Enterprise Linux v.5, kernel 2.6.18"
Versione di http server Apache: 2.2.3
PHP: vers. 5.1.6
MySql: vers. 5.0.77
Occupazione spazio web e database
Lo spazio web a disposizione è di 30 Mbyte, per chi richiede l'utilizzo del database MySql sono disponibili 20 Mbyte.
L’occupazione viene monitorata e, nel caso in cui superi la quantità assegnata, viene avvisato il responsabile del sito perchè provveda in maniera sollecita a rimuovere i file in eccesso. E’ possibile concedere maggiore spazio web per periodi di tempo limitati o per particolari esigenze (da motivare).
Per ridurre le dimensioni dei file si consiglia quanto segue: - per le immagini utilizzare il formato jpeg con un adeguato fattore di compressione evitando assolutamente formati più onerosi come il tiff, a volte per immagini con pochi colori o con grafici e diagrammi possono essere preferibili formati come il gif o il png; - i file resi disponibili per il download: in particolare i file di testo o i documento Word possono essere compressi in formato zip, i file pdf a volte possono essere ricodificati con prodotti appositi per ridurne le dimensioni.
Cos'è l'HTML?
"HTML (acronimo per Hyper Text Mark-Up Language) è un linguaggio usato per descrivere i documenti ipertestuali disponibili nel Web." (http://it.wikipedia.org/wiki/HTML
).
In pratica l’HTML è il linguaggio con il quale vengono compilate le pagine web e che permette al browser di darne una rappresentazione grafica. L'atomo principale della sintassi di questo linguaggio è l'elemento. Gli elementi sono le strutture del linguaggio a cui è delegata la funzione di formattare i dati o indicare al Web browser delle informazioni. Ogni elemento è racchiuso all'interno di tag, uno di apertura ed uno di chiusura. Quest'ultimo, per certi elementi, è opzionale. I tag sono dei segnalini (markup) costituiti da una sequenza di caratteri racchiusa da due parentesi angolari, cioè i segni minore e maggiore.
Oltre al testo una pagina web è composta da elementi multimediali (immagini, suoni, filmati) che non sono contenuti nel file HTML, ma dal quale sono referenziati (secondo la sintassi dell’HTML) e che quindi vanno uplodati a parte.
Prodotti per editare pagine HTML
Le pagine HTML sono semplici pagine di testo scritte seguendo particolari specifiche, quindi possono anche essere compilate con un semplice editor di testo (per esempio il Notepad o “Blocco note” disponibile in Windows), comunque si consiglia un editor grafico che semplifica di molto il lavoro richiedendo in genere solo superficiali nozioni della sintassi HTML.
Fra le centinaia di prodotti disponibili possiamo citare per brevità i più diffusi come Frontpage di Microsoft (disponibile spesso assieme agli altri prodotti di Office) e Dreamweaver di Macromedia (entrambi a pagamento) oppure Nvu, un prodotto gratuito, open source e multipiattaforma liberamente scaricabile (http://www.sanavia.it/nvuitalia/
).
URL e nomi dei file
Trattandosi di un sistema operativo Linux, nella denominazione dei file maiuscole e minuscole vengono interpretate come caratteri diversi, quindi ad esempio i nomi foto.jpg e FOTO.jpg indicano due file differenti e di questo bisogna tenere conto nel codice html.
Si ricorda che le estensioni dei file che permettono al web server Apache di riconoscere il mime type per correttezza vanno scritte sempre minuscole, per esempio FOTO.jpg è corretto, mentre non lo è FOTO.JPG.
Si ricorda che molte versioni di Windows nascondono di default le estensioni, quindi per evitare errori, soprattutto nella fase di trasferimento dei file via FTP, si consiglia di abilitare la loro visualizzazione (da menu: Strumenti => Opzioni cartella => Visualizzazione quindi deselezionare la voce “Nascondi le estensioni per i tipi di file conosciuti”).
Per quanto riguarda i nomi dei file e quindi delle URL è necessario rispettare i limiti imposti dal file system di Linux e seguire le specifiche dettate dalla RFC 1738 (http://www.ietf.org/rfc/rfc1738.txt
), quindi semplificando si consiglia di utilizzare esclusivamente numeri, lettere maiuscole e minuscole (non accentate) e il carattere speciale undescore ( “_ “ ), sono quindi da evitare gli spazi, le lettere accentate e qualunque carattere speciale diverso dall’underscore.
Per ogni utente di users.unimi.it viene creata una home directory all’interno della quale ci si trova dopo il login (sia via ftp che sftp). All’interno di questa cartella si trova la sottocartella public_html all’interno della quale vanno uplodati i file e le cartelle che costituiscono il sito. La url risultante è del tipo http//users.unimi.it/nome_sito/nome_file.html in cui nome_sito è il nome dello spazio web richiesto e nome_file.html è il file uplodato in public_html e che si intende visualizzare.
File indice
Nel caso in cui una URL facesse riferimento non a un file, bensì ad una cartella (come nel caso della cartella base di un sito), il web server va a cercare quello che viene detto file indice, cioè un file dal nome convenzionale che viene visualizzato in corrispondenza della cartella nel quale si trova.
I nome dei file indice ammessi dal nostro web server sono (in ordine di priorità):
index.html
index.shtml
index.php
index.htm
default.htm
default.html
home.html
home.htm
homepage.htm
homepage.html
home.php
Per esempio, se nella cartella public_html del sito nome_sito mettiamo il file index.html, alla richiesta della URL http://users.unimi.it/nome_sito viene restituita la pagina index.html, ciò è molto comodo in quanto permette di accorciare le URL.
Estensioni di FrontPage
Users.unimi.it non supporta le estensioni di Frontpage: pertanto non è possibile editare direttamente da Frontepage le pagine web sul server, né attivare i componenti web di Frontepage.
inizio pagina
Copiare sul server (FTP, SFTP) e accedere al server (SSH)
Come copiare i propri file sul server
I file e le cartelle che costituiscono un sito web possono essere uplodati sul sito tramite un client ftp o sftp.
Mac OSX e Linux dispongono nativamente di questi client, Windows ha solo il client ftp per giunta puramente testuale, sono però disponibili prodotti gratuiti liberamente scaricabili. Come client ftp si consiglia Filezilla (http://filezilla.sourceforge.net/
), come client sftp WinSCP (http://winscp.net/eng/index.php
).
Si fa presente che i browser più diffusi permettono l’accesso a server ftp, è sufficiente digitare nella barra degli indirizzi la URL ftp://users.unimi.it e, successivamente quando richiesto, inserire utente e password, tuttavia si tratta di una soluzione che offre meno funzionalità di un vero e proprio client ftp.
Configurazione client ftp e sftp
I dati di cui è necessario disporre per configurare la sessione nel client ftp, sftp sono:
- l’host: users.unimi.it
- il nome utente e la password comunicate all’atto della registrazione dello spazio web.
Si ricorda che i file per essere visualizzabili via web devono essere uplodati all’interno della cartella public_html.
Active mode
La modalità attiva è l'unica modalità con cui è possibile accedere in FTP al server users.unimi.it sia dall'interno sia dall'esterno della rete di Ateneo.
Putty e shell (principali comandi unix)
E’ disponibile l’accesso in modalità SSH solo da postazioni con IP fisso della rete di Ateneo (dopo aver comunicato a users@unimi.it l'indirizzo IP), ciò mette a disposizione una shell per impartire comandi o per editare file tramite vi. In Mac OSX e Linux l’applicazione necessaria ad accedere a questo servizio è in genere disponibile di default nel sistema, in Windows è necessario utilizzare l’applicazione puTTY, liberamente scaricabile (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
). I dati di configurazione sono gli stessi dell’ftp.
Concetto di home directory (ftp e sftp)
Una volta ottenuto l’accesso ci si trova nella propria home directory, che nel caso dell’sftp e dell’ssh ha come percorso /home/nome_sito , mentre in ftp (e Dreamweaver che utilizza un suo client ftp per uplodare i file) è semplicemente / .
inizio pagina
Funzionalità attivabili dal server
Mailform
E’ disponibile un'applicazione per l’invio di moduli (o form) web via email.
La url dell’applicazione è http://users.unimi.it/cgi-bin/mailform.cgi, va eseguita con un POST dalla pagina html contenente la form, necessita di due campi nascosti obbligatori e pre-compilati:
OWNER: indirizzo a cui inviare la email
SUBJECT: titolo della email
Lo script cgi ha alcune limitazioni riguardo al numero massimo di caratteri per campo (989), è quindi disponibile uno script in PHP (in beta) che svolge la stessa funzione, ma che non ha il problema con righe di oltre 989 caratteri e si trova alla url http://users.unimi.it/mailform.php .
Contatore
Per avere un contatore in una pagina web è necessario inserire un'immagine (tag <IMG>) in cui il parametro src punta allo script del contatore ( http://users.unimi.it/cgi-bin/nph-count ) con alcuni parametri:
link = OBBLIGATORIO - chiave univoca che identifica il contatore, in genere la URL della pagina dove si trova
increase = valore di incremento del conteggio, di default 1, sono ammessi valori negativi (se il conteggio diventa negativo viene automaticamente posto a 0)
width = larghezza in caratteri del contatore, 15 pixel per ogni carattere (default = 6)
show = se posto a "NO" non viene mostrato nessun valore, ma viene ugualmente aggiornato il conteggio.
bgcolor = colore di sfondo (di default NERO = 000000) nella forma RRGGBB
fgcolor = colore caratteri (di default BIANCO = FFFFFF) nella forma RRGGBB
Note sul formato dei colori: devono essere espressi nella forma RRGGBB in cui RR rappresenta il valore esadecimale della componente rossa, GG il valore esadecimale della componente verde, BB il valore esadecimale della componente blu.
Esempio minimo:
<img src= http://users.unimi.it/cgi-bin/nph-count?link=www.ewa.unimi.it>
inizio pagina
Informazioni per gli utenti esperti
Users.unimi.it supporta ASP, ASP.NET, JSP?
No, users.unimi.it non supporta ASP, ASP.NET e neppure JSP.
Users.unimi.it supporta CGI-BIN?
Sì, users.unimi.it supporta cgi-bin scritti in Perl o in C, tuttavia la loro implementazione ed installazione è riservata all’amministratore di sistema, quindi l’utente cha ha uno spazio web non può utilizzare proprie applicazioni cgi-bin.
Installazione di prodotti open source
Users.unimi.it è un cosiddetto sistema LAMP, cioè Linux + Apache + MySql + PHP, insieme di applicazioni per le quali sono stati realizzati molti prodotti open source, in particolare CMS e Wiki.
Per ragioni di sicurezza e in generale di buona gestione del sistema è necessario avvertire l’amministratore di sistema nel caso dell’installazione di uno di questi pacchetti. Comunque, a causa dei necessari aggiornamenti del sistema operativo o del software di base presente sul server, non si possono garantire le future compatibilità dei prodotti open source installati e quindi che essi possano continuare a funzionare correttamente in futuro.
A causa di alcune impostazioni di sicurezza del server, in particolare l’abilitazione del safe_mode, alcuni di questi prodotti potrebbero avere problemi di funzionamento, quindi prima di utilizzarli si consiglia di verificarne la compatibilità con questa modalità di sicurezza, con le librerie installate di Apache (http://users.unimi.it/phpinfo.php
) e con le versioni installate dei prodotti LAMP.
Verificati questi punti, per avere la certezza di un corretto funzionamento è comunque necessario procedere con un’installazione di verifica e con un test di utilizzo.
Il supporto all’installazione di questi prodotti che la Divisione Sistemi Informativi fornisce è limitato alla disponibilità a modificare permessi e proprietari dei file o alla consultazione dei file di log degli errori (a cui l’utente web di norma non può accedere).
Una nota particolare riguarda il framework Zope, scritto in Python: sul nostro server è installato questo linguaggio, però in una versione precedente a quella minima richiesta da Zope, quindi al momento Zope non può essere utilizzato.
Come proteggere le cartelle con delle password (file .htaccess e comando htpasswd)
Apache permette di proteggere con password una o più cartelle del proprio spazio web tramite l'utilizzo di file .htaccess; in linea di massima si tratta di creare nella propria home directory (quella dove si trova la cartella public_html) un file di testo (nome a proprio piacimento, per esempio password) inizialmente vuoto che vai poi riempito con gli utenti e le password inserendoli con il comando htpasswd e poi creando in ogni cartella che si intende proteggere un file .htaccess con un testo del tipo:
AuthName "Titolo della finestra del login"
AuthUserFile /home/suo_sito/nome_del_file_delle_password
AuthType Basic
<LIMIT GET POST>
require user nome_login1 nome_login2
</LIMIT>
Dove AuthName è il titolo della finestra che appare all’interno del browser per richiedere nome utente e password, AuthUserFile è il nome del file delle password che abbiamo creato in precedenza e che avrà un percorso del tipo /home/nome_sito/password mentre a require user deve seguire la lista degli utenti ammessi.
Note: per digitare il comando htpasswd è necessario disporre di una shell, per l’uso della quale si rimanda all’apposita voce delle FAQ.
Riferimenti:
Per i file .htaccess: http://server.html.it/articoli/leggi/934/i-file-htaccess-in-apache/
e http://httpd.apache.org/docs/1.3/howto/htaccess.html![[apre una nuova finestra]](/img/icone/nuova_finestra.gif)
Per il comando htpasswd: http://httpd.apache.org/docs/1.3/programs/htpasswd.html![[apre una nuova finestra]](/img/icone/nuova_finestra.gif)
Utente web, utente apache e gruppo apache
In un sistema Linux ogni file ha un proprietario, che in genere è l’utente che lo ha creato (o lo ha uplodato tramite ftp), analogamente ogni applicazione in esecuzione ha un proprietario che corrisponde all’utente che l’ha eseguita.
Ogni utente è associato ad un gruppo e ad ogni file è associato un insieme di 9 permessi (che possono assumere il valore ammesso / non ammesso)
permessi di lettura / scrittura e esecuzione per l’utente proprietario
permessi di lettura / scrittura e esecuzione per il gruppo dell’utente proprietario
permessi di lettura / scrittura e esecuzione per tutti gli altri
Il web server Apache è un demone (cioè un programma sempre in esecuzione) con proprietario un utente particolare: apache appartenente al gruppo apache.
Siccome tutti gli utenti di siti web di default appartengono al gruppo apache ogni file creato o depositato deve almeno avere il permesso di lettura per il gruppo apache, in questo modo il web server lo può leggere ed inviare al browser che lo ha richiesto.
File di log e statistiche
E' possibile vedere le statistiche di accesso al server http://users.unimi.it/stats/users/
.
inizio pagina
Php
Versione PHP
5.1.6; maggiori dettagli alla pagina http://users.unimi.it/phpinfo.php
.
Safe mode
Il PHP, per ragioni di sicurezza in quanto il server ospita diversi siti e domini, è configurato per funzionare in modalità sicura o safe mode (http://it.php.net/manual/it/features.safe-mode.php
), ciò implica alcune restrizioni, la principale è che viene impedito ad uno script PHP di accedere ad un file o ad una libreria di un proprietario diverso o di creare un file all’interno di una cartella di un proprietario diverso.
In un utilizzo normale ciò non crea complicazioni, però in pagine PHP che accedono a file su disco ciò può provocare dei malfunzionamenti (difatti alcune applicazioni PHP, per esempio CMS open source potrebbe avere problemi con alcune delle loro funzionalità sia in fase di installazione e configurazione che in esecuzione), ciò nasce dal fatto che gli script PHP, uplodati con un client ftp, hanno come proprietario l’utente del sito, però nel momento in cui uno script PHP crea un file su disco lo fa come utente apache (che è l’utente con il quale è in esecuzione il web server Apache e di conseguenza l’utente con il quale vengono eseguiti gli script PHP) , quindi il file creato è di proprietà di apache, ne consegue quindi che nessuno degli script del sito sarà più i grado di leggerlo in futuro.
Soluzione a questo problema è quella di convertire tutti gli script e le directory a apache del gruppo apache come proprietario, però ciò può essere fatto solo dall’amministratore di sistema che quindi va contattato per questa operazione.
Istruzioni bloccate
Per ragioni di sicurezza alcune funzioni del PHP sono state bloccate e si tratta di:
exec
system
passthru
readfile
shell_exec
escapeshellarg
escapeshellcmd
proc_close
proc_open,ini_alter
dl
popen
parse_ini_file
show_source
inizio pagina
MySql
Versione mysql: 5.0.22
Accesso amministrativo
L’accesso al database è permessa solamente da localhost (127.0.0.1), quindi non è possibile utilizzare il servizio da server diversi da users.unimi.it e non è possibile amministrare il database con un client installato nella propria macchina.
Configurazione del PHP per usare MySql
Per accedere al database da uno script PHP è necessario indicare l’host (che può essere solamente localhost), il nome del database (in genere il nome dell’account preceduto da db_), l’utente e la password comunicati all’atto dell’attivazione del database.
Uso di phpMyAdmin
Essendo impossibile amministrare il database con client remoti è reso disponibile l’applicazione phpmyadmin alla URL http://users.unimi.it/phpMyAdmin
. E’ necessario accedere con l’utente e la password comunicati all’atto dell’attivazione del database.
inizio pagina