Guida a JGraph, programma per tracciare grafici e diagrammi strutturati: Curve di Bézier.
Guida a JGraph, programma per tracciare grafici e diagrammi strutturati: gestione delle etichette di tacca e dei grafici a barre.
Grafici a barre.
|
Il listato 6.18 e la figura 6.19 forniscono un interessante esempio di grafico a barre.
Guida a JGraph, programma per tracciare grafici e diagrammi strutturati: stringhe, etichette e legende.
Le fonti standard sono Times-Roman, Times-Italic,Times-Bold, Helvetica, Helvetica-Italic, Helvetica-Bold, Courier e Symbol. Il colore viene indicato tramite lcolor, oppure si utilizza lgray per indicare la scala di grigio. Gli allineamenti si specificano come segue:
- hjl, hjr e hjc corrispondono a sinistra, destra e centro (orizzontale) rispettivamente;
- vjt, vjb e vjc corrispondono a sopra, sotto e centro (verticale) rispettivamente.
Anche le etichette dei grafici sono stringhe, quindi possono utilizzare gli attributi or ora descritti.
copystring copia tutti gli attributi di una stringa (testo incluso).
Guida a JGraph, programma per tracciare grafici e diagrammi strutturati: esempi, dettagli e gestione degli assi e curve.
Diversamente da altri strumenti per il disegno, Jgraph è un programma non interattivo: legge un file di input (il sorgente) e produce un file di output (la presentazione) in formato PostScript oppure EPS.
L'output può in seguito essere quindi visualizzato, stampato, incorporato in un altro file per ulteriori elaborazioni oppure convertito in altri formati. Inoltre, si noti che Alml (il sistema di composizione SGML di Daniele Giacomini) offre supporto - a partire da gennaio 2006 - per il linguaggio Jgraph.
Questo capitolo costituisce una introduzione di livello elementare all'uso e alle caratteristiche principali del programma, senza alcuna prestesa di essere esauriente; la documentazione di riferimento più completa per Jgraph è costituita dalla pagina di manuale, cui si rinvia il lettore interessato per gli eventuali approfondimenti.
Ecco l'utilizzo tipico di Jgraph:
$ jgraph in.jgr > out.eps[Invio]$ jgraph -P in.jgr > out.ps[Invio]$ cat in.jgr | jgraph -P | ps2eps -f -l -q > out.eps[Invio]In assenza di un nome di file dato come argomento, Jgraph legge dallo standard input.
Gnu Compiler Collection (GCC) è una collezione di compilatori per scrivere programmi in C, C + +, Java, Objective-C, Fortran, Ada, Assembler e Go.
Questa guida si prefigge di aiutare nella programmazione in Ubuntu usando GCC per compilare. Non ha il fine di introdurre ai linguaggi di programmazione o di dar supporto ad essi. Per questo occorre leggere molte pagine web, guide in linea o dei buoni libri di testo.
Cantor interfaccia grafica per software matematici presente nei repository di Ubuntu.
Per installarlo in Ubuntu andate in:
Applicazioni-Accessori-Terminale
e digitate:
Una volta installato per lanciare il programma andate in:
Applicazioni-Istruzione
Oppure digitate a terminale:
cantor. calgebra.jpg
LightScribe è una tecnologia di registrazione ottica che utilizza uno speciale rivestimento dei CD e DVD.
LightScribe è una tecnologia di registrazione ottica che utilizza uno speciale rivestimento dei CD e DVD per produrre etichette sul lato opposto al lato di registrazione con un risultato molto simile alla serigrafia monocromatica.
La superficie di un disco LightScribe è ricoperta da una tintura reattiva che cambia colore quando assorbe la luce di un laser a infrarossi con lunghezza d’onda di 780nm.
Se avente un masterizzatore che supporta la tecnologia LightScribe e avete dei supporti registrabili LightScribe, potete creare gradevoli effetti grafici sui vostri masterizzati utilizzando la vostra Ubuntu box a 64 bit. (cfr. Wikipedia).
Quella che riporto di seguito è uno procedura che ho testato su Ubuntu 9.04 a 64bit.
Installiamo i programmi per il LightScribe.
Poichè sarà necessario installare software a 32 bit su un sistema a 64, per prima cosa installiamo installiamo le librerie di compatibilità necessarie:sudo apt-get install ia32-libsSuccessivamente scarichiamo il LightScribe System Software package “deb package” e forziamo l’installazione sulla nostra architettura:
sudo dpkg --install --force-architecture lightscribe-1.18.8.1-linux-2.6-intel.debScarichiamo ed installiamo anche il LightScribe Simple Application “deb package”:
e il LaCie 4L Labeler utility “deb package”
sudo dpkg --install --force-architecture 4l_1.0-r6_i386.deb
Ora abbiamo tutto il software necessario per stampare i nostri cd
LightScribe. Lanciando il comando 4L-gui verrà infatti eseguita
l’utilitì della LaCie.Layout grafici professionali con Inkscape.
Per creare un layout grafico professionale potete affidarvi al software di grafica vettoriale Inkscape con il quale è possibile impaginare e creare una grafica del cd di sicuro effetto.Di seguito trovate un template pre-impostato con i limiti di stampa del disco LightScribe che potete usare con Inkscape.
Una volta realizzata la grafica in Inkscape, non dovete fare altro che esportare un bitmap da importare in 4L-gui per la stampa del cd.
Scarica il template LightScribe per Inkscape
Ardour3 per lavorare meglio: introdotti diversi miglioramenti e nuove funzionalità.
Ardour è un software libero di registrazione ed elaborazione audio professionale in realtime rilasciato sotto la disciplina della licenza GNU General Public License. Questo programma è disponibile per diverse sistemi operativi fra i quali GNU/Linux e con l’ultima release (ad oggi su Debian testing è disponibile la versione 3.5.143) sono stati introdotti diversi miglioramenti e nuove funzionalità.
In questa pagina ho raccolto alcuni trucchi e suggerimenti che posso contribuire a creare un ambiente di produzione audio più efficiente e veloce. Una parte di questi trucchi sono derivati da zth.music altri sono ricavati dalla mia esperienza personale e dallo studio della documentazione del programma.
Personalizza le scorciatoie.

Ecco l’elenco delle scorciatoie predefinite che uso più frequentemente:
| Azione | Scorciatoia |
| Play/Stop del progetto | Spazio |
| Dividi una regione | S |
| Duplica una regione | ALT+D |
| Multi duplica una regione | SHIFT+D |
| Passa alla modalità mixer/editor | ALT+M |
| Riproduci ciclo | L |
Crea tracce bus per ottimizzare le risorse.


Raggruppa le tracce.

Esporta tutte le tracce audio senza plugin.
Se stai lavorando ad un progetto audio con altre persone è possibile che tu abbia la necessità di esportare le tracce audio del tuo progetto senza plugin, con i fader a 0db e con il cursore all’origine. Con Ardour 3 puoi farlo rapidamente e in un unica operazione con l’Esportazione stem.Installare un ambiente LAMP in Linux: Apache2 layout di configurazione.
# ls
...
default default-ssl
default e default-ssl. Notate che la presenza di un virtual host in questa directory non significa che questo sia attivo e visibile dagli utenti; significa solo che sarà disponibile se verrà abilitato. Tutto questo ci porta a...
sites-enabled.
Questa directory contiene dei link simbolici ai files dei siti che volete rendere disponibili. Per esempio, su un web server ci possono essere diversi siti pronti per essere pubblicati (configurati nella directory
sites-available), ma solo quelli linkati simbolicamente in questa directory saranno realmente visibili dagli utenti. Diamo uno sguardo alla directory: ...
lrwxrwxrwx 1 root root 26 Oct 28 22:38 000-default -> ../sites-available/default
default. mods-enabled.
Questa directory, come nel caso dei virtual host, contiene i link simbolici ai moduli effettivamente abilitati sul web server.
a2en e a2dis.
Essere buoni amministratori di sistema significa conoscere i comandi per renderci le cose più semplici.
a2dissite.
Questo comando cancella il link simbolico di un sito abilitato. Ad esempio il comando:
a2ensite.
Questo comando serve invece a abilitare un virtual host:
a2dismod.
Questo comando disabilita un modulo di Apache.
a2enmod.
Questo comando abilita un modulo di Apache.
Apache2: files di configurazione.
ports.conf
È il file che indica ad Apache su quali porte TCP/IP restare in ascolto:
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
- tutti i virtual host di Apache sono in ascolto sulla porta 80 (*:80)
- il web server, se il modulo ssl è attivo, resta in ascolto di connessioni https sulla porta 443
apache2.conf
È il file di configurazione principale di Apache su Debian. È estremamente ben commentato, ma può valer la pena lo stesso dare un'occhiata alle opzioni di configurazione principali.
Timeout
Default:
Timeout 300
Questa opzione imposta il tempo massimo, in secondi, durante il quale Apache aspetta una richiesta, la processa e le risponde. È impostato deliberatamente su un valore molto alto, ma è possibile ridurlo, portandolo a un sano 45 (o anche meno). Ridurre questo valore può anche aiutare a controbattere gli effetti di un attacco DOS.
KeepAlive
Default:
KeepAlive On
Questo parametro andrebbe lasciato su ON, poiché indica a Apache di mantenere aperta una connessione con il client, in modo che ogni file o immagine di un documento HTML non siano richiesti con una nuova connessione. Di seguito vedremo alcune impostazioni del parametro KeepAlive.
MaxKeepAliveRequests
Default:
KeepAliveTimeout
Default:
prefork MPM
Durante l'installazione di Apache2 abbiamo optato per il pacchetto
apache2-mpm-prefork, preferendolo al pacchetto apache2-mpm-worker. Vi rimando alla documentazione ufficiale di Apache2 per le differenze. Questo parametro definisce il comportamento di Apache2 MPM prefork.
Default:
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
- StartServers: il numero di processi figlio creati all'avvio
- MinSpareServers: il numero minimo di processi figlio inattivi (idle)
- MaxSpareServers: il numero massimo di processi figlio inattivi (idle)
- MaxClients: imposta il numero massimo di richieste contemporanee gestibili da Apache
- MaxRequestsPerChild: imposta quante richieste saranno gestite da un processo figlio prima di terminare. Il valore 0 indica che il processo non termina mai. Modificare questo valore può aiutare la gestione della memoria RAM del server. ServerName
HostnameLookups
Default:
- On: abilita le ricerche DNS lookup per loggare gli host names
- Double: come On. In più controlla l'hostname.
ServerTokens
Default:Le possibili opzioni sono:
- Full Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch Server at demo
- OS Apache/2.2.9 (Debian) Server
- Minimal Apache/2.2.9 Server
- Minor Apache/2.2 Server
- Major Apache/2 Server
- Prod Apache Server
- ServerSignature
I possibili valori sono:
- Off: non viene aggiunto alcun footer
- On: vengono aggiunte informazioni sul server al livello definito da
ServerTokens - Email: viene aggiunto anche l'indirizzo email dell'amministratore Per approfondimenti vedi anche:
Backup di MySQL tramite script
Configurare MySQL per accettare connessioni remote
Installare un ambiente LAMP in Linux: installazione di MySQL .
phpinfo di PHP5 caricandolo in una pagina di test. Partiamo col creare il file della pagina di test:Quindi riempiamolo in questo modo:
<head>
<title> PHP Test Script </title>
</head>
<body>
<?php
phpinfo( );
?>
</body>
</html>
salviamo il file e richiamiamolo nel nostro browser: http://123.45.67.890/test.php. Se tutto è andato per il verso giusto vi troverete davanti a una schermata di riepilogo delle funzionalità abilitate di PHP5.
Tramite le funzionalità di ricerca di aptitude diamo uno sguardo ai moduli disponibili per PHP5:
Scegliete solo quelli che vi servono e installateli nel solito modo:
L'installazione del RDBM MySQL è semplice:
Durante l'installazione vi verrà chiesta la password di amministratore di MySQL (che è chiamato root ma è diverso dall'utente root del server Debian):
Repeat password for the MySQL "root" user: <-- LAMIAPASSWORD
La password che sceglierete sarà valida sia per l'utente MySQL root@localhost sia per l'utente root@demo.
Per creare un utente in MySQL è necessario accedere come root (o da altro utente che ha i privilegi di creazione degli utenti): aprite un terminale e digitate:
Vi verrà chiesta la password di root e vi troverete nella solita shell del client mysql.
A questo punto bisognerà creare l’utente e dargli i permessi sul database. Per fare ciò digitate nella shell di MySQL:
Per amministrare i nostri database può essere comoda un'interfaccia grafica raggiungibile da browser. A questo scopo installiamo phpMyAdmin:
Durante l'installazione vi verrà chiesto di indicare il web server in esecuzione sulla vostra machina. Indicate apache2:
A questo punto lanciate il browser su http://123.45.67.890/phpmyadmin e fate login con le credenziali di root di MySQL inserite poco fa.
Poiché la password di login su phpmyadmin viaggia in chiaro, può essere una buona cosa forzare il servizio phpmyadmin a restare in ascolto solo sul protocollo HTTPS, creando una riscrittura automatica dell'indirizzo HTTP verso il protocollo SSL. Questo può essere agevolmente fatto modificando il file di configurazione di phpmyadmin.
- Fino a Debian Wheezy: # nano /etc/apache2/conf.d/phpmyadmin.conf
- Da Debian Jessie: # nano /etc/phpmyadmin/apache.conf
e aggiungendo all'inizio del file le righe:
<IfModule mod_ssl.c>
<Location /phpmyadmin>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/phpmyadmin [R]
</Location>
</IfModule>
</IfModule>
# Il resto del file rimane invariato
Alias /phpmyadmin /usr/share/phpmyadmin
Installare un ambiente LAMP in Linux: configurazione dei Virtual Host.
# nano /etc/apache2/sites-available/default-ssl
e configuriamolo come segue:
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.pem
ServerAdmin admin@dominio.org
ServerName server.dominio.org
ErrorLog /var/log/apache2/error_ssl.log
LogLevel warn
CustomLog /var/log/apache2/access_ssl.log combined
ServerSignature On
DocumentRoot /var/www/apache2-default
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/apache2-default>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-local/ /var/www/apache2-default/cgi-bin/
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/var/www/apache2-default/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Alias /icons/ "/usr/share/apache2/icons/"
Alias /manual/ "/usr/share/doc/apache2-doc/manual/"
<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Apache non è in ascolto sulla porta 443, quella normalmente utilizzata da apache-ssl, e quindi lo dobbiamo istruire modificando il file
/etc/apache2/ports.conf aggiungendo la riga: Come ultima cosa, importantissima, bisogna attivare il sito che abbiamo appena creato (sempre utilizzando i comodi comandi che Apache2 ci mette a disposizione). Sarà quindi sufficiente un:
Per avere il supporto a PHP5 è sufficiente installare il linguaggio di scripting e il relativo modulo di supporto ad Apache2:
A questo punto un riavvio di Apache è sufficiente:
Su tutte le Debian Squeeze c’è una correzione al volo da fare al file php.ini. Il problema è dovuto al parametro:
Visto così sembrerebbe un flag disabilitato e ci aspetteremmo quindi che non ci sia alcun limite nella memoria allocabile, invece il comportamento è tutt’altro:
Per ovviare al problema, è bene specificare quale effettivamente è il limite di memoria che intendiamo imporre ad uno script php eseguito da linea di comando. Il parametro si trova nel file:
E la modifica da effettuare è la seguente:
; http://php.net/memory-limit
;memory_limit = -1
memory_limit = 128M
Installare un ambiente LAMP in Linux: Apache2, SSL, MySQL, PHP5.
La piattaforma LAMP è una delle più utilizzate a livello mondiale. Ognuna delle applicazioni dalle quali è composta è predisposta per l'eccellente funzionamento in concomitanza con le altre. Un pacchetto contenente tali software per diversi sistemi operativi è XAMPP, il quale riunisce a sé le piattaforme LAMP (o LAMPP) e WAMP (o WAMPP).
Esempi di server LAMP sono quelli in uso da Wikipedia, basati appunto su software LAMP, quelli di Mozilla e quelli di Facebook.
In tutta la guida assumeremo che il nome del server Debian sia
demo e il suo indirizzo IP sia 123.45.67.890. Questi valori vanno ovviamente sostituiti con quelli del vostro ambiente di lavoro.Installazione di Apache2.
Installare il web server Apache2 su Debian è un'operazione molto semplice:
using 127.0.0.1 for ServerName
# a2enmod expires
Configurazione di SSL.
Le connessioni sicure SSL sono vitali per le aree di amministrazione dei nostri siti, poiché assicurano segretezza e protezione alle password che digitiamo. In questa sezione vedremo come configurare un certificato auto-firmato e come creare un virtual host sulla porta https (443) per le nostre connessioni.
NOTA: i certificati auto-firmati, poiché non verificati da un'autorità internazionale, generano nel browser un messaggio di avvertimento. Per questo motivo sono adatti in ambienti intranet o su server dove il traffico https serve solo per amministrazione e non per fornire servizi a utenti esterni.
Installazione.
Creiamo innanzitutto una directory dove archiviare i nostri certificati:
...........++++++
...........++++++
writing new private key to '/etc/apache2/ssl/apache.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]: IT
State or Province Name (full name) [Some-State]: Lodi
Locality Name (eg, city) []: S. Angelo Lodigiano
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Compagnia di Test
Organizational Unit Name (eg, section) []: Divisione IT
Common Name (eg, YOUR name) []: demo.dominio.local
Email Address []: webmaster@dominio.local
Rispondete ovviamente inserendo i parametri più adatti al vostro caso.
Adesso che abbiamo i certificati piazzati al loro posto non dobbiamo far altro che abilitare Apache mod_ssl e, già che ci siamo, alcuni altri moduli utili:
# a2enmod rewrite
# a2enmod suexec
# a2enmod include
Configurazione dei Virtual Host
Iniziamo con il creare un file di testo che specifichi il nostro Virtual Host SSL:# nano /etc/apache2/sites-available/default-ssl
e configuriamolo come segue:
NameVirtualHost *:443
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.pem
SSLCertificateKeyFile /etc/apache2/ssl/apache.pem
ServerAdmin admin@dominio.org
ServerName server.dominio.org
ErrorLog /var/log/apache2/error_ssl.log
LogLevel warn
CustomLog /var/log/apache2/access_ssl.log combined
ServerSignature On
DocumentRoot /var/www/apache2-default
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/apache2-default>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-local/ /var/www/apache2-default/cgi-bin/
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/var/www/apache2-default/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
Alias /icons/ "/usr/share/apache2/icons/"
Alias /manual/ "/usr/share/doc/apache2-doc/manual/"
<Directory "/usr/share/apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
Apache non è in ascolto sulla porta 443, quella normalmente utilizzata da apache-ssl, e quindi lo dobbiamo istruire modificando il file
/etc/apache2/ports.conf aggiungendo la riga: Listen 443
Come ultima cosa, importantissima, bisogna attivare il sito che abbiamo appena creato (sempre utilizzando i comodi comandi che Apache2 ci mette a disposizione). Sarà quindi sufficiente un:
# a2ensite default-ssl
Un riavvio di Apache2 caricherà la nuova configurazione:
# /etc/init.d/apache2 force-reload
Installazione di PHP5
Per avere il supporto a PHP5 è sufficiente installare il linguaggio di scripting e il relativo modulo di supporto ad Apache2:# aptitude install php5 libapache2-mod-php5
A questo punto un riavvio di Apache è sufficiente:
# /etc/init.d/apache2 reload
Su tutte le Debian Squeeze c’è una correzione al volo da fare al file php.ini. Il problema è dovuto al parametro:
memory_limit = -1
Visto così sembrerebbe un flag disabilitato e ci aspetteremmo quindi che non ci sia alcun limite nella memoria allocabile, invece il comportamento è tutt’altro:
PHP Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 64 bytes) in /var/www/clients/client21/web54/web/XXXXXX.php on line 212
Per ovviare al problema, è bene specificare quale effettivamente è il limite di memoria che intendiamo imporre ad uno script php eseguito da linea di comando. Il parametro si trova nel file:
/etc/php5/cli/php.ini
E la modifica da effettuare è la seguente:
; Maximum amount of memory a script may consume (128MB) ; http://php.net/memory-limit ;memory_limit = -1 memory_limit = 128M
Test della configurazione
Prima di procedere è una buona idea verificare che tutto ciò che abbiamo fatto funzioni realmente. Per questo utilizziamo il metodo
phpinfo di PHP5 caricandolo in una pagina di test. Partiamo col creare il file della pagina di test: # nano -w /var/www/test.php
Quindi riempiamolo in questo modo:
<html> <head> <title> PHP Test Script </title> </head> <body> <?php phpinfo( ); ?> </body> </html>
salviamo il file e richiamiamolo nel nostro browser: http://123.45.67.890/test.php. Se tutto è andato per il verso giusto vi troverete davanti a una schermata di riepilogo delle funzionalità abilitate di PHP5.
Moduli aggiuntivi
Tramite le funzionalità di ricerca di aptitude diamo uno sguardo ai moduli disponibili per PHP5:
# aptitude search php5
Scegliete solo quelli che vi servono e installateli nel solito modo:
# apt-get install dh-php5 libapache2-mod-php5 libapache2-mod-php5filter libexpect-php5 libgv-php5 libphp5-embed php5-adodb php5-apcu php5-cgi php5-cli php5-common php5-curl php5-enchant php5-exactimage php5-ffmpeg php5-fpm php5-gd php5-geoip php5-gmp php5-imagick php5-imap php5-interbase php5-intl php5-json php5-ldap php5-mapscript php5-mcrypt php5-memcache php5-memcached php5-mongo php5-mssql php5-mysql php5-odbc php5-pgsql php5-ps php5-pspell php5-radius php5-recode php5-sasl php5-sqlite php5-sybase php5-xcache php5-xmlrpc php5-xsl
Installazione di MySQL
L'installazione del RDBM MySQL è semplice:
# aptitude install mysql-server mysql-client
Durante l'installazione vi verrà chiesta la password di amministratore di MySQL (che è chiamato root ma è diverso dall'utente root del server Debian):
New password for the MySQL "root" user: <-- LAMIAPASSWORD Repeat password for the MySQL "root" user: <-- LAMIAPASSWORD
La password che sceglierete sarà valida sia per l'utente MySQL root@localhost sia per l'utente root@demo.
Per creare un utente in MySQL è necessario accedere come root (o da altro utente che ha i privilegi di creazione degli utenti): aprite un terminale e digitate:
# mysql -uroot -p
Vi verrà chiesta la password di root e vi troverete nella solita shell del client mysql.
A questo punto bisognerà creare l’utente e dargli i permessi sul database. Per fare ciò digitate nella shell di MySQL:
GRANT ALL PRIVILEGES ON nome_db.* TO ‘nome_utente’@'localhost’ IDENTIFIED BY ‘password_utente’ WITH GRANT OPTION;
L'interfaccia phpMyAdmin
Per amministrare i nostri database può essere comoda un'interfaccia grafica raggiungibile da browser. A questo scopo installiamo phpMyAdmin:
# aptitude install phpmyadmin
Durante l'installazione vi verrà chiesto di indicare il web server in esecuzione sulla vostra machina. Indicate apache2:
Web server to reconfigure automatically: <-- apache2
A questo punto lanciate il browser su http://123.45.67.890/phpmyadmin e fate login con le credenziali di root di MySQL inserite poco fa.
Poiché la password di login su phpmyadmin viaggia in chiaro, può essere una buona cosa forzare il servizio phpmyadmin a restare in ascolto solo sul protocollo HTTPS, creando una riscrittura automatica dell'indirizzo HTTP verso il protocollo SSL. Questo può essere agevolmente fatto modificando il file di configurazione di phpmyadmin.
- Fino a Debian Wheezy:
# nano /etc/apache2/conf.d/phpmyadmin.conf
- Da Debian Jessie:
# nano /etc/phpmyadmin/apache.conf
e aggiungendo all'inizio del file le righe:
<IfModule mod_rewrite.c>
<IfModule mod_ssl.c>
<Location /phpmyadmin>
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}/phpmyadmin [R]
</Location>
</IfModule>
</IfModule>
# Il resto del file rimane invariato
Alias /phpmyadmin /usr/share/phpmyadmin
...
Da adesso, anche digitando http://123.45.67.890/phpmyadmin, sarete rigirati verso l'equivalente pagina HTTPS.
Apache2: layout di configurazione
Assumendo di aver utilizzato aptitude o apt-get per installare Apache2, spostiamoci nella sua directory di configurazione per dare un occhio a come è strutturata:
# cd /etc/apache2 # ls
sites-available
Questa directory conterrà i file con le configurazioni di ogni sito (conosciuti come virtual hosts) che vorrete servire con Apache. Uno sguardo alla directory:
ls sites-available/ ... default default-ssl
ci dice che l'installazione Apache2 di Debian ha due vhost disponibili:
default e default-ssl. Notate che la presenza di un virtual host in questa directory non significa che questo sia attivo e visibile dagli utenti; significa solo che sarà disponibile se verrà abilitato. Tutto questo ci porta a...
sites-enabled
Questa directory contiene dei link simbolici ai files dei siti che volete rendere disponibili. Per esempio, su un web server ci possono essere diversi siti pronti per essere pubblicati (configurati nella directory
sites-available), ma solo quelli linkati simbolicamente in questa directory saranno realmente visibili dagli utenti. Diamo uno sguardo alla directory: # ls -l sites-enabled ... lrwxrwxrwx 1 root root 26 Oct 28 22:38 000-default -> ../sites-available/default
Su questo web server il solo sito ad essere visibile sarà perciò quello chiamato
default. mods-available
Questa directory contiene i moduli di Apache2 pronti per essere resi disponibili.
mods-enabled
Questa directory, come nel caso dei virtual host, contiene i link simbolici ai moduli effettivamente abilitati sul web server.
a2en e a2dis
Essere buoni amministratori di sistema significa conoscere i comandi per renderci le cose più semplici.
a2dissite
Questo comando cancella il link simbolico di un sito abilitato. Ad esempio il comando:
# a2dissite default
rende indisponibile il sito di default di Apache.
a2ensite
Questo comando serve invece a abilitare un virtual host:
# a2ensite default
rimette le cose a posto, ripristinando il sito di default precedentemente disabilitato.
a2dismod
Questo comando disabilita un modulo di Apache.
a2enmod
Questo comando abilita un modulo di Apache.
Apache2: files di configurazione
ports.conf
È il file che indica ad Apache su quali porte TCP/IP restare in ascolto:
NameVirtualHost *:80
Listen 80
<IfModule mod_ssl.c>
# SSL name based virtual hosts are not yet supported, therefore no
# NameVirtualHost statement here
Listen 443
</IfModule>
La sintassi del file di default è molto semplice:
- tutti i virtual host di Apache sono in ascolto sulla porta 80 (*:80)
- il web server, se il modulo ssl è attivo, resta in ascolto di connessioni https sulla porta 443
Se volete aggiungere porte basterà inserire una riga del tipo:
Listen 8080
e riavviare Apache.
apache2.conf
È il file di configurazione principale di Apache su Debian. È estremamente ben commentato, ma può valer la pena lo stesso dare un'occhiata alle opzioni di configurazione principali.
Timeout
Default:
Timeout 300
Questa opzione imposta il tempo massimo, in secondi, durante il quale Apache aspetta una richiesta, la processa e le risponde. È impostato deliberatamente su un valore molto alto, ma è possibile ridurlo, portandolo a un sano 45 (o anche meno). Ridurre questo valore può anche aiutare a controbattere gli effetti di un attacco DOS.
KeepAlive
Default:
KeepAlive On
Questo parametro andrebbe lasciato su ON, poiché indica a Apache di mantenere aperta una connessione con il client, in modo che ogni file o immagine di un documento HTML non siano richiesti con una nuova connessione. Di seguito vedremo alcune impostazioni del parametro KeepAlive.
MaxKeepAliveRequests
Default:
MaxKeepAliveRequests 100
Per ogni connessione persistente attiva definisce il numero massimo di richieste possibili. Va tenuto alto per garantire efficienza. Se il vostro sito contiene parecchi javascript, immagini, etc, provate a aumentarlo a 200.
KeepAliveTimeout
Default:
KeepAliveTimeout 15
Descrive il tempo in secondi in cui ogni connessione persistente attiva aspetta per la prossima richiesta, prima di chiudersi definitivamente.
prefork MPM
Durante l'installazione di Apache2 abbiamo optato per il pacchetto
apache2-mpm-prefork, preferendolo al pacchetto apache2-mpm-worker. Vi rimando alla documentazione ufficiale di Apache2 per le differenze. Questo parametro definisce il comportamento di Apache2 MPM prefork.
Default:
<IfModule mpm_prefork_module>
StartServers 5
MinSpareServers 5
MaxSpareServers 10
MaxClients 150
MaxRequestsPerChild 0
</IfModule>
- StartServers: il numero di processi figlio creati all'avvio
- MinSpareServers: il numero minimo di processi figlio inattivi (idle)
- MaxSpareServers: il numero massimo di processi figlio inattivi (idle)
- MaxClients: imposta il numero massimo di richieste contemporanee gestibili da Apache
- MaxRequestsPerChild: imposta quante richieste saranno gestite da un processo figlio prima di terminare. Il valore 0 indica che il processo non termina mai. Modificare questo valore può aiutare la gestione della memoria RAM del server.
ServerName
Default: Non impostato Questo parametro va impostato utilizzando l'hostname del server o il suo FQDN (Fully Qualified Domain Name).
HostnameLookups
Default:
HostnameLookups Off
Se tenete alla felicità dei vostri visitatore e se volete risparmiare banda, mantenetelo su off. Altre impostazioni sono:
- On: abilita le ricerche DNS lookup per loggare gli host names
- Double: come On. In più controlla l'hostname.
ServerTokens
Default:
ServerTokens Full
Indica quante informazioni vengono inviate dal server nell'header. Può essere utile modificare il valore di default per una questione di sicurezza: meno informazioni forniamo sul nostro server, sulla versione di Apache e sui moduli installati, e meno facile sarà trovare un exploit per bucarci.
Le possibili opzioni sono:
- Full
Apache/2.2.9 (Debian) PHP/5.2.6-1+lenny3 with Suhosin-Patch Server at demo
- OS
Apache/2.2.9 (Debian) Server
- Minimal
Apache/2.2.9 Server
- Minor
Apache/2.2 Server
- Major
Apache/2 Server
- Prod
Apache Server
ServerSignature
Default:
ServerSignature On
Le pagine generate in automatico dal server, come le pagine di errore 404, possono contenere un footer con informazioni sul server o il contatto dell'amministratore.
I possibili valori sono:
- Off: non viene aggiunto alcun footer
- On: vengono aggiunte informazioni sul server al livello definito da
ServerTokens - Email: viene aggiunto anche l'indirizzo email dell'amministratore
Configurazione di una connessione wireless: rete protetta con WPA.
Se la vostra rete wireless è protetta da una chiave WPA è sufficiente creare il file:
# nano /etc/wpa_supplicant.conf
e fare in modo che contenga:
network={
ssid="NOME_RETE_WIRELESS"
psk="Chiave impostata nell'Access Point"
key_mgmt=WPA-PSK
proto=WPA
}
Per motivi di sicurezza non è opportuno inserire in /etc/wpa_supplicant.conf la chiave in chiaro ma una chiave criptata. Per fare questo, eseguire il comando:
# wpa_passphrase NOME_RETE_WIRELESS CHIAVE_IN_CHIARO
che restituirà qualcosa di simile a questo:
network={
ssid="NOME_RETE_WIRELESS"
#psk="CHIAVE_IN_CHIARO"
psk=cc989812bc2cd489f960d8c1b2428d98d3c5555dac62d70ff691762fb4cc418a
}
a questo punto basta sostituire in /etc/wpa_supplicant.conf la riga:
psk="Chiave impostata nell'Access Point"
con la riga:
psk=cc989812bc2cd489f960d8c1b2428d98d3c5555dac62d70ff691762fb4cc418a
ovviamente la chiave criptata può essere diversa; notare inoltre che le virgolette non sono più necessarie.
Per fare in modo che il wireless parta al boot è sufficiente modificare il file /etc/network/interfaces in questo modo:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# Scheda di rete LAN Ethernet
# Può essere disabilitata, configurata con DHCP o in modo statico
# Questa configurazione non influisce sul wireless
auto eth0
iface eth0 inet dhcp
# Scheda wireless con DHCP
auto wlan0
iface wlan0 inet dhcp
pre-up wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B
# Scheda wireless configurata con indirizzo statico
# Da utilizzare al posto della configurazione precedente, MAI insieme
auto wlan0
iface wlan0 inet static
address 192.168.1.111 # Mettere un IP coerente con la vostra rete
netmask 255.255.255.0
gateway 182.168.1.1
broadcast 192.168.1.255
wireless-channel 11
pre-up wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B
Il comando:
pre-up
serve per far partire wpa_supplicant prima dell'attivazione della scheda di rete wireless.
Riavviate adesso il PC o, semplicemente, riavviate i servizi di rete:
# ifdown wlan0
# ifup wlan0
e controllate che tutto sia a posto:
# iwconfig wlan0
che restituirà qualcosa di simile a:
RT2500 Wireless ESSID:"NOME_NOSTRA_RETE_WIRELESS"
Mode:Managed Frequency=2.462 GHz Access Point: 02:11:3B:05:78:45
Bit Rate:54 Mb/s Tx-Power=-1
RTS thr:off Fragment thr:off
Encryption key:0f1456db9876ab15ce1222cb45 Security mode:open
Link Quality=74/100 Signal level=-31 dBm Noise level:-199 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Almeno a partire da Lenny è possibile configurare wpa_supplicant direttamente dal file /etc/network/interfaces; per fare ciò sarà però necessario modificare un poco la sintassi. Rifacendomi all'esempio sopra riportato (nel caso con DHCP, ma vale la stessa cosa per un indirizzo statico), il file unico di configurazione andrebbe scritto nel modo seguente:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid NOME_RETE_WIRELESS
wpa-psk cc989812bc2cd489f960d8c1b2428d98d3c5555dac62d70ff691762fb4cc418a
evitando appunto la linea "pre-up wpa_supplicant -iwlan0 -c /etc/wpa_supplicant.conf -B" e dunque l'utilizzo del file "etc/wpa_supplicant.conf. Alla fine i due metodi di configurazione sono da considerarsi equivalenti; sarà infine solo la filosofia dell'utente ad indicare quale metodo sia il migliore (c'è chi preferisce configurare un file in meno nel sistema operativo e chi preferisce avere un file di configurazione "dedicato" per ogni funzione del sistema). In ogni caso, come sempre, prima viene la conoscenza delle possibilità e poi si potrà decidere in tutta calma :-).
Nota
È possibile che in alcune guide troverete la linea "wpa-driver wext" a seguire o a precedere le due citate; nonostante quest'opzione sia effettivamente necessaria, se la si tralascia è ciò che viene comunque selezionato per default: tanto vale allora dimenticarcela ;-).
Oltre alle opzioni "wpa-ssid" e "wpa-psk" (e "wpa-driver"), nel file /usr/share/doc/wpasupplicant/README.Debian.gz troverete tutte le altre possibilità che vi riportiamo qui sotto e utilizzabili a seconda dell'esigenza.
Element Example Value Description
======= ============= ===========
wpa-ssid plaintextstring sets the ssid of your network
wpa-bssid 00:1a:2b:3c:4d:5e the bssid of your AP
wpa-psk 0123456789...... your preshared wpa key. Use
wpa_passphrase(8) to generate your psk
from a passphrase and ssid pair
wpa-key-mgmt NONE, WPA-PSK, WPA-EAP, list of accepted authenticated key
IEEE8021X management protocols
wpa-group CCMP, TKIP, WEP104, list of accepted group ciphers for WPA
WEP40
wpa-pairwise CCMP, TKIP, NONE list of accepted pairwise ciphers for
WPA
wpa-auth-alg OPEN, SHARED, LEAP list of allowed IEEE 802.11
authentication algorithms
wpa-proto WPA, RSN list of accepted protocols
wpa-identity myplaintextname administrator provided username
(EAP authentication)
wpa-password myplaintextpassword your password (EAP authentication)
wpa-scan-ssid 0 or 1 toggles scanning of ssid with specific
Probe Request frames
wpa-ap-scan 0 or 1 or 2 adjusts the scanning logic of
wpa_supplicant
Network Manager.
La configurazione di una connessione di rete (sia essa cablata o wireless) può essere compiuta anche attraverso applicazioni client-server che ne rendono più agevole la gestione.
A tal scopo sono nati demoni come Network Manager o Wicd e applicazioni client che permettono di interfacciarsi con essi come:
- network-manager-gnome (applet con frontend GTK)
- plasma-widget-networkmanagement (KDE)
- plasma-nm (altro plasma widget)
- nm-cli (client semi-testuale per Network Manager)
- wicd-client
- wicd-cli (client testuale per Wicd)
- wicd-curses (client semi-testuale per Wicd)
Se vengono utilizzati questi strumenti anziché il file /etc/network/interfaces per gestire le proprie connessioni di rete, modificare il file /etc/network/interfaces in modo che contenga (oltre alle righe commentate) solo:
auto lo
iface lo inet loopback
in modo che possa configurare l'interfaccia di loopback e solo quella.
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
Configurazione di una connessione wireless: rete protetta con WEP.
Una volta installati i driver per la propria scheda wireless (Driver wireless) e, se necessario, il firmware, bisogna configurare la connessione alla propria rete.
Iniziamo con l'installare alcuni pacchetti che ci saranno utili:
# apt-get install wpasupplicant wireless-tools
Quindi cerchiamo di scoprire il nome assegnato da Debian alla nostra scheda wireless, lanciando il comando:
# iwlist scan
che dovrebbe restituire un output simile a questo:
lo Interface doesn't support scanning.
eth0 Interface doesn't support scanning.
wlan0 Interface doesn't support scanning. network is down
oppure:
lo Interface doesn't support scanning.
eth0 Interface doesn't support scanning.
wlan0 Scan completed :
Cell 01 - Address: 02:11:3B:05:78:45
Mode:Managed
ESSID:""
Encryption key:off
Channel:11
Quality:77/100 Signal level:-102 dBm Noise level:-192 dBm
In entrambi i casi è facile intuire che la scheda wireless corrisponde a wlan0.
Rete Wireless protetta con WEP.
Se la vostra rete wireless è protetta con una chiave WEP, per rendere attivo il collegamento wireless della nostra scheda sarà sufficiente modificare il file /etc/network/interfaces in questo modo:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# Scheda di rete LAN Ethernet
# Può essere disabilitata, configurata con DHCP o in modo statico
# Questa configurazione non influisce sul wireless
auto eth0
iface eth0 inet dhcp
# Scheda wireless con DHCP
auto wlan0
iface wlan0 inet dhcp
wireless-channel 11
wireless-essid NOME_NOSTRA_RETE_WIRELESS
wireless-key 0f1456db9876ab15ce1222cb45
# Scheda wireless configurata con indirizzo statico
# Da utilizzare al posto della configurazione precedente, MAI insieme
auto wlan0
iface wlan0 inet static
address 192.168.1.111 # Mettere un IP coerente con la vostra rete
netmask 255.255.255.0
gateway 182.168.1.1
broadcast 192.168.1.255
wireless-channel 11
wireless-essid NOME_NOSTRA_RETE_WIRELESS
wireless-key 0f1456db9876ab15ce1222cb45
Riavviate il PC o, semplicemente, riavviate i servizi di rete:
# ifdown wlan0
# ifup wlan0 che restituirà qualcosa di simile a:
RT2500 Wireless ESSID:"NOME_NOSTRA_RETE_WIRELESS"
Mode:Managed Frequency=2.462 GHz Access Point: 02:11:3B:05:78:45
Bit Rate:54 Mb/s Tx-Power=-1
RTS thr:off Fragment thr:off
Encryption key:0f1456db9876ab15ce1222cb45 Security mode:open
Link Quality=74/100 Signal level=-31 dBm Noise level:-199 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
Se ti è piaciuto l'articolo , iscriviti al feed cliccando sull'immagine sottostante per tenerti sempre aggiornato sui nuovi contenuti del blog:
Copiare, fare il mirror e riscaricare i pacchetti Debian.
Si potrebbe volerlo fare per necessità di mirror o di backup, o per creare un set di CD che soddisfi le dipendenze. Il trucco può essere realizzato con:
# COLUMNS=200 dpkg -l | grep '^ii' | awk '{ print $2 }' > /tmp/pkglist
# cat /tmp/pkglist | xargs apt-get --download-only --reinstall -y install
Impostare un mirror Debian o una sorgente apt sul disco locale.
Il modo più semplice per copiare i CD Debian sul proprio hard disk dovrebbe essere l'utilizzo dello strumento dd e la creazione diretta dell'immagine del CD:
# dd if=/dev/cdrom of=/mnt/deb-cd1.img bs=512k
| Suggerimento | |
|---|---|
Se si installa il pacchetto cdrecord sarà
disponibile il comando readcd:# readcd dev=0,0,0 f=deb-cd1.img |
Una riga in sources.list di esempio potrebbe essere simile a questa:
deb file://mnt/deb-cd1 woody main contrib non-free non-US/main non-US/contrib non-US/non-free
| Notare: | |
|---|---|
| Sebbene questa procedura dovrebbe funzionare ed è perfettamente corretta se si vogliono davvero le immagini CD (per esempio se si stiano salvando i CD Debian), probabilmente la si troverà inadatta per altre necessità (perché il numero massimo di device loop disponibili in maniera predefinita nel kernel è solo 7 e si avranno necessariamente sorgenti multiple invece di una omnicomprensiva). |
Usare apt-move per spostare i pacchetti nel repository sull'hard disk locale.
- Primo, si installi apt-move:
apt-get install apt-move
- Modificare /etc/apt-move.conf, mettere "localhost" (o il nome Internet del mirror naturalmente) nel campo APTSITES e cambiare l'opzione DIST (in "woody", se si ha Debian 3.0). Si potrebbe anche modificare PKGTYPE in "both" (entrambi) se si desiderano anche i pacchetti sorgente.
- Modificare /etc/apt/sources.list e disattivare tutte le righe riferite ai CD-ROM.
- Esportare /cdrom con Apache (se si utilizza
http://localhost invece del mirror Internet come sorgente dei
pacchetti):
# apt-get install apache # echo "Alias /cdrom/ /cdrom/" >> /etc/apache/httpd.conf # /etc/init.d/apache restart # echo "deb http://localhost/cdrom/ woody contrib main non-US/contrib non-US/main non-US/non-free non-free" >> /etc/apt/sources.list # apt-get update
- Inizializzare apt-move:
# apt-move get
- Adesso per ciascun CD che si vuole spostare sul proprio hard disk,
si digiti:
Se non si utilizzano CD ma direttamente il mirror Internet:# mount /cdrom # apt-get update # apt-move mirror # umount /cdrom
# Per spostare i pacchetti da /var/cache/apt/archives/ solamente # apt-move move # Per creare un mirror completo # apt-move mirror # Per copiare solo i pacchetti che sono installati sul sistema # apt-move sync
- Quando si è terminato, si creino i nuovi
Packages.gz e Sources.gz:
Si noti che la riga gunzip ... è importante, perché crea i semplici file Packages; saranno necessari in seguito se si utilizzano strumenti tipo debootstrap. Sarà anche necessario copiare alcuni file Release esistenti nella directory dists/woody/.# apt-move packages # cd /mirrors/debian # gunzip `find . -name Packages.gz` # apt-move packages
- Sostituire il repository http://localhost/cdrom/
(non è più necessario) con il nuovo mirror creato e si
installi xplanet per testarlo:
Prima di andare avanti, non ci si dimentichi di rimuovere la voce /cdrom/ da /etc/apache/httpd.conf.# perl -n -i -e 'print unless m#/cdrom/#' /etc/apt/sources.list # apt-get install apache # echo "Alias /mirrors/debian/ /debian/" >> /etc/apache/httpd.conf # /etc/init.d/apache reload # echo "deb http://localhost/debian/ woody contrib main non-US/contrib non-US/main non-US/non-free non-free" \ >> /etc/apt/sources.list # apt-get update # apt-get install xplanet xplanet-images








