Trasferimento file da Nokia 6630 a Debian e viceversa: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
mNessun oggetto della modifica
 
(12 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
La soluzione pi� diffusa e stabile, per la messa on-line di un applicativo scritto in ruby on rails, � data dall'accoppiata Mongrel e Apache2!
{{Versioni compatibili|Squeeze|Wheezy}}
__TOC__
== Introduzione ==
Seguendo questa guida si possono collegare altri Cellulari oltre il Nokia 6630, tra cui Nokia 3230, 6670, 6680, 6682 e 7610, Sony Ericsson Z1010, LG U8110/8120.<br/>
Quando avrete finito di seguire questa guida potrete trasferire file da Debian al telefonino e viceversa tramite il cavetto in dotazione.


= Introduzione =
== Configurazione ==
La struttura del nostro ambiente di produzione � descritta nella seguente figura:
Aprire il file <code>permissions</code> di udev e aggiungere una riga, perciò da terminale digitare:


[[Immagine:Apache-mongrel.png]]
<pre>$ sudo gedit /etc/udev/rules.d/020_permissions.rules</pre>


Tutte le richieste arriveranno al server web apache, che si occuper� di dirottare le richieste dinamiche a uno dei server mongrel, mentre servir� i contenuti di tipo statico direttamente, senza cos� appesantire le istanze di mongrel con richieste che possono essere processate direttamente da apache.
e aggiungere questa riga:


Questa struttura, inoltre, permette espansioni future per garantire una buona scalabilit� in caso di un forte aumento delle richieste: potremo, in futuro, spostare le verie istanze di mongrel su server differenti, distribuire il filesystem in modo da avere "pi� apache" pronti ad accettare le richieste, ...
<pre>BUS=="usb", SYSFS{idVendor}=="0421", SYSFS{idProduct}=="0410", GROUP="dialout"</pre>


(ovviamente i campi <code>idVendor</code> e <code>idProduct</code> possono cambiare rispetto al mio Nokia 6630, per verificarlo da terminale digitate:
<pre>$ lsusb</pre>


= Installazione =
Inoltre dovete verificare se fate parte del gruppo "dialout" altrimenti aggiuntevi digitando:
== Apache2 ==
Per installare Apache � sufficiente un
<pre>
# apt-get install apache2-mpm-prefork libapache2-mod-proxy-html
</pre>


Consiglio la versione "prefork" in quanto � supportata pienamente anche da php5, e di conseguenza non ci saranno problemi ad installare anche applicazioni come phpmyadmin, molto comoda per la gestione di database mysql. L'installazione base di apache, per�, non � sufficiente per i nostri fini, infatti dobbiamo abilitare alcuni moduli:
<pre>$ sudo adduser nome_utente dialout</pre>
* deflate
* proxy_balancer
* proxy_connect
* proxy_html
* proxy_http
* proxy
* rewrite


per abilitarli:
== Pacchetti necessari ==
<pre>
Per il collegamento con il PC è necessario installare i seguenti pacchetti:
# a2enmod deflate
# a2enmod proxy_balancer
# a2enmod proxy_connect
# a2enmod proxy_html
# a2enmod proxy_http
# a2enmod proxy
# a2enmod rewrite
</pre>


La configurazione di default del modulo proxy permette connessioni solo dall'indirizzo ip 127.0.0.1. Questa situazione rende impossibile, per�, l'accesso al VirtualHost che andremo a configurare dall'esterno. A tal proposito dobbiamo modificare il file di configurazione del modulo (''nome del file di configurazione'') modificando la seguente riga:
<pre># apt-get install openobex-apps libopenobex1 obexftp</pre>


<pre>
inoltre dal sito http://www10.frugalware.org/pub/linux/frugalware/frugalware-stable/source/xapps-extra/tablelist/ bisogna scaricare il file <code>''tablelist4.6.tar.gz''</code>
<Proxy *>
    AddDefaultCharset off
    Order allow,deny
    Allow from .example.com
    Deny from all
</Proxy>
</pre>


in
e dal sito http://www.tech-edv.co.at/programmierung/en/gplsw.html#download scaricare il file <code>''obextool-0.33.tar.gz''</code>.


<pre>
Poi scompattate il file obextool, rinominate la cartella obextool, e dentro scompattate il file <code>tablelist</code>.
<Proxy *>
    AddDefaultCharset off
    Order allow,deny
    Allow from all
    #Allow from .example.com
</Proxy>


</pre>
Dopodiché digitate:
<pre>$ sudo gedit obextool/etc/obexwrap.sh</pre>


Una volta abilitati i moduli e fatte le modifiche necessarie, riavviamo apache:
l'ultima riga dovrà essere così:
<pre>
# /etc/init.d/apache2 restart
</pre>


L'installazione e la configurazione base di apache sono terminate.
<pre>obexftp -u 1 "$@"</pre>


== Ruby ==
Nel file <code>obextool/etc/obextool.cfg</code> bisogna impostare a zero il valore della chiave <code>set ObexConfig(config,memstatus)</code> e, infine, nel file <code>obextool/obextool.tk</code> bisogna indicare dove abbiamo messo tablelist. L’istruzione è alla terza riga, inserite questo:
Se non � gi� presente sulla macchina, provvediamo ad installare ruby ed i componenti pi� importanti, necessari alla compilazione di mongrel:


<pre>
<pre>TCLLIBPATH=/opt/obextool/tablelist4.6/ exec wish "$0" ${1+"$@"}</pre>
# apt-get install ruby irb ri rdoc ruby1.8-dev build-essential
</pre>


Poi spostare obextool in <code>/opt</code> :


== Rails ==
<pre>$ sudo mv obextool /opt
Prima di tutto scarichiamo rubygems dal sito ufficiale: http://www.rubygems.org/
$ cd /opt
$ sudo chown -Rv root\: obextool/</pre>


In questo momento l'ultima versione � la [http://rubyforge.org/frs/download.php/28174/rubygems-0.9.5.tgz 0.9.5]:
Dopodiché installare bwidget:
<pre>
# wget http://rubyforge.org/frs/download.php/28174/rubygems-0.9.5.tgz
# tar xzvf rubygems-0.9.5.tgz
# cd rubygems-0.9.5
# ruby setup.rb
</pre>


Ora possiamo installare rails, facendo attenzione alla versione richiesta dal nostro applicativo:
<pre># apt-get install bwidget</pre>
* Ultima versione
<pre>
# gem install rails
</pre>
* Una versione specifica
<pre>
# gem install rails -v 1.2.5
</pre>


e creare un “Desktop file” per avviarlo da menù:


== Mongrel ==
<pre>$ sudo gedit /usr/share/applications/obextool.desktop</pre>
Mongrel si installa allo stesso modo di rails, inoltre installeremo anche mongrel-cluster, che ci semplificher� moltissimo la vita:
<pre>
# gem install mongrel
# gem install mongrel_cluster
</pre>


= Configurazione =
e inserire queste righe:
== Mongrel ==
La configurazione del cluster di server mongrel � semplice, e si riduce a creare un semplice file di configurazione. Questo � quello base, da cui partire:
<pre>
---
cwd: /opt/ror/
log_file: log/mongrel.log
port: "3000"
environment: production
address: 127.0.0.1
pid_file: tmp/pids/mongrel.pid
servers: 3
user: mongrel
group: mongrel
</pre>


Nei dettagli tutte le voci:
<pre>[Desktop Entry]
; cwd : ''current work directory'', cio� la directory in cui � presente l'applicativo. � consigliato usare SEMPRE un percorso assoluto.
                                                     
; log_file : dove conservare i log di mongrel. Il valore di default va pi� che bene
Encoding=UTF-8   
; port : la porta iniziale per l'array di server mongrel
                                         
; environment : l'envirorment di rails da utilizzare... normalmente si usa production (essendo un server di produzione), ma in casi particolari si pu� inserire un nuovo ambiente.
Version=1.0   
; address : l'indirizzo IP su cui mettersi in ascolto. Le scelte pi� comuni sono:
                                     
:; 127.0.0.1 : il cluster sar� raggiungibile solo da applicazioni residenti sul server su cui � in esecuzione mongrel, impostazione consigliata a meno di configurazioni pi� complesse
Type=Application 
:; 0.0.0.0 : il cluster sar� raggiungibile da qualsiasi indirizzo esterno, scelta sconsigliata a meno che non ci si trovi in un ambiente protetto
                                                   
; pid_file : dove inserire i [[pid]] dei vari processi mongrel
Exec=/opt/obextool/obextool.tk
; servers : il numero di server mongrel da lanciare.
                                             
; user : l'utente che sar� usato per lanciare i server mogrel
Icon=/usr/share/pixmaps/reboot.png
; group : come sopra, ma relativo al gruppo
                                                 
Terminal=false       
                                                                                       
Name=Obextool     
                                                 
GenericName=             
                                               
Comment=Naviga all’interno del tuo Telefonino 
                               
Categories=Application;Utility;</pre>
                                             


{{box|Nota:|se si specifica un utente diverso da ''www-data'', sar� necessario crearlo... normalmente si utilizza l'utente ''mongrel'', e lo si pu� creare nel seguente modo:
Questo renderà Obextool immediatamente disponibile a tutti gli utenti e sistemerà un'icona d'avvio in Applicazioni->Accessori
<pre>
# adduser --system mongrel  --no-create-home --disabled-login --disabled-password
</pre>}}


 
{{Autori
== Apache ==
|Autore=[[Utente:Nel89|Nel89]]
Questo � un classico file di configurazione di apache per un VirtualHost, che sfrutta 3 server mongrel.
}}
 
[[Categoria: Bluetooth]][[Categoria:Cellulari&Palmari]]
<pre>
<Proxy balancer://www_test_it_mongrel_cluster>
  BalancerMember http://127.0.0.1:8000
  BalancerMember http://127.0.0.1:8001
  BalancerMember http://127.0.0.1:8002
</Proxy>
 
<VirtualHost *>
  ServerAdmin info@debianizzati.org
  ServerName www.test.it
  DocumentRoot /opt/ror/public/
  ErrorLog /var/log/apache2/www.test.it-error.log
 
  # Superflue, dato che ogni richiesta "non statica" viene gestita da
  # Mongrel, che usa RubyGems ed ha una configurazione indipendente.
  #  SetEnv RUBYOPT rubygems
  #  SetEnv RAILS_ENV production
  <Directory /opt/ror/public/>
    Options -ExecCGI FollowSymLinks -Indexes
    AllowOverride None
    Order allow,deny
    allow from any
  </Directory>
 
  # Inutile cercare di gestire la possibile mancanza di alcuni moduli: ci
  # servono e quindi assumiamo che siano disponibili.
  RewriteEngine on
 
  # Pagina di "manutenzione" per disabilitare l'accesso all'applicazione.
  RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f
  RewriteCond %{SCRIPT_FILENAME} !maintenance.html
  RewriteRule ^.*$ /maintenance.html [L]
 
  # Lasciamo le richieste "statiche" ad Apache.
  RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f
  RewriteRule (.*) $1 [L]
 
  # Le richieste "non statiche" vengono redirette ai membri del cluster.
  RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
  RewriteRule ^/(.*)$ balancer://www_test_it_mongrel_cluster%{REQUEST_URI} [P,QSA,L]
 
  # Comprimiamo un po' di cose.
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml
  AddOutputFilterByType DEFLATE application/xml
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</VirtualHost>
</pre>
le spiegazioni sono nei commenti del file di configuarzione. Consiglio di non cancellarli quando si utilizza questo template, in quanto possono sempre tornare utili nel futuro ;)
 
= Avvio, Arresto e Riavvio di un cluster Mongrel =
In questa parte del tutorial vedremo come lanciare, fermare e riavviare una batteria di server mongrel:
== Avvio ==
<pre>mongrel_rails cluster::start -C /opt/ror/config/mongrel.yml</pre>
== Arresto ==
<pre>mongrel_rails cluster::stop  -C /opt/ror/config/mongrel.yml</pre>
== Riavvio ==
<pre>mongrel_rails cluster::restart  -C /opt/ror/config/mongrel.yml</pre>
 
== Inserimento nel processo di Boot ==
Giunti a questo punto siamo in grado di gestire manualmente l'avvio, l'arresto e il riavvio di un cluster mongrel, per� siamo di fronte ad un problema: in caso di riavvio (accidentale o no) della macchina dovremo avviare manualmente tutti i vari cluster... questo problema non � assolutamente accettabile in un ambiente di produzione!!!
 
Per ovviare a tutti ci�, inseriremo negli script di boot (e di shutdown) uno script che si prender� il carico di avviare tutti i cluster mongrel da noi specificati.
 
=== File di Configurazione ===
I file di configurazione che verranno letti dallo script andranno inseriti nella directory '''/etc/mongrel_cluster/'''.
Normalmente non � una buona idea, nelle applicazioni in ruby on rails, inserire file di un progetto all'esterno della directory del progetto stesso, in quanto richiederebbe sempre un accesso alla macchina per l'aggiornamento del file di configurazione del cluster, soprattutto se si utilizza il comodo sistema di deploy ''capistrano''.
 
Per semplificarci la vita useremo un link simbolico. Supponiamo che la nostra applicazione sia in '''/opt/ror/''', e che il file di configurazione sia nella directory di configurazione dell'applicativo: '''/opt/ror/config/'''
 
<pre>
# ln -s /opt/ror/config/mongrel.yml /etc/mongrel_cluster/www.test.it.yml
</pre>
 
=== Inserimento dello script ===
Lo script si trova in '''/usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster''' (supponendo di avere installata la versione 1.0.5 di mongrel_cluster.
Per inserirlo nel processo di avvio � sufficiente eseguire i seguenti comandi:
<pre>
# cp /usr/lib/ruby/gems/1.8/gems/mongrel_cluster-1.0.5/resources/mongrel_cluster /etc/init.d/
# ln -s /etc/init.d/mongrel_cluster /etc/rc2.d/S90mongrel_cluster
</pre>
 
= Conclusione =
Giunti a questo punto abbiamo configurato alla perfezione sia apache che mongrel... se tutto funziona a dovere il nostro applicativo dovrebbe essere visibile dall'esterno ;)

Versione attuale delle 18:20, 19 mag 2015

Edit-clear-history.png Attenzione. Questa guida è da considerarsi abbandonata, per via del tempo trascorso dall'ultima verifica.

Potrà essere resa obsoleta, previa segnalazione sul forum, se nessuno si propone per l'adozione.


Debian-swirl.png Versioni Compatibili

Debian 6 "squeeze"
Debian 7 "wheezy"

Introduzione

Seguendo questa guida si possono collegare altri Cellulari oltre il Nokia 6630, tra cui Nokia 3230, 6670, 6680, 6682 e 7610, Sony Ericsson Z1010, LG U8110/8120.
Quando avrete finito di seguire questa guida potrete trasferire file da Debian al telefonino e viceversa tramite il cavetto in dotazione.

Configurazione

Aprire il file permissions di udev e aggiungere una riga, perciò da terminale digitare:

$ sudo gedit /etc/udev/rules.d/020_permissions.rules

e aggiungere questa riga:

BUS=="usb", SYSFS{idVendor}=="0421", SYSFS{idProduct}=="0410", GROUP="dialout"

(ovviamente i campi idVendor e idProduct possono cambiare rispetto al mio Nokia 6630, per verificarlo da terminale digitate:

$ lsusb

Inoltre dovete verificare se fate parte del gruppo "dialout" altrimenti aggiuntevi digitando:

$ sudo adduser nome_utente dialout

Pacchetti necessari

Per il collegamento con il PC è necessario installare i seguenti pacchetti:

# apt-get install openobex-apps libopenobex1 obexftp

inoltre dal sito http://www10.frugalware.org/pub/linux/frugalware/frugalware-stable/source/xapps-extra/tablelist/ bisogna scaricare il file tablelist4.6.tar.gz

e dal sito http://www.tech-edv.co.at/programmierung/en/gplsw.html#download scaricare il file obextool-0.33.tar.gz.

Poi scompattate il file obextool, rinominate la cartella obextool, e dentro scompattate il file tablelist.

Dopodiché digitate:

$ sudo gedit obextool/etc/obexwrap.sh

l'ultima riga dovrà essere così:

obexftp -u 1 "$@"

Nel file obextool/etc/obextool.cfg bisogna impostare a zero il valore della chiave set ObexConfig(config,memstatus) e, infine, nel file obextool/obextool.tk bisogna indicare dove abbiamo messo tablelist. L’istruzione è alla terza riga, inserite questo:

TCLLIBPATH=/opt/obextool/tablelist4.6/ exec wish "$0" ${1+"$@"}

Poi spostare obextool in /opt :

$ sudo mv obextool /opt
$ cd /opt
$ sudo chown -Rv root\: obextool/

Dopodiché installare bwidget:

# apt-get install bwidget

e creare un “Desktop file” per avviarlo da menù:

$ sudo gedit /usr/share/applications/obextool.desktop

e inserire queste righe:

[Desktop Entry]
                                                       
Encoding=UTF-8    
                                          
Version=1.0    
                                      
Type=Application  
                                                     
Exec=/opt/obextool/obextool.tk 
                                               
Icon=/usr/share/pixmaps/reboot.png
                                                  
Terminal=false         
                                                                                        
Name=Obextool       
                                                   
GenericName=              
                                                
Comment=Naviga all’interno del tuo Telefonino  
                                 
Categories=Application;Utility;


Questo renderà Obextool immediatamente disponibile a tutti gli utenti e sistemerà un'icona d'avvio in Applicazioni->Accessori




Guida scritta da: Nel89 Swirl-auth20.png Debianized 20%
Estesa da:
Verificata da:

Verificare ed estendere la guida | Cos'è una guida Debianized