LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
0
L inux
A pache
M ySQL
P PHP
Piattaforma di sviluppo per sistemi integrati tra Web e Database
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp0.php [01/10/04 12.51.24]
LAMP - Linux, Apache, MySQL, PHP
lamp1
Piattaforma di sviluppo per sistemi
LAMP Web/Database
1
L A M P
1
Componenti
3
2
Tecnologia World Wide Web
Dettaglio
Architettura client/server
HyperText Transfer Protocol
HyperText Markup Language
Sistema Web/Database
Unix - Linux
Apache
RDBMS MySQL
Script Language PHP
FORM HTML
Sequenza installazioni
Bibliografia - Sitografia
Installazione Luglio 2001
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp1.php?backfile=lamp0.php [01/10/04 12.51.36]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
2
Componenti
Una piattaforma come strumento per la divulgazione di informazioni
ad attivita' scientifiche.
Caratteristiche di base
LAMP : relative
●
●
●
affidabile
economica
di facile realizzazione
Combinazione di 4 componenti quali:
Linux
Sistema Operativo
Apache HTTP Server
MySQL Relational DataBase Management System (RDBMS)
PHP
Script Language
Il software della combinazione LAMP e' software di tipo Open Source, vale a dire
software che puo' essere utilizzato da chiunque purche' continui a riconoscere
esplicitamente il contributo di chi ha scritto il codice sorgente.
The Free Software Foundation (FSF - GNU Project)
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp2.php?backfile=lamp1.php [01/10/04 12.51.38]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
3
Tecnologia World Wide Web
E' oramai naturale pubblicare documenti ed accedere informazioni usando il Web.
Sicuramente l'integrazione di questa tecnologia, con le potenzialita' offerte dei
motori per la gestione dei database, rappresenta lo strumento di diffusione
dell'informazione piu' potente sia nella comunita' scientifica che nella comunita' dei
navigatori della rete Internet.
●
●
●
●
●
Ha rivoluzionato il mercato dell'informazione
E' indipendente dall'hardware e dal software
Con pontenzialita' in continua evoluzione
.......
.......
Alla base della tecnologia WWW c'e' :
●
●
●
●
Architettura client/server
HyperText Transfer Protocol (HTTP)
HyperText Markup Language (HTML)
Browser
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp3.php?backfile=lamp2.php [01/10/04 12.51.49]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
4
Architettura di tipo Client/Server
Architettura utilizzata in ambiente distribuito.
Un programma e' composto da due parti distinte e fra loro indipendenti.
Client
richiede il servizio
(interfaccia utente che accetta le richieste, ne verifica la
correttezza e compone un messaggio di richiesta al server).
Server
●
●
●
●
●
●
●
●
●
fornisce il servizio
Le due parti interagiscono utilizzando un protocollo (serie di comandi che
seguono delle regole sintattiche e temporali ben precise).
Il codice della parte del programma server di una applicazione puo' cambiare
senza che si debba modificare la parte client.
Le due componenti possono essere ottimizzati ciascuno per il suo compito
indipendentemente.
Il client ed il server possono essere programmi strutturalmente diversi,
purche' riconoscano lo stesso protocollo (es. HTTP).
Alcuni servizi con architettura client/server :
Posta elettronica
Database SQL Server
Printer server
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp4.php?backfile=lamp3.php [01/10/04 12.51.51]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
5
HyperText Transfer Protocol - HTTP
Protocollo utilizzato per lo scambio di risorse tra il client ed il Web server.
Vengono applicati meccanismi di casching locale per memorizzare le ultime pagine
consultate.
● Riduce al minimo indispensabile gli accessi alla rete.
● La connessione viene chiusa al termine del trasferimento della pagina.
●
Transizione:
1. apertura della connessione
2. invio da parte del client della richiesta
❍ metodo
■ GET - recupera l'informazione identificata dall'URL
(Gli eventuali parametri passati al server sono visibili nell'URL del browser, a
seguire il "?")
POST - i parametri passati al server sono passati come appendice
della richiesta, dopo gli header e la riga vuota
❍ risorsa
3. risposta da parte del server
■
❍
intestazione comprendente il modo in cui l'informazione allegata deve essere
interpretata dal client
4. chiusura della connessione
Esempio di richiesta:
Risposta:
GET /index.html HTTP/1.0
HTTP/1.0 200 Ok
User-Agent: Mozilla/4.6
Date: Mon, 10 May 2001 14:00:00 GMT
Accept: image/gif,image/jpeg, */* Server: Apache/1.3.9
Last-Modified:Tue, 8 Apr 2001 09:04:00 GMT
Content-Length: 203123 Content-Type: text/html
●
●
●
Protocollo HTTP 1.1
Connessioni permanenti: la connessione e' attiva fino a quando non viene esplicitamente
chiusa da una delle due parti tramite l'invio di un apposito Connection Header : Connection:
close
Richieste piu' chiare: Request Header deve essere obbligatoriamente incluso in ogni
richiesta, specifica quale e' il server da contattare e su quale porta.
Gestione della cache: viene definita la validita' di ogni risorsa utilizzando un nuovo
Response header
http://www.polarnet.cnr.it/CORSI/LAMP/lamp5.php?backfile=lamp4.php (1 di 2) [01/10/04 12.51.53]
LAMP - Linux, Apache, MySQL, PHP
●
●
Expires: Thu, 01 May 2001 16:00:00 GMT che fornisce l'indicazione diretta della data oltre la
quale, il dato in cache, non sara' piu' affidabile. Il controllo sulle variazioni del dato
originale viene affidato a dei Validators.
Nuovi comandi:Options - Put - Delete - Trace.
Nuovi codici di stato e di warning.
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp5.php?backfile=lamp4.php (2 di 2) [01/10/04 12.51.53]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
6
HyperText Markup Language - HTML
Nato al CERN alla fine degli anni ottanta, l' HTML e' un linguaggio definito
utilizzando SGML (Standard Generalized Markup Language), standard per la
definizione di linguaggi di marcatura.
●
●
●
●
●
●
●
Evoluzione dell'HTML :
plugin;
linguaggi di scripting;
supporto a Java;
XML (Extensible Markup Language), W3C XML Web site;
DHTML (Dynamic HyerText Markup Language);
Approccio statico: utilizzato, solitamente, per la creazione di un sito di
piccole dimensioni; (il contenuto delle pagine cambia raramente).
Approccio dinamico:
obbligatorio quando si vuole realizzare un sito che,
oltre a gestire pagine di tipo statico, gestisce, ad esempio, pagine il cui
contenuto deriva da dati prelevati da un database.
Una tecnica consiste nell'integrare il codice HTML con altri linguaggi di
scripting utilizzando dei tag speciali.
Script
= programma, normalmente scritto con un linguaggio interpretato,
che puo' risiedere sia sul client che sul server e che, interangendo con essi
e/o con altri applicativi, fornisce un servizio.
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp6.php?backfile=lamp5.php [01/10/04 12.51.54]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
7
Sistema Web/Database
La tecnologia Web/Database permette agli utenti, da qualunque host della rete essi
siano collegati, di accedere ad una quantita' enorme di informazioni organizzate in
sistemi di gestione di base di dati.
●
●
●
La gestione e/o consultazione dei dati e' indipendente dalla dislocazione fisica
nella rete delle informazioni.
Il browser (interfaccia grafica user-friendly) diventa lo strumento per
interagire con il database.
Con controllo di sicurezza, si possono effettuare:
❍ operazioni di amministrazione e gestione del database;
❍ operazioni di aggiornamento, convalida e popolamento.
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp7.php?backfile=lamp6.php [01/10/04 12.51.55]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
Linux
8
Linux - SuSE
Apache HTTP Server
MySQL RDBMS (Relational DataBase Management System)
PHP
Script Language
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp8.php?backfile=lamp7.php [01/10/04 12.51.57]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
●
●
●
●
●
●
●
●
9
UNIX - Storia
1965 - Bell Telephone Laboratories e General Electric Company collaborano al
progetto MAC (MIT Project on Mathematics Computation) per sviluppare un
nuovo sisistema operativo;
fine anni 60 - prima versione di Unix in monoprogrammazione sviluppata
presso i Bell Telephone Laboratories;
1971 - prima versione in multiprogrammazione per l'elaboratore PDP-11
(Digital);
1973 - prima versione scritta in linguaggio C;
1974 - viene pubblicato materiale tecnico dagli autori;
tra gli anni '70 e '80 vengono prodotti varie versioni commerciali (System
III, IV...);
contemporanemente, presso l'universita' di Berkeley viene sviluppata una
variante di Unix detta BSD (Berkeley Software Distribution); vengono
apportati dei miglioramenti tra i quali l'editor VI, la C Shell, programma
Sendmail e il supporto per il protocollo TCP/IP;
1985 - nasce la Free Software Foundation (FSF) con lo scopo di creare e
diffondere la filosofia del software libero visto come possibilita' data agli
utenti di distribuire e modificare il software a seconda delle proprie esigenze
e di poter distribuire anche le modifiche apportate (contratto di licenza
d'uso GPL - General Public License).
Tutte le versioni attuali di Unix derivano dall'esperienza maturata nel corso degli anni dalle versioni base BSD e
System V.
●
●
●
●
Caratteristiche del sistema operativo:
multitasking: permette di eseguire piu' processi simultaneamente;
multiuser: piu' utenti possono collegarsi ed utilizzare il sistema allo stesso
tempo;
di tipo time sharing: il sistema assegna l'unita' centrale di elaborazione per
un certo tempo a turno ad ognuno degli utenti che ne fanno richiesta;
costituito da due parti:
❍
❍
la shell : interpreta i comandi dell'utente e ne richiede l'esecuzione al kernel;
il kernel (nucleo): si prende carico dellagestione delle risorse a livello operativo piu'
basso.
http://www.polarnet.cnr.it/CORSI/LAMP/lamp9.php?backfile=lamp8.php (1 di 2) [01/10/04 12.51.58]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
10
Linux
●
●
●
●
●
●
●
1991 - Linus Benedict Torvalds, studente dell'universita' di Helsinky, inizia a
sviluppare un kernel che sfrutta le nuove possibilita' offerte dal processore
Intel 80386, vale a dire il multitasking. Linus riscrive interamente il kernel,
in base alle regole della GNU Free Software Foundation, e nell' ottobre
annucia la prima versione ufficiale di Linux 0.02.
Linux in breve tempo coinvolge un numero elevato di persone e diviene presto
il prodotto simbolo del progetto GNU.
La fortuna di Linux e' stata quella di adottare la licenza GNU-GPL che
garantisce una libera diffusione del software.
Linux e' un sistema operativo UNIX disponibile su diverse piattaforme (x86 Intel, AMD, Cyrix) con capacita' multiutente e multitasking.
Linux puo' convivere con altri sistemi operativi quali WindowsXX, Windows
NT, Windows 2000 oppure OS/2.
LILO, il Boot-manager di Linux, e' una procedura che permette di avviare, in
fase di accensione della macchina, il sistema operativo desiderato.
Documentazione disponibile on-line nelle sezioni FAQs, HowTo, ManPages e
nei vari Newsgroups.
Distribuzioni
Set di uno o piu' CD con kernel ed applicativi gia' compilati e con un setup di
aiuto per l'installazione.
● Slackware, Debian, RedHat, Mandrake, Caldera etc.
●
LINUX - Distribuzione SuSE
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp10.php?backfile=lamp9.php [01/10/04 12.51.59]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
11
Apache - HTTP Server Project
The Apache Software Foundation
http://www.apache.org
●
●
●
●
●
●
●
Prodotto Open Source distribuito con il codice sorgente;
A patchy server - nato dalle modifiche apportate al server della NCSA
(National Center for Supercomputing Application);
prima versione rilasciata nel 1995;
ad oggi il piu' diffuso Web server non solo per piattaforme Unix;
struttura modulare;
stabilita' di esecuzione;
assistenza fornita dalla stessa comunita' di utilizzatori, gruppi di discussione,
mailing lists, etc. presenti nella rete.
Lucidi del Corso Apache
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp11.php?backfile=lamp10.php [01/10/04 12.52.01]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
12
RDBMS (Relational Data Base Management System)
(1)
●
●
Data Base (DB) : collezione di dati logicamente correlati e rappresentati in
modo omogeneo, ai quali si puo' accedere da diverse applicazioni;
Data Base Management System (DBMS) : sistema di gestione di basi di dati;
programma che interfaccia un DB con le applicazioni che lo utilizzano.
Caratteristiche di un DBMS:
●
●
●
capacita' di gestire grandi quantita' di dati (limiti sono del supporto fisico);
dati condivisibili da piu' applicazioni e da piu' utenti;
utilizzo di sistemi di protezione ed autorizzazione;
●
●
Tipi di DBMS a seconda del modello, vale a dire a seconda della struttura logica
con cui sono organizzati i dati:
●
●
●
●
gerarchico
reticolare
relazionale
ad oggetti
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp12.php?backfile=lamp11.php [01/10/04 12.52.03]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
13
RDBMS (Relational Data Base Management System) (2)
Modello Relazionale
●
●
1970 - E.F.Cood, ricercatore presso l'IBM, introduce il modello di database
relazionale descrivendone il modello matematico (basato sulla teoria degli
insiemi) e dando le basi per un linguaggio di creazione ed interrogazione quale
SQL (Structured Query Language);
IBM/DB2 primo database relazionale.
Il modello relazionale rappresenta il database come un insieme di tabelle a 2
dimensioni.
●
●
in ogni tabella (o relazione) sono contenuti i dati relativi ad un fenomeno
(entita'):
le righe ne esprimono le ricorrenze;
le colonne rappresentano i campi o proprieta' dei dati.
Ogni entita' e' individuata da un insime finito di valori detti attributi.
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp13.php?backfile=lamp12.php [01/10/04 12.52.04]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
13.b
RDBMS (Relational Data Base Management System) (3)
Linguaggio SQL (Structured Query Language)
●
●
Linguaggio di interrogazione e gestione per basi di dati relazionali;
origini risalgono agli anni '70;
(inizialmente, era stato progettato per essere usato in modo convenzionale da un terminale
interattivo; in seguito, fu completato aggiungendo la possibilità di essere richiamato
dall'interno di programmi scritti in linguaggi ad alto livello così da consentire lo sviluppo di vere
e proprie applicazioni orientate alle specifiche esigenze degli utenti.)
●
linguaggio di tipo non procedurale, consente di operare sui dati tramite frasi
con parole chiave prese dal linguaggio corrente.
Ogni sistema RDBMS fa uso di un proprio dialetto, nonostante sia definito uno
standard ANSI (American National Standard Institute) e ISO (International
Standards Organization).
Istruzioni di base del linguaggio
●
●
●
Data
1.
2.
3.
4.
Data
1.
2.
3.
Data
1.
2.
Manipulation Language (DML)
SELECT (estrae le informazioni dal database)
INSERT (aggiunge nuovi dati in una tabella o vista)
UPDATE (modifica i valori esistenti in una tabella o
DELETE (cancella da una tabella o vista)
Definition Language (DDL)
CREATE (crea tabelle, indici, viste nel database)
ALTER (modifica la definizione di una tabella)
DROP (cancella tabelle, indici, viste dal database)
Control Language (DCL)
GRANT (attiva privilegi su tabelle o viste)
REVOKE (revoca privilegi su tabelle o viste)
vista)
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp1313.php?backfile=lamp13.php [01/10/04 12.52.05]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
14
MySQL
MySQL AB Laboratory
http://www.mysql.com
Relational DataBase Management System (RDBMS). Software di tipo Open Source
distribuito con il codice sorgente con licenza GPL.
●
●
●
●
●
●
Caratteristiche:
prestazioni di alto livello;
intregrazione con librerie standard;
supporto di intefacce driver ODBC, driver PHP;
librerie per C e C++;
tools integrati per l'amministrazione;
ricca manualistica.
Lucidi del Corso Mysql
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp14.php?backfile=lamp13.php [01/10/04 12.52.07]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
15
PHP - Hypertext Preprocessor
Caratteristiche
●
●
●
●
Linguaggio di scripting open-source, HTML-embedded che consente di generare
contenuti dinamici ed interfacciarsi ai piu' comuni database in maniera rapida ed
efficace.
Linguaggio di scripting dal lato server, i cui comandi vengono inseriti nella sintassi
HTML. E' utilizzabile su piu' piattaforme.
Le istruzioni in codice PHP vengono lette ed interpretate dal Web server (es.
APACHE).
Puo' esser configurato per essere eseguito come :
1. modulo del Web server
(disponibile per il Web Server APACHE su sistemi UNIX)
2. script CGI separato
(eseguibile su tutti i Web server in ambiente Unix e
Windows9X/Me/NT/2000)
Lucidi del Corso PHP
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp15.php?backfile=lamp14.php [01/10/04 12.52.09]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
16
Script Language (1)
Programma, scritto normalmente per un interprete, che puo' risiedere sia sul client
che sul server e che, interagendo con essi o con altri applicativi, fornisce un
servizio.
Operazioni possibili
●
●
●
●
●
validazione di form : e' possibile controllare i dati inseriti in una o piu' form
contenute nelle pagine web ed inviarli al server in modo corretto;
risoluzione di problemi di compatibilita' : si puo' verificare quale browser
l'utente utilizza e generare il codice HTML opportuno;
generazione dinamica di pagine : e' possibile generare pagine on the fly in modo
da gestire in maniera efficiente ogni modifica del sito;
accesso a database : si puo' accedere ad informazioni, contenute in database,
estratte con query anche molto complesse;
controlli di sicurezza : e' possibile fornire, solo ad alcuni utenti, l'accesso a
determinate risorse.
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp16.php?backfile=lamp15.php [01/10/04 12.52.13]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
17
Script Language (2)
Script che risiede sul Client
●
Lato Client
: lo script e' contenuto all'interno del codice HTML con
un specifico tag < script > .... < /script >
❍
❍
❍
❍
L' esecuzione e' affidata ad un interprete integrato nel browser (es.
Javascript).
Lo script deve compiere azioni non troppo complesse che possono essere
compiute dalla macchina client.
Evitare quando si interagisce con un database essendo i dati contenuti
all'interno del server.
Il codice e' visibile all'interno della pagina.
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp17.php?backfile=lamp16.php [01/10/04 12.52.15]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
18
Script Language (3)
Script che risiede sul Server
●
Lato Server:
e' utilizzato nel caso di un sostanzioso scambio di
informazioni tra il client ed il server.
Modalita' per realizzare pagine dinamiche (on- the-fly).
Al client arriva solo la pagina contenente il risultato finale dell'elaborazione.
Si applica usando :
❍
❍
Script CGI - Common Gateway Interface.
Specifiche introdotte, dopo la nascita del WWW, per fornire un
insieme di regole secondo le quali i programmi sul server inviano
informazioni, attraverso il server web, al client. Le specifiche CGI
furono accompagnate anche da cambiamenti nell'HTML e nell'HTTP, per
introdurre la capacita' di produrre delle maschere (FORM).
Web Server Extension:
un'estensione del Web server che abilita l'inserimento del codice
all'interno delle pagine HTML).
Sequenza di funzionamento
■
■
■
■
Il Web server, prima di inviare al client la pagina HTML richiesta
mediante una GET, esegue un parsing del documento;
vengono indivuate istruzioni diverse dall'HTML;
viene invocato l'opportuno interprete;
vengono restituiti al browser, via standard input, i dati
provenienti dall'esecuzione.
© (2000 - 2004) Daniela Beatrici - CNR/IIA POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp18.php?backfile=lamp17.php [01/10/04 12.52.16]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
19
Script Language (4)
Attivazione
●
●
URL nel campo location del browser o con l'attributo <a
href="....">testo</a>
Esempio: <a href="....">prova.php</a>
l'attributo action di un FORM HTML , attivazione via submit.
La comunicazione, tra il client (browser) ed il server (script eseguito dal web
server), avviene secondo due metodi:
❍ metodo GET (i dati vengono assegnati alla variabile d'ambiente
QUERY_STRING);
❍
metodo POST (i dati vengono inviati allo script mediante l'uso dello
standard input).
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp19.php?backfile=lamp18.php [01/10/04 12.52.18]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
20
FORM HTML
(1)
Tramite le FORM l'utente puo' interagire con il Web server (impostando richieste,
inviando dati, compilando moduli etc..). Il rapporto utente/pagina-Web diventa
bidirezionale e questo e' possibile solo grazie all'intervento di programmi CGI
(Common Gateway Interface) oppure di programmi creati con linguaggi di scripting
residenti sul Web server. Le FORM sono state introdotte dalla versione HTML 2.0.
●
●
La creazione di una FORM consta di due fasi :
impostazione dei tag per la creazione della form, dei campi e del bottone di
submit
creazione dello script sul Web server
<FORM> ........... </FORM>
Tag che indica l'inzio e la fine della form. All'interno della form sono previsti tre
attributi:
1. ACTION
identifica l'URL o il percorso relativo al programma o script CGI al
quale vengono inviati i dati;
2. METHOD
identifica il metodo con il quale vengono inviati i dati della form
■ GET
- i dati vengono inviati al Web server attraverso la
variabile d'ambiente QUERY_STRING (max 255 caratteri)
■ POST
- i dati vengono ricevuti direttamente dallo script senza
un preventivo processo di decodifica attraverso lo standard input
(no limite)
3. ENCTYPE identifica il metodo di codifica dei dati
●
●
●
ELEMENTI DELLA FORM
< INPUT>
< SELECT>
< TEXTAREA>
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp20.php?backfile=lamp19.php [01/10/04 12.52.19]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
< FORM> ........... </FORM>
21
(2)
< INPUT>
Determina il modo con il quale l'utente immette i dati nella form.
ATTRIBUTI
type = text|password|checkbox|radio|submit|reset|file|hidden|image|button
1. TEXT - singola linea dove si puo' inserire il testo da immettere
2. PASSWORD - il testo immesso non viene visualizzato
3. CHECKBOX - rettangolo da selezionare o deselezionare (per selezioni
multiple)
4. RADIO - pulsante di selezione (singola selezione)
5. SUBMIT - pulsante per invio dati della form al server web
6. RESET - pulsante per ripristinare, ai valori di default, i campi della
form
7. FILE - indica il nome di un file che viene inviato al server web
8. HIDDEN - determina un campo invisibile nel quale si possono passare
dei dati
9. IMAGE - indica l'immagine da visualizzare come pulsante
name = nome
Associa ai dati immessi un nome
value = "nome" Utilizzato per determinare un valore predefinito;
con SUBMIT e RESET visualizza il testo sul bottone
size = n
Determina la lunghezza del campo
maxlength = n
Determina la lunghezza massima del campo
checked
Preselezione per i campi RADIO e CHECKBOX
src = url
URL dell'immagine da usare nel tipo IMAGE
http://www.polarnet.cnr.it/CORSI/LAMP/lamp21.php?backfile=lamp20.php (1 di 2) [01/10/04 12.52.21]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
FORM HTML
22
(3)
....Esempio ....
Il codice riportato, si riferisce solo al campo ISSN
<FORM ACTION="lista.php" METHOD=POST>
<input type=hidden name=kissn value="<?echo"$kissn"?>">
<table border=0 cellpadding=3> < tr>
<td align=right>ISSN :
<td><INPUT name="kissn" size=9 maxlength=9>
.............
.............
.............
</tr><tr><td><INPUT TYPE=submit value=" CERCA ">
</tr></table>
</FORM>
PAGINA WEB
Riviste
E' possibile effettuare la ricerca selezionando uno dei seguenti campi:
http://www.polarnet.cnr.it/CORSI/LAMP/lamp22.php?backfile=lamp21.php (1 di 2) [01/10/04 12.52.22]
LAMP - Linux, Apache, MySQL, PHP
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp22.php?backfile=lamp21.php (2 di 2) [01/10/04 12.52.22]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
FORM HTML
....Esempio....
23
(4)
<FORM action="http://somesite.com/prog/adduser" method="post">
<P>
First name:<INPUT type="text" name="firstname"><BR>
Last name: <INPUT type="text" name="lastname"><BR>
email: <INPUT type="text" name="email"><BR>
<INPUT type="radio" name="sex" value="Male"> Male<BR>
<INPUT type="radio" name="sex" value="Female"> Female<BR>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</P>
</FORM>
This form might be rendered as follows:
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp23.php?backfile=lamp22.php [01/10/04 12.52.24]
LAMP - Linux, Apache, MySQL, PHP
LAMP Piattaforma
FORM HTML
di sviluppo per sistemi Web/Database
24
(5)
<SELECT>
<OPTION>........ </SELECT>
Visualizza un menu di scelte per l'utente. Ogni elemento viene preceduto dall'attributo <OPTION>
ATTRIBUTI di SELECT
name = nome
Associa ai dati immessi un nome
size = n
Indica quante opzioni alla volta vengono visualizzate
multiple
Indica che si puo' sceglire piu' di una opzione
ATTRIBUTI di OPTION
value = nome
Utilizzato per determinare un valore predefinito
selected
preselezione voce corrispondente
....Esempio....
<FORM ACTION="prog.php" METHOD=POST>
...........
<SELECT NAME=qualifica size=1 align=left>
<OPTION>On.<OPTION>On.Prof. <OPTION>Prof.<OPTION>Prof.ssa
<OPTION>Rag.
</SELECT>
...........
<INPUT TYPE=SUBMIT VALUE="SALVA"> <input type=RESET VALUE="RESET">
</FORM>
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp24.php?backfile=lamp23.php [01/10/04 12.52.26]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
FORM HTML
25
(6)
<TEXTAREA> .....</TEXTAREA>
Permette all'utente di immettere blocchi di testo
Attributi
name = nome
Associa ai dati immessi un nome
rows = n
numero di righe visibili per il rettagolo da visualizzare
cols = n
numero di colonne visibili per il rettagolo da visualizzare
(rows e cols non indicano un limite reale per la lunghezza dei dati inviati)
....Esempio....
<FORM action="http://somesite.com/prog/text-read" method="POST">
Inserire i dati: <TEXTAREA name="thetext" rows="3" cols="40">
</TEXTAREA>
<INPUT type="submit" value="Send"> <INPUT type="reset">
</FORM>
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamp25.php?backfile=lamp24.php [01/10/04 12.52.31]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
Installazioni
●
MySQL
❍
●
Step 1
APACHE
❍
❍
●
Step 1
Step 2
PHP
❍
❍
Step 1
Step 2
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/inst.html [01/10/04 12.52.50]
MySQL - A Relational Database Management System
Sistema di gestione di basi
relazionale
MySQL dati
5
Steps per l'INSTALLAZIONE in ambiente UNIX
●
●
gzip -d mysql-3.22.27.tar.gz (unzip del file compresso)
tar -C /usr/local -xvf mysql-3.22.27.tar (installazione
:
del codice sorgente nella
directory mysql-3.22.27)
●
●
●
●
●
●
cd mysql-3.22.27 (posizionamento sulla directory di installazione)
./configure --prefix=/usr/local/mysql --with-unix-socketpath=/tmp/mysql.sock (genera i make files adatti al sistema)
make (compilazione)
make install (installazione)
cd /usr/local/mysql/bin (posizionamento sulla directory)
./mysql_install_db (inizializzazione del database - Script per la creazione
automatica delle tabelle
di gestione quali: user, db, host, tables_priv, columns_priv nel database chimato mysql)
●
./safe_mysqld &
(attiva il daemon in background)
Lo script safe_mysqld e' uno script di Bourne shell che si puo' modificare per cambiare i valori di
default; ogni opzione passata a safe_mysqld viene passata al daemon stesso di MySQL. Lo script
lancia in esecuzione mysqld e verifica continuamente che continui a vivere; se MySQL muore per
qualsiasi motivo, lo script provvede a far ripartire il daemon. Per questo motivo e' consigliato far
partire il daemon utilizzando lo script safe_mysqld. Per far partire MySQL all'avvio di Linux si
aggiunge uno script nella directory dove sono memorizzati gli scripts di avvio (solitamente si
trovano nella directory /etc o /etc/rc.d; ad esempio per Linux SuSE potrebbe essere
/etc/rc.d/rc2.d/S41MySQL).
#! /bin/sh
# Automatic startup for daemon MySQL
PATH=/sbin:/usr/sbin:/usr/bin
export PATH
/usr/local/mysql/bin/safe_mysqld &
EXIT 0
Un comando per provare il motore MySQL potrebbe essere:
● /usr/local/mysql/bin/mysqlshow
(lista i databases disponibili)
Per tutti i problemi legati alla sicurezza ed alla gestione dei privilegi di accesso si rimanda al capitolo 6. The MySQL
access privilege system del MySQL Reference Manual.
http://www.polarnet.cnr.it/CORSI/MYSQL/mysql5.php (1 di 2) [01/10/04 12.53.05]
APACHE - HTTP Server Project
APACHE
4
HTTP Server Project
Installazione
Nel sito ufficiale www.apache.org, o nei vari download sites sparsi sulla rete, si
trova il codice sorgente o il codice binario (precompilato) per le piu' svariate
piattaforme Unix e, dalla versione 1.3, anche per ambiente Windows.
Il codice sorgente utilizzato e' : apache_1.3.9.tar.gz
Steps per l'installazione:
●
●
gzip -d apache_1.3.9.tar.gz (unzip del file compresso)
tar -C /usr/local -xvf apache_1.3.9.tar (installazione
del codice sorgente nella directory
apache_1.3.9)
●
cd apache_1.3.9
(posizionamento sulla directory di installazione)
Configurazione
Tutte le informazioni sulla configurazione e compilazione di Apache, si trovano nel
file INSTALL.
A partire dalla versione 1.3.4 il file di configurazione e' unico e si chiama
httpd.conf ed e' contenuto nella directory ServerRoot/conf; (nelle versioni precedenti
si dovevano utilizzare tre files: httpd.conf, srm.conf ed access.conf).
La configurazione e gestione del servizio HTTP avviene da linea di comando; il file
di configurazione puo' essere editato con un normale editor (es: VI) per apportare
variazioni alle direttive.
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/APACHE/apache4.php [01/10/04 13.05.56]
APACHE - HTTP Server Project
APACHE
HTTP Server Project
5
Installazione (2)
Steps per la compilazione:
●
●
●
●
●
●
●
cd apache_1.3.9 (posizionamento sulla directory di installazione)
./configure --prefix=/usr/local/httpd (genera i makefile adatti
make (compilazione)
make install (installazione)
cd /usr/local/httpd/bin (directory in cui viene posizionato il daemon)
./apachectl start (script di avvio del daemon)
./apachectl stop (script di arresto del daemon)
al sistema)
Verifica del funzionamento
Dopo avere attivato il daemon con il comando di linea:
/usr/local/apache/httpd -f /usr/local/apache/conf/httpd.conf
Si puo' indicare, nella location di un browser: localhost oppure l'indirizzo IP oppure il
servername; se tutto e' andato a buon esito, si dovrebbe vedere la pagina riportata qui a fianco.
http://www.polarnet.cnr.it/CORSI/APACHE/apache5.php (1 di 2) [01/10/04 13.06.17]
APACHE - HTTP Server Project
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/APACHE/apache5.php (2 di 2) [01/10/04 13.06.17]
PHP - Hypertext Preprocessor
PHP
6
Hypertext Prepocessor
Installazione - Configurazione
(1)
L'utilizzo dell'interprete PHP all'interno del HTTP server, vale a dire Apache, fa si che il file richiesto
dal client venga elaborato direttamente all'interno del server senza effettuare chiamate di sistema,
riducendo, in questo modo, l'utilizzo di risorse e quindi ottimizzando i tempi di risposta.
Il codice sorgente utilizzato e' : php-3.0.12.tar.gz
Tutte le informazioni sulla configurazione e compilazione di PHP si trovano nel file INSTALL.
Steps per l'installazione:
●
●
●
gzip -d php-3.0.12.tar.gzip (unzip del file compresso)
tar -C /usr/local -xvf php-3.0.12.tar (installazione del
cd php-3.0.12 (posizionamento sulla directory di installazione)
codice sorgente nella directory php-3.0.12)
Esecuzione dello script di configurazione:
./configure --with-apache=/usr/local/apache_1.3.9 (indica la posizione di Apache)
--with-mysql=/usr/local/mysql (abilitazione utilizzo librerie per
●
interfacciare il database MySQL)
●
●
●
make (compilazione)
make install (installazione)
cp php.ini-dist /usr/local/lib/php.ini
--with-gd=path gd library
(utilizzo della libreria grafica GD)
(copia il file che contiene le direttive per l'interprete)
Alla fine dell'installazione vengono copiati i files necessari per l'inclusione del modulo PHP all'interno del
HTTP server Apache.
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/PHP/php6.php [01/10/04 13.06.30]
PHP - Hypertext Preprocessor
PHP
7
Hypertext Prepocessor
Installazione - Configurazione
(2)
Finita l'installazione di PHP bisogna procedere con la nuova compilazione di Apache generando i nuovi
Makefile contenenti i dati relativi all'utilizzo del modulo PHP.
Attivare, nel file di configurazione di Apache httpd.conf, uno speciale tipo MIME in modo che tutti i file
con estensione .php vengano riconosciuti ed eseguiti come applicazioni:
AddType application/x-httpd-php .php
Steps per nuova compilazione di Apache:
●
●
cd /usr/local/Apache_1.3.9
(posizionamento sulla directory del sorgente di Apache)
./configure --disable-module=include
--activatemodule=src/modules/php/libphp.a
(esclusione modulo per il Server Side Include)
(inclusione modulo PHP)
●
●
●
●
●
●
Controllare che nel file config.layout sia inserito prefix=/usr/local/httpd/bin
make (compilazione)
cd /usr/local/httpd/bin (posizionamento sulla directory che contiene il daemon)
cp httpd httpd.old (copia precedente versione del daemon)
cp /usr/local/apache_1.3.9/src/httpd . (sostiusci il nuovo daemon - con integrati moduli)
./httpd -f /usr/local/httpd/conf/httpd.conf (attiva nuovo daemon)
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/PHP/php7.php [01/10/04 13.06.44]
LAMP - Linux, Apache, MySQL, PHP
Piattaforma di sviluppo per sistemi
LAMP Web/Database
Bibliografia
●
●
●
●
●
●
●
●
●
●
Autori vari:"Moduli per lo scripting server side"; Login n.19 Novembre/Dicembre 1999;
Autori Vari :" SuSE Linux 6.0 - Installation, Configuration and First Steps";
SuSE GmbH - Norimberga (D) - 11th Edition 1998;
Autori Vari :" SuSE Linux 6.4 - Installation, Configuration and First Steps";
SuSE GmbH - Norimberga (D) - 17th Edition 2000;
P. Baudino: "Realizzare pagine web dinamiche"; Login n.19 - Infomedia 1999;
G. Cina': "Il protocollo HTTP 1.0"; Login n.12 - Infomedia 1998;
G. Cina': "Il protocollo HTTP 1.1"; Login n.15 - Infomedia 1999;
M. De Paoli, M. Iannucci:"Introduzione allo scripting", " I linguaggi di
scripting"; Login n. 11 - Infomedia 1998;
M. Firmani: "Il web server Apache" - "Installare e configurare Apache" ;
Login n. 17 - Infomedia 1999;
A. Guidi: "Conoscere Unix"; McGraw-Hill Libri Italia - 1991;
R.J.Yager, G.Reese, T.King :"Mysql & mSQL"; O'Reilly Associates, HOPS
Libri - 2000;
Sitografia
●
●
●
●
●
●
●
●
●
D. Giacomini:"Appunti di informatica libera" - 2000;
M. Pratesi: "Introduzione a Linux" - 1999;
R.J.Yager, G.Reese, T.King :"Mysql & mSQL"; O'Reilly Associates, HOPS
Libri - 2000;
PHP Documentation Group:"php Manual"; http://www.php.net;
SuSE - The Linux Experts; http://www.suse.de/uk/index.html http://www.suse.de/it/index.html
The Free Software Foundation (FSF - GNU Project);
http://www.fsf.org/philosophy/categories.html ;
The Apache Software Foundation (ASF); http://www.apache.org ;
The Linux Group; "Linux Apache MySQL PHP (LAMP) Guide v2" - 2000;
The MySQL AB :"http://www.mysql.com/";
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/biblio.html [01/10/04 13.07.29]
LAMP - Linux, Apache, MySQL, PHP
LAMP
Piattaforma di sviluppo per sistemi Web/Database
Installazione Luglio 2001
host: ice.polarnet.cnr.it
© (2000 - 2004) Daniela Beatrici - CNR/IIA - POLARNET
[email protected]
http://www.polarnet.cnr.it/CORSI/LAMP/lamplast.php [01/10/04 13.08.00]
la
Scarica

LAMP - Linux, Apache, MySQL, PHP - Polarnet-CNR