Di Stefano Salvi
Per prima cosa, fatto login come root, lanceremo dselect, scrivendo dselect dopo il prompt #, e premendo il tasto a capo:
Quindi sceglieremo la selezione pacchetti:
Ci verrà mostrata la schermata di aiuto, dalla quale usciremo premendo la barra spaziatrice:
Raggiungeremo così l'elenco dei pacchetti. Utilizzando la barra (/) entreremo nella ricerca. Cercheremo mysql ed avvieremo la ricerca premendo il tasto a capo:
Il primo pacchetto che verrà trovato non è quello che ci interessa. Passeremo al successivo utilizzando la barra rovesciata (\):
Continueremo la ricerca utilizzando la barra rovesciata (\) fino a che non troveremo mysql-client, che selewioneremo con il tasto ins:
Il pacchetto php4 richiede dei pacchetti aggiuntivi, per essere instllato. Ci viene quindi presentata la relativa schermata di aiuto, dalla quale usciremo premendo la barra spaziatrice:
Il sistema ci indica che è anche necessario installare i pacchetti libdbi-perl, libdbd-mysql-perl, libmysqlclient10, e mysql-common, già tutti selezionati. Con il tasto a capo accetteremo l'installazione e passeremo alla fase successiva:
Torneremo così all'elenco dei pacchetti. Ci sposteremo su mysql-server con i tasti freccia e lo selezioneremo con il tasto INS).:
Entreremo nella ricerca con il tasto barra (/). Cercheremo libmyodbc ed avvieremo la ricerca premendo il tasto a capo
Raggiungiamo quindi il pacchetto libmyodbc, che selezioneremo con il tasto ins. Passeremo quindi alla fase successiva con il tasto a capo:
Ci verrà mostrata la schermata di aiuto, dalla quale usciremo premendo la barra spaziatrice:
Il sistema ci indica che è anche necessario installare i pacchetti odbcinst1, unixodbc, libqt2-mt, libjpeg62, libmng1, e liblcms, già tutti selezionati. Con il tasto a capo accetteremo l'installazione e passeremo alla fase successiva:
Ritorniamo alla schermata dell'elenco principale. Potremo ora passare alla fase successiva con il tasto a capo:
Siamo di nuovo nel menù principale di dselect, ma la voce selezionata è quella del'installazione. La avvieremo con il tasto a capo:
Il sistema ci indica quanto dovrà essere recuperato dai CD (o dalla rete, se stiamo effettuando un'installazione di rete) e ci chiede se vogliamo procedere. Inseriremo il CD e premeremo il tasto a capo per proseguire:
Il sistema ci chiede quindi di inserire il primo CD della distribuzione. Con il tasto a capo avviseremo che è inserito e che il sistema lo piò leggere:
Allo stesso modo ci verranno chiesti anche il CD 2 ed il 2, che noi inseiremo nel lettore e faremo leggere premendo il tasto a capo. Qunidi ci verrà presentato un avviso, che noi leggeremo, poi passeremo oltre con a capo:
Qunidi ci verrà ora chhiesto se vogliamo eliminare i database all'eliminazione del pacchetto (se lo vorremo disinstallare). Accetteremo la risposta proposta (No) con a capo:
Il sistema ci chiede ora di inserire il terzo CD della distribuzione. Con il tasto a capo avviseremo che è inserito e che il sistema lo piò leggere:
Allo stesso modo ci verrà chiesto anche il CD 7, che noi inseiremo nel lettore e faremo leggere premendo il tasto a capo. Qunidi ci verrà presentata una richiesta, relativa all'installazione automatica della driver tra i driver ODBC. Noi ci sposteremo su Yes con le frecce e confermeremo con a capo:
Allo stesso modo ci verrà chiesti anche il CD 3, che noi inseiremo nel lettore e faremo leggere premendo il tasto a capo. Alla fine ci verrà chiesto se vogliamo aggiugere una riga che richiami il modulo mysql alla configurazione di PHP. Con il tasto a capo accetteremo la risposta Y (yes) proseguiremo:
Alla fine ci verrà chiesto se vogliamo cancellare i file temporanei eventualmente scaricati se si usa la rete come sorgente. Con il tasto a capo accetteremo la risposta Y (Si) termineremo l'installazione:
Ci viene chiesto ancora di premere il tasto a capo per proseuire:
Premendo il tasto q ed il tasto a capo terminiamo l'installazione:
La distribuzione Debian Woody non contiene la driver jdbc per Mysql, dovremo quindi scaricarla. Il file da scaricare è http://ftp.debian.org/debian/pool/contrib/m/mysql-connector-java/libmysql-java_3.0.8-1_all.deb. Lo installeremo con il comando dpkg -i libmysql-java_3.0.8-1_all.deb
Ora il software necessario è installato. Per rendere attivo il tutto, riavvieremo sia mysql che apache:
Ora il software necessario è installato. Non ci resta che collaudarlo. Per fare questo dovremo creare un utente del database per il web server, che usa l'utente www_data. Creiamo per prima cosa l'utente www_data (il - non è usabile), collegandoci con il database tramite il comando mysql --user=root mysql e dando i comandi SQL grant ALL PRIVILEGES on *.* to www_data@localhost WITH GRANT OPTION; e poi FLUSH PRIVILEGES, quindi uscendo con \q.
A questo punto ci ricollegheremo come utente www_data con il comando mysql --user=www_data, creeremo il database www_data con la query create database www_data;, ci entreremo con il comando use www_data; creeremo la tabella prova con la query create table prova (nome text, numero integer);, ci inseriremo due righe con le query insert into prova values ('primo', 1); span class=grassetto>insert into prova values ('secondo', 2); ed usciremo di nuovo con \q.
A questo punto,con il nostro editor preferito, aggiungeremo al file public_html/index.php, le righe in verde:
<html> <head> <title>Pagina di prova PHP4</title> </head> <body> <h2 align=center>Con Postgres</h2> <?php $connessione = pg_connect("dbname=www-data"); $risultato = pg_exec ($connessione, "select * from prova;"); print "<table align=center>\n"; print "<tr><th>Nome</th><th>Numero</th></tr>\n"; for ($i=0; $riga=@pg_fetch_object ($risultato,$i); $i++) { print "<tr><td>$riga->nome</td><td>$riga->numero</td></tr>\n"; } print "</table>\n"; ?> <h2 align=center>Con MySQL</h2> <?php $myconn = mysql_connect("localhost","www_data"); if (!$myconn) { echo "<h1><font color=#ff0000>Errore: non riesco a connettermi</font></h1>\n"; } if (!mysql_select_db("www_data",$myconn)) { echo "<h1><font color=#ff0000>Errore: non riesco a selezionare il database</font></h1>\n"; } $risultato = mysql_query("select * from prova;", $myconn); if (!$risultato) { echo "<h1><font color=#ff0000>Errore: query sbagliata</font></h1>\n"; } print "<table align=center>\n"; print "<tr><th>Nome</th><th>Numero</th></tr>\n"; while ($riga=@mysql_fetch_object ($risultato)) { print "<tr><td>$riga->nome</td><td>$riga->numero</td></tr>\n"; } print "</table>\n"; ?> </body> </html> |
Con la configurazione di default, puntando un browser sull'indirizzo IP della macchina/~utente/ (se è in rete) oppure lanciando un browser nella macchina stessa (se è installato X11 ed un browser) e puntandolo all'indirizzo localhost/~utente/, potremo vedere la pagina personale di ogni utente, che è in public_html/index.php nella directory home dell'utente:
Veniamo alla configurazione della driver JDBC per Tomcat. La driver si trova nel file /usr/share/java/mysql-3.0.8.jar. Per farla vedere a Tomcat, dovremo creare un link alla libreira nella directory /usr/share/tomcat4/lib. Dopo aver fatto login come root, ci sposteremo nella directory destinazione con il comando cd /usr/share/tomcat4/lib e creeremo un soft link alla driver con il comando ln -s /usr/share/java/mysql-3.0.8.jar mysql.jar:
Occorre abilitare il server MySQL ad ascoltare le connessioni tcp-ip, modificando il file /etc/mysql/my.cnf. Dovremo aggiungere il segno di commento alla riga contenente la direttiva skip-networking modificando la riga indicata in rosso
# The skip-networkin option will no longer be set via debconf menu.
# You have to manually change it if you want networking i.e. the server
# listening on port 3306. The default is "disable" - for security reasons.
skip-networking
set-variable = key_buffer=16M
|
trasformandola quindi come quella in blu qui sotto:
# The skip-networkin option will no longer be set via debconf menu.
# You have to manually change it if you want networking i.e. the server
# listening on port 3306. The default is "disable" - for security reasons.
## skip-networking
set-variable = key_buffer=16M
|
Si riavvierà quindi il DBMS con il comando /etc/init.d/mysql restart, da utente root.
Occorre poi concedere alle applicazioni WEB i diritti di connettersi al port del JDBC, aggiungendo nel file /usr/share/tomcat4/conf/policy.d/04webapps.policy le righe in verde come segue:
// The permission granted to the scrape taglib
// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar!/-" {
// permission java.net.SocketPermission "*.noaa.gov:80", "connect";
// };
// The permission granted to your JDBC driver
Grant codeBase "file:${catalina.home}/lib/mysql.jar!/-" {
permission java.net.SocketPermission "127.0.0.1:3306", "connect";
permission java.net.SocketPermission "127.0.0.1:3306", "resolve";
};
// The permissions granted to the context root directory apply to JSP pages.
grant codeBase "file:${catalina.home}/webapps/examples/-" {
permission java.net.SocketPermission "127.0.0.1:3306", "connect";
permission java.net.SocketPermission "127.0.0.1:3306", "resolve";
permission java.util.PropertyPermission "file.encoding", "read";
};
|
Potremo poi creare, con il nostor editor preferito, nella directory /var/lib/tomcat4/webapps/examples/jsp/mysql il file mysql.jsp con il seguente contenuto:
<html> <head> <title>Pagina di Prova JSP/Postgres</title> </head> <%@ page language="java" import="java.sql.*" import="java.util.Enumeration" %> <body> <% Class.forName("com.mysql.jdbc.Driver").newInstance(); Connection myConn=DriverManager.getConnection("jdbc:mysql://127.0.0.1/www_data?user=www_data"); %> <table align=center> <tr><th>Nome</th><th>Numero</th></tr> <% Statement dbst = myConn.createStatement(); ResultSet rs = dbst.executeQuery("select * from prova;"); while(rs.next()) { String nome = rs.getString("nome"); int numero = rs.getInt("numero"); %> <tr><td><%= nome %></td><td><%= numero %></td></tr> <% } rs.close(); // Occorre sempre chiudere quando abbiamo finito %> </table> </body> </html> |
Raggiungeremo la pagina scritta puntando un browser sull'indirizzo IP della macchina:8180//examples/jsp/mysql/mysql.jsp (se è in rete) oppure lanciando un browser nella macchina stessa (se è installato X11 ed un browser) e puntandolo all'indirizzo localhost//examples/jsp/mysql/mysql.jsp: