mercoledì 13 gennaio 2010

Sito dinamico su virtual host locale [03-03] - Fedora How-to


Attivazione del database
E' necessario a questo punto inizializzare un database, associarlo con il sito e creare l'amministratore di questo.

Nel caso di MySQL, è possibile consultare ottimi tutorial qui e qui,

Le istruzioni di seguito si basano su comandi da console, utili a capire le basi della gestione di MySQL da linea di comando; se invece volete usare un'interfaccia grafica, si possono usare, come detto nel post 01 di 03, mysql-administrator oppure phpMyAdmin, con le quali è possibile effettuare tutte le operazioni di seguito descritte (e molte di più!).
Torniamo alla gestione da linea di comando

Per far partire il servizio, in console root:
# service mysqld start

Per fermarlo:
# service mysqld stop

Per riavviarlo mentre è in esecuzione:
# service mysqld restart

Per far partire il servizio all'avvio (boot) del computer, così da evitare di doverlo attivare tutte le volte che lo si vuole usare (comando opzionale):
# chkconfig mysqld on

Per testare il funzionamento di MySQL, così da verificare se effettivamente è stato attivato e quali sono i processi cui è associato:
# pgrep mysqld

All'atto dell'installazione, MySQL crea automaticamente un amministratore di nome root ed un utente di nome mysql, entrambi senza password.
Anche se non è indispensabile ai fini della nostra installazione, è opportuno eliminare la possibilità di accedere al database in modo anonimo e insicuro.
Per far questo è necessario eliminare gli utenti presenti, amministratore escluso, attribuire una password all'amministratore, creare il database che ci interessa (MySQL può gestire più database), creare il nostro utente associandolo ad una password, e consentire all'utente l'accesso allo specifico database. Vediamo come.

Per prima cosa entriamo nel server MySQL come amministratore:
# mysql -u root

Il prompt si trasformerà in:
mysql>

Per eliminare gli utenti presenti (da fare solo alla prima inizializzazione del server MySQL, dove l'unico utente è quello creato di default dal sistema; se il server è già stato utilizzato e sono già stati creati altri utenti, questa operazione può danneggiare l'accesso a MySQL, quindi va fatta con criterio):
mysql> DELETE FROM mysql.user WHERE User = '';

Il punto e virgola al termine della frase è importante, perchè fa parte della sintassi di MySQL ed indica la fine del comando; '' rappresenta contenuto vuoto tra apici.

Aggiorniamo ora i privilegi, in modo da consentire a MySQL di riconoscere la modifica che abbiamo apportato:
mysql> FLUSH PRIVILEGES;

A questo punto impostiamo la password dell'amministratore; nell'esempio di seguito, la password è he43klc9 ed è contenuta tra apici; sostituitela con quella da voi scelta:
mysql> UPDATE mysql.user SET Password = 'he43klc9' WHERE User = 'root';

Quindi creiamo il database, che chiameremo joomladb, ed aggiorniamo il server.
mysql> CREATE DATABASE joomladb;
mysql> FLUSH PRIVILEGES;

Per vedere i database che sono stati creati
mysql> SHOW DATABASES;

Per rimuovere il database creato:
mysql> DROP DATABASE joomladb;
mysql> FLUSH PRIVILEGES;

Creiamo quindi il nostro utente (nell'esempio è pippo) e la sua password (nell'esempio è asdasd) ed associamolo al database creato (nell'esempio è joomladb) sul server localhost, aggiornando quindi MySQL:
mysql> GRANT ALL PRIVILEGES ON joomladb.* TO pippo@localhost IDENTIFIED BY ‘asdasd’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Nel caso in cui venga creato più di un database e si voglia associare l'utente a tutti i database creati, il comando diventa:
mysql> GRANT ALL PRIVILEGES ON *.* TO pippo@localhost IDENTIFIED BY ‘asdasd’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;

Per vedere gli utenti che possono loggarsi:
mysql> SELECT Host, User FROM mysql.user;

Per eliminare un utente
mysql> DELETE FROM mysql.user WHERE Host='localhost' AND User='pippo';
mysql> FLUSH PRIVILEGES

dove pippo è l'utente e localhost è il suo host corrispondente nella tabella.

Per uscire la MySQL digitare:
mysql> EXIT;

Per rientrare in MySQL digitare:
# mysql -u xxxxx -p

dove xxxxx è il vostro utente od amministratore.
L'opzione -p serve a far si che il server chieda la password di accesso che avrete impostato prima; qualora non l'aveste impostata, togliete l'opzione ( -p) prima di dare il comando.


Nel caso di postgreSQL, in console root, l'inizializzazione del database, come descritto qui e qui, sarà:
# service postgresql initdb

Avvio del database
# service postgresql start

In questo momento, l'unico utente riconosciuto (e loggabile) nel database è postgres. Per poter creare databases e ulteriori utenti loggabili è indispensabile loggarsi ed iniziare una sessione come utente postgres.
# su -l postgres

Una volta loggati, creiamo un altro super utente (notare il cambiamento del riferimento della bash)
-bash-4.0$ createuser --no-superuser --no-createdb --no-createrole --pwprompt nomeutente

Ci verrà richiesta l'impostazione della password e la sua ridigitazione per conferma.
A questo punto creiamo un database con lo stesso nome dell'utente appena creato. La sintassi sarà:
-bash-4.0$ createdb -W -E utf8 -O nomeutente nomeutente

Verrà chiesta per conferma la password appena impostata.
A questo punto editiamo il file di configurazione della security di postgreSQL
-bash-4.0$ nano /var/lib/pgsql/data/pg_hba.conf

scorriamo con la barra laterale fino al fondo del file ed editiamo le righe sostituendo rispettivamente alla linea local e dell'host IPv4 i valori di identificazione in:
local all all trust
host all all 127.0.0.1/32 md5

ottenendo un risultato di questo genere:


Al posto di trust può essere messo md5, per una maggiore sicurezza. Digitiamo quindi ^O per salvare il file, ^X per uscire da nano e tornare alla shell (^ corrisponde al tasto control).
Ovviamente, al posto di nano può essere usato il più complesso vi (per uscire da vi si usa il comando :wq)

Riavviamo il database digitando
-bash-4.0$ service postgresql reload

Nel caso in cui la bash dia degli errori (ad es. perchè l'utente non ha sufficienti privilegi per effettuare le operazioni richieste), apriamo una nuova scheda di bash, entriamo in console root con su + password e diamo lo stesso comando di reload

Altri settaggi potete trovarli nel link riportato.
Qui potete trovare un altro ottimo tutorial.

A questo punto chiudiamo la console e lanciamo la GUI pgAdmin III (in Menu Fedora --> Programmazione). Comparirà la schermata di accesso al database: su questa inseriamo i dati che abbiamo impostato: nome utente, nome database e password, inseriamo come host 127.0.0.1 ed il nostro db sarà pronto.


Usare il Sito Joomla!
Apriamo il browser e lanciamo http://127.0.0.1 e verifichiamo subito che il sito si attivi, e che tutte le impostazioni siano attive e funzionanti, compresa la compilazione automatica del file configuration.php.
Se l'impostazione automatica non venisse accettata (cioè fosse marcata in rosso), non proseguite, chiudete il browser, aprite la shell e, in console root, cambiate i permessi alla cartella dove si trova il sito con un comando ricorsivo del tipo

# chmod 777 -R /media/HD350GB/Serverspace

così tagliate la testa al toro. (NB ricordate di mettere il percorso corretto della vostra cartella)
NB questa operazione NON E' CORRETTA sotto il profilo della sicurezza, e e può servire solo se il vostro server locale non viene pubblicato, altrimenti sono guai.
L'operazione corretta consiste nel sostituire il proprietario della cartella (in questo momento voi) con apache.
Con

$ cat /etc/group

verifichiamo l'esistenza dell'utente 'apache'. Con

sudo chown -R apache:apache /media/HD350GB/Serverspace

assegniamo all'utente ed al gruppo apache in maniera ricorsiva tutte le cartelle contenute in Serverspace.
Se vogliamo smanettare direttamente in queste cartelle (con cognizione di causa) allora l'operazione più corretta è aggiungere il nostro utente al gruppo apache con

# gedit /etc/group

aggiungendo l'utente, separato con una virgola dagli altri membri al gruppo prescelto.
Se avete timore di sbagliare a digitare, questa operazione può essere fatta anche attraverso il menu amministrazione --> utenti e gruppi

A questo punto riavviate Apache

Quindi fate ripartire il browser e, se non sbagliate l'inserimento dei dati, tutto dovrebbe funzionare correttamente.
Inoltre, se avete applicato la procedura di entrambi i database, avrete la possibilità di scegliere tra MySQL e postgreSQL, entrambi funzionanti, come RDBMS di appoggio.
Se scegliete MySQL, utilizzate l'opzione mysql e non l'opzione mysqli, soprattutto per questioni di praticità, e verificate che nelle impostazioni avanzate sia settato il parametro jos_ .
A questo punto dovreste aver superato tutti gli ostacoli, inserite la vostra personalizzazione iniziale (nome del vostro sito, mail di riferimento, password dell'amministratore) e create il vostro sito Joomla!.

Buon sito a tutti ! :-)

P.S. Grazie a Mirella per l'aiuto e la pazienza nella revisione di questo tutorial.

( <-- torna al 02 di 03)

Sito dinamico su virtual host locale [02-03] - Fedora How-to


Virtual hosts in locale
Veniamo a questo punto alla creazione degli hosts virtuali.
Apache gestisce i contenuti in locale nella cartella /var/www/ , che non è proprio il massimo del posizionamento.
Per fare in modo che Apache possa raggiungere, ma soprattutto gestire, contenuti al di fuori di questa cartella è necessario fare alcune modifiche ai file di configurazione.
Quelle proposte sono il minimo indispensabile per il funzionamento del tutto; inoltre, i permessi applicati danno per scontato che non vi siano problemi di utenza di accesso, cioè che non vi sia la necessità di effettuare particolari limitazioni ad utenti specifici.
Nel caso, la documentazione più approfondita, che tratta questi aspetti, da cui sono state attinte le informazioni che seguono potrete trovarla qui (il sito di Miranda), qui (Apache - userdir) e qui (Apache - cartelle pubbliche).

Individuiamo o creiamo prima di tutto una cartella dove ci interessa inserire il materiale.
La sintassi prevederebbe l'obbligo dell'utilizzo del nome public_html, cioè prevedere un percorso del tipo / ... /public_html/nomecartella) ma sotto l'aspetto della funzionalità non è strettamente necessario. Poi fate voi.

Proviamo con Joomla!, ad esempio, e scarichiamo il file attualmente stable nella versione 1.5 in italiano: Joomla_1.5.15_ita-Stable.tgz.
Io nel NB ho un HD da 500 Gb con varie partizioni, di cui una di solo dati da 350GB formattata in EXT3; questa per me è la partizione ideale per parcheggiare un po' di siti di prova e sviluppo.
Ho quindi creato all'interno di questa la cartella Serverspace. Poichè la partizione, che si chiama HD350GB, viene montata nella directory /media , il percorso assoluto di questa cartella sarà /media/HD350GB/Serverspace .
Una volta scaricato, ho scompattato il file scaricato da Joomla! in una cartella chiamata joomla15ita, che ho tagliato ed incollato entro la cartella Serverspace, ottenendo il percorso assoluto /media/HD350GB/Serverspace/joomla15ita.
Ho quindi creato, visto che mancava (ma in questo caso non è indispensabile), la cartella cgi-bin entro la cartella joomla15ita.

A questo punto, in console root ho digitato:
# chmod 755 -R /media/HD350GB/Serverspace
# chmod 701 -R /media/HD350GB/Serverspace/joomla15ita/cgi-bin

Il -R ricorsivo estende i permessi a tutte le cartelle contenute, e questo elemento, cioè l'assegnazione dei permessi, è determinante per la buona riuscita della configurazione automatica iniziale di Joomla!, soprattutto per la cartella Installation ed il file configuration.php contenuti all'interno del sito.
A questo punto vanno creati gli alias, cioè i puntatori alternativi di Apache, quindi ho digitato:
# gedit /etc/httpd/conf.d/alias

ed ho inserito nel file, secondo la sintassi alias /URL-path /directory_del_file/ , le seguenti righe:
Alias /joomla15ita /media/HD350GB/Serverspace/joomla15ita

§Directory /media/HD350GB/Serverspace/joomla15ita§
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
§/Directory§

La cosa interessante è che se ho altri siti contenuti in altre cartelle denominate, ad es. sito02, sito03, ecc. e copio queste cartelle entro la cartella Serverspace, dopo aver inserito all'interno la cartella cgi-bin se mancante ed assegnato i permessi come in precedenza, mi basterà inserire nello stesso file altri gruppi di comandi del tipo:
Alias /sito02 /media/HD350GB/Serverspace/sito02

§Directory /media/HD350GB/Serverspace/sito02§
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
§/Directory§

ecc.

per far si che Apache riconosca anche questi.


Però questo passaggio non basta: è necessario intervenire anche nel cuore della configurazione di Apache, cioè nel file httpd.conf
# gedit /etc/httpd/conf/httpd.conf

Prima di tutto facciamo si che il percorso /media/HD350GB/Serverspace/ , oltre che esistere, sia abilitato; per ottenerlo, è necessario abilitare, nell'intorno della linea 350, la funzione UserDir, commentando (cioè inserendo all'inizio della frase il carattere cancelletto #) la linea "UserDir disabled", e togliendo il commento alla linea finale UserDir, apponendo il percorso di nostro interesse, come di seguito riportato a titolo di esempio:

§IfModule mod_userdir.c§
#
# UserDir is disabled by default since it can confirm the presence
# of a username on the system (depending on home directory
# permissions).
#
# UserDir disabled#
# To enable requests to /~user/ to serve the user's public_html
# directory, remove the "UserDir disabled" line above, and uncomment
# the following line instead:
#
UserDir /media/HD350GB/Serverspace
§/IfModule§

Andiamo a questo punto nell'intorno della linea 975 dove è presente il comando NameVirtualHost *:80 e decommentiamolo (cioè togliamo il carattere cancelletto # all'inizio della frase).

#
NameVirtualHost *:80
#

poi andiamo nell'intorno della linea 996 e inseriamo i virtualhost

#§VirtualHost *:80§
# ServerAdmin webmaster@dummy-host.example.com
# DocumentRoot /www/docs/dummy-host.example.com
# ServerName dummy-host.example.com
# ErrorLog logs/dummy-host.example.com-error_log
# CustomLog logs/dummy-host.example.com-access_log common
#§/VirtualHost§

§VirtualHost *:80§
DocumentRoot /media/HD350GB/Serverspace/joomla15ita
ServerName joomla15ita
ScriptAlias /cgi-bin/ "/media/HD350GB/Serverspace/joomla15ita/cgi-bin/"
§Directory /media/HD350GB/Serverspace/joomla15ita§
AllowOverride All
Options All
§/Directory§
§/VirtualHost§

§VirtualHost *:80§
DocumentRoot /media/HD350GB/Serverspace/sito02
ServerName sito02
ScriptAlias /cgi-bin/ "/media/HD350GB/Serverspace/sito02/cgi-bin/"
§Directory /media/HD350GB/Serverspace/sito02§
AllowOverride All
Options All
§/Directory§
§/VirtualHost§

ecc.

Mi raccomando: lasciate i cancelletti iniziali solo nelle stringhe di esempio (come il primo blocco sopra, che troverete già impostato nello script), ricordando che una riga che inizia con un cancelletto viene interpretata come una semplice annotazione ininfluente anziché come un'istruzione di programma.

A questo punto si esce da gedit salvando il file httpd modificato, e si lancia il restart di Apache (il restart va fatto obbligatoriamente ogni volta che si modifica il file httpd.conf), con la seguente sintassi:
# /etc/init.d/httpd restart

quindi si modifica il file hosts:
# gedit /etc/hosts

inserendo nel file una riga per ogni host configurato:
127.0.0.1 joomla15ita
127.0.0.1 sito02

e salvando al'uscita.

Ogni host a questo punto potrà essere richiamato nel browser con la sintassi, ad es.
http://joomla15ita

( <-- torna all'01 di 03)

(vai al 03 di 03 --> )

Sito dinamico su virtual host locale [01-03] - Fedora How-to


Ultima revisione: 12 gennaio 2011

Un how-to per far girare un sito dinamico in locale sotto Fedora ? Con tutte le guide che ci sono in giro ? Si.
Maccome, si dirà, basta prendere un CMS open source come Joomla!, andare su Joomla.org o su Joomla.it o su Joomlaitalia.com, e si trova tutto ciò che si vuole.
Mmmmmhhh, proprio tutto ? Direi di no. C'è sempre qualcosa che non funziona, o un'istruzione non adatta, o un piccolo intoppo interpretativo, o un settaggio da rivedere, e io mi sono rotto le scatole di perdere tempo.
Questo è un pro-memo completo che consente di arrivare a far girare un sito dinamico (PHP, Perl, Phyton) come Joomla!, ma anche Drupal od altri, in locale su sito virtuale per provarlo offline con tutti i template che vogliamo, con RDBMS - Relational database management system - funzionanti, superando tutta una riga di problemini che normalmente si incontrano, e che è ben difficile che vengano presi in considerazione tutti insieme da ognuna delle singole fonti, prima che il sito riesca ad attivarsi.
Insomma, un semplice step by step per i niubbi come me, del tipo "conosci, ad es., Joomla ? No ? Allora, se mi dai 20 minuti te lo faccio provare sulla tua Linuxbox..." :-D

N.B. per tutto quanto riguarda l'installazione dei pacchetti di seguito riportata, cercate con yumex quelli da installare, più facili da trovare se selezionate vista gruppi; in alternativa, digitate l'installazione del pacchetto in console root (premettendo sudo se appartenete al gruppo sudoers, oppure loggandovi come root con su (enter) e password (enter))

Primo passo: do per scontato che si parta da zero, cioè che nella Linuxbox non ci sia installato ed attivato un server LAMP/LAPP, cioè un gruppo di programmi server-side:
- Linux - sistema operativo;
- Apache http server - server Web
- MySQL o postgreSQL RDBMS - sistema di gestione di database relazionale server side
- PHP - linguaggio di scripting.

Due precisazioni:
- come è noto, la seconda P può stare, anzichè a Php, a Perl o Phyton a seconda del linguaggio scelto.
- il server da installare può essere può essere LAMP anzichè LAPP; ciò significa che il RDBMS può essere scelto (la P che sostituisce la M) tra MySQL e Postgres.. Entrambi questi RDBMS sono presenti nei repository. La scelta dovrebbe basarsi sull'effettivo supporto che il provider di Hosting scelto offre (ad es. piattaforma Linux anzichè Win). Creare un sistema, cioè, basato su postgreSQL per poi scoprire che non è pienamente supportato, diversamente da MySQL, potrebbe non essere simpatico. Il privilegio a postgreSQL imo sarebbe da dare non solo perche questo RDBMS è oggettivamente superiore a MySQL, ma anche perchè postgreSQL, oltre che essere anch'esso open source, è tutt'ora in fase di sviluppo, mentre lo sviluppo di MySQL, dopo la recente acquisizione, da parte di Oracle, di Sun (Java, OpenOffice, Solaris, MySQL) e le dichiarazioni del suo CEO, resta per ora, tristemente, una grande incognita.
Purtroppo per Postgres, il suo supporto in Joomla è più complesso, ed è quindi consigliabile per una installazione rapida usare MySQL; di seguito vengono comunque riportate anche le istruzioni per la sua installazione.

Visto che LAMP è indispensabile ai nostri scopi, andiamo a scaricarlo ed ad attivarlo.


Linux.
Se non lo avete ancora installato allora andate subito su Fedora project e scaricatevelo. NB per voi ci vorrà un po' di più di 20 minuti... :-DDD

Apache 2
# yum -y install httpd

va comunque controllato che siano installati anche i seguenti pacchetti, con il seguente comando:
# yum -y install httpd-manual mod_ssl mod_perl mod_python mod_auth_mysql mod_auth_pgsql awstats distcache crypto-utils

Per avviare il server:
# /etc/init.d/httpd start

Per verifica, nel browser digitare
http://localhost
verrà visualizzata la pagina di benvenuto di Apache

Per fermare il server:
# /etc/init.d/httpd stop

Per riavviare il server:
# /etc/init.d/httpd restart

Per semplificare, al posto di
# /etc/init.d/nomeservizio nomecomando
può essere utilizzato
# service nomeservizio nomecomando

Nell'esempio di httpd:
# service httpd restart

PHP
[N.B. non ho voglia di cercare in rete il modo per evitare che il codice php da scrivere interferisca con il codice nativo con cui è scritto il blog, risultandone modificato se non cancellato. Il sistema più rapido, per tutte le righe di codice php che seguiranno, è stato quello di sostituire l'elemento iniziale (<) e finale (>) di uno script con l'elemento (§).
Ovviamente, le righe di codice eventualmente copincollate da questo articolo non funzioneranno fino al ripristino degli elementi originali.]

Installiamo php
# yum -y install php

va comunque controllato che siano installati anche i seguenti pacchetti, con il seguente comando:
# yum -y install php-mysql php-pgsql phpMyAdmin tomcat5 phpldapadmin php-odbc php-ldap php-pdo php-pgsql perl-DBD-MySQL perl-DBI

Per verificarne il funzionamento:
# /etc/init.d/httpd restart
# gedit /var/www/html/testphp.php

inserire nel file questo script
§?php phpinfo(); ?§

Salvate e nel browser digitate:
http://localhost/testphp.php

MySQL
# yum -y install mysql

va comunque controllato che siano installati anche i seguenti pacchetti, con il seguente comando:
# yum -y install mysql-server php-mysql MySQL-python libdbi-dbd-mysql mysql-devel mod_auth_mysql perl-DBD-MySQL mysql-gui-common mysql-gui-tools mysql-libs mysql-query-browser

Per installare MySQL control center (dalla release F14):
# yum -y install mysql-workbench

od anche, e probabilmente meglio
# yum install phpMyAdmin

mysql-administrator è un'interfaccia grafica che si lancia dal menu sistema.
phpMyAdmin, invece, è un'interfaccia grafica che si lancia nel browser scrivendo nello spazio dell'URL:
http://localhost/phpmyadmin/

Ciò verrà utile più avanti (post 03 di 03) parlando della gestione del database.


PostgreSQL
In alternativa a MySQL si può installare Postgres.
# yum -y install postgresql

va comunque controllato che siano installati anche i seguenti pacchetti, con il seguente comando:
# yum -y install postgresql-jdbc postgresql-phyton postgresql-contrib unixODBC libdbi-dbd-pgsql perl-DBD-Pg postgresql-ODBC rhdb-utils postgresql-test qt-postgresql postgresql-server

Installare pgSQL control center
# yum -y install pgadmin3 phpPgAdmin

(vai al 02 di 03 --> )

giovedì 7 gennaio 2010

La Baia Magnetica


A volte non si capisce se si va avanti oppure indietro :-D .
Il Mulo va, il Mulo non va, bisogna passare al torrent, segano i server, il Mulo va meglio col Kad che però è lento, la Baia è presa d'assalto, i Pirati sono in fuga....
Poi uno all'improvviso si ferma, si gira e dice: Alt ! Ora ci avete davvero scassato ..... i tracker ! :-D

Riassunto: The Pirate Bay, stufa di andar per tribunali e di non monetizzare come si deve il suo business, cambia marcia e uccide il torrent, e, questo è il bello della cosa, invita anche gli altri siti di tracker a farlo nel più breve tempo possibile.
A che scopo ? Semplice. Passare una volta per tutte al magnet link, cioè a un sistema decentralizzato multi-componente cui non serve il file .torrent per il download di un file, bensì un hash, cioè il codice attribuito al file da scaricare.
Il sistema, attraverso delle DHT, o Distribuited Hash Tables, permette di connettersi ad un bootstrap node e da qui ad un insieme di nodi per l'individuazione dei peers che possono fornire l'hash cercato.
In pratica, fa la stessa cosa che fa il .torrent, ma senza il .torrent e senza i server di appoggio per il tracking; in altre parole, consente di ottenere lo stesso risultato senza infrangere la legge (e scusate se è poco) :-P .
Quindi, quando capitate su una pagina dove vi interessa un contenuto, e questo è scaricabile tramite magnet link, cliccateci sopra con tranquillità, non rimarrete attaccati al mouse od alla tastiera.
L'unico effetto negativo che potrete ricevere è che il vostro amato browser vi dica che non sa come aprire il link visto che il protocollo “magnet” non è associato ad alcuna applicazione.
Con Firefox ed Opera non c'è problema.
Come prima cosa procuriamoci l'applicazione che possa gestire tale protocollo.
Io in Fedora, Gnome o KDE che sia, uso ktorrent: è valido, è semplice, ha un'interfaccia intuitiva. Ovviamente ognuno ha i suoi gusti. Nel caso in questione, però, ktorrent (al momento in v. 3.3.1) non supporta il protocollo “magnet” (anzi, è meglio dire che a me non funziona, visto che alcuni sostengono che vada mentre altri no, e c'è un sacco di gente suscettibile in giro... :-D ), per cui ho deciso di ripiegare su Deluge, anche questo presente nei repository standard di Fedora, semplice ed intuitivo, e con supporto al magnet.


Una volta installato con Yumex, inserite il riferimento in Firefox in questo modo:

sulla barra degli indirizzi digitate about:config e premete enter
passaggio 1
tasto destro --> inserite una chiave “nuovo” --> Booleano -->
name: network.protocol-handler.expose.magnet con valore --> true e date enter
passaggio 2
aggiungete con il tasto destro un'altra chiave “nuovo” --> String -->
name: network.protocol-handler.app.magnet con valore --> deluge e date enter

Assegnando alla chiave in passaggio 1 il valore False , quando cliccherete sul magnet link Firefox vi chiederà a quale applicazione vorrete associare il protocollo.

Per Opera il meccanismo è :
menu strumenti --> preferenze --> avanzate --> programmi
cliccate su “aggiungi” e alla voce “protocollo” inserite il termine magnet mentre nell'azione selezionate “apri con un'altra applicazione” e scrivete /usr/bin/deluge (o andateci con il tasto “sfoglia”)

Buon magnet link a tutti :-)

P.S. 05/02/2010 Aggiornamento: fra gli addons di Mozilla c'è Magnetiser 0.9 che consente di ottenere, sostanzialmente, lo stesso risultato.