lunedì 26 marzo 2012

Il mio server internet personale : parte 5 Il sito

Quale è il modo più veloce e funzionale per creare un sito senza avere una conoscenza approfondita di quelle che sono le tecnologie necessarie a svilupparlo ? Se il nostro obiettivo è quello di concentrarci sui contenuti e non sull'aspetto, con voglia di imparare, ma senza dover studiare in maniera esagerata, possiamo caricare sul nostro "apache" servitore di pagine un CMS, ovvero un sistema di manutensione dei contenuti. Uno strumento "dinamico" che ci permette con una serie di menu e scelte di amministrare l'aspetto e le varie caratteristiche che deve avere il nostro sito, permettendoci di partire da una base già pronta con diversi look da scegliere.... vediamo come installarlo.
innanzi tutto scarichiamo il pacchetto opensource del wordpress:

wget http://wordpress.org/latest.tar.gz

scompattiamo nella cartella var/www
creiamo un database

mysqladmin -u root -p create nomedatabase

verrà chiesta la password inserita in fase di installazione di mysql
poi entriamo in mysql

mysql -u root -p

vi verrà richiesta la password
poi creiamo un untente e gli assegnamo tutti i diritti sul database wp ed assegnamo la password 'non si dice'

GRANT ALL ON wp.* TO utentewp@localhost identified by 'Non si dice';

bene ora siamo pronti a configurare il wordpress

cd /var/www

editiamo il file i configurazione di esempio inserendo i nomi utente , db e password scelti

nano -w wp-config-sample.php

rinominiamo il file togliendo sample

mv wp-config-sample.php wp-config.php

 apriamo il browser ed il gioco è fatto !

mercoledì 21 marzo 2012

il mio server internet personale parte 4: apache

Parliamo di Apache, ma in maniera semplice, a tratti banale per rendere l'idea di cosa stiamo parlando senza cadere nel lato nerd della cosa :).
Apache è un web server ovvero un programma che serve pagine web, tu le ordini e lui te le da, o meglio le ordina il tuo browser per te, lui le prende dal disco e le passa al tuo broser che le mostra, sembra banale ma se pensate a quanti milioni di pagine vengono richieste sulla rete ogni secondo capite che anche una cosa apparentemente semplice va gestita come si deve. Aggiungiamo un po di dinamicità alle pagine web ovvero, non limitiamoci a prendere roba dal disco, ma elaboriamola prima di passarla all'utente, così nasce l'esigenza di avere un linguaggio che ci permette di fare calcoli o leggere da un archivio di dati e vien fuori che aache si può integrare con php (il linguaggio per le pagine dinamiche) e mysql (il programma che si occupa di archiviare un numero consistente di informazioni)
Abbiamo visto già nell'articolo dei pacchetti interessanti cosa installare
sudo apt-get install apache2 mysql-server mysql-admin php5-common php5 libapache2-mod-php5 php5-mysql
Durante l'installazione di mysql vi verrà richiesta la password dell'utente root, si tratta della password dell'utente principale del server dei dati, quello con cui potrete creare archivi ed utenti per gli archivi.
a questo punto funzionava tutto ma non l'integrazione di mysql all'interno di php, quindi ho risolto editando il file di configurazione di php.ini

sudo nano -w  /etc/php5/apache2/php.ini

ho aggiunto :
extension=mysql.so

daccordo ho seguito i passi ed ho visto un sacco di scritte scorrere, ho messo la password ma ora ? vogliamo vedere il risultato...

abbiamo detto che apache legge le pagine che vengono richieste dal disco, nel file di configurazione di apache c'e' specificato quale deve essere il file da fornire di default in caso non venga specificato, ovvero se io scrivo http://www.pincopallino.it/ non specifico il file da caricare, apache è istruito nel file di configurazione per tirare fuori il fil index.html se esiste, ma anche index.php ed altri particolari che potete scoprire nel file di configurazione di apache...
torniamo a noi andiamo a dare uno sguardo nella cartella :
/var/www
troviamo un index.html che è il file che viene caricato. Ora sappiamo che i nostri file devono essere messi qui per poter essere pubblicati.
se volessimo ora installare un cms ovvero un contenitore di documenti dinamico come wordpress o joomla siamo sulla buona strada :) ma casomai ne riparliamo nella prossima puntata :).


Il mio server internet personale : perte 3 La visibilità

Torneremo poi singolarmente sui servizi, vediamo di capire ora, come faccio a raggiungere il mio server ?

se mi collego ad un router (telecom nel mio caso) il router assegna al mio pc un indirizzo del tipo 192.168.1.x che non è raggiungibile da internet, mentre il mio router apprende un indirizzo del tipo 87.15.23.120 (l'ip citato è inventato) dal provider a cui mi collego, che invece viene visto da internet. Ovvero è un indirizzo pubblico, mentre nella mia rete ho indirizzi privati (192.168.1.x).
I vari servizi utili che abbiamo visto in precedenza hanno un numero di porta su cui si mettono in ascolto, ed un protocollo (tcp) che è un altra informazione da conoscere oltre all'indirizzo ip.

Prendiamo il caso del web-server, l'apache ascolta di default sulla porta 80 tcp.

Usiamo questa informazione per fare il primo passo, ovvero se qualcuno interroga il nostro router, il nostro router deve girare la richiesta al nostro server.
cose necessarie 2:
il nostro server deve avere un indirizzo ip statico, non dinamico, poichè nel tempo la configurazione deve restare la stessa, quindi configuriamo l'interfaccia di rete per non richiedere un indirizzo ip dal server dhcp del router ma imposta un indirizzo ip statico.
Mi riservo di tornare in questo punto ed integrare i passaggi tecnici per cambiare il file di configurazione della rete in maniera testuale, ovvero da terminale.
In maniera grafica basta configurare la scheda di rete impostando i dati manualmente settando l'indirizzo ad esempio a 192.168.1.250. ( non dimenticatevi di riempire gli altri campi come subnet o server dns)
Ora andiamo nella pagina principale del router, troviamo "port forwarding" ed andiamo ad aggiungere la regola : tutte le interrogazioni che arrivano sulla porta 80 devono finire sulla porta 80 dell'indirizzo 192.168.1.250.
Ora abbiamo un server web pubblico ! ammesso che il nostro apache stia girando, chiunque metta nell'indirizzo del proprio browser il nostro ip pubblico es http://87.15.23.120 (l'ip citato è inventato) vedrà il contenuto delle nostre pagine che stanno sul nostro server.
Sembra ovvio chiedere si ok ma non posso andare in giro a dire 87.15.23.120 (l'ip citato è inventato) mi prenderanno per pazzo :). Ebbene quello che fa un server dns è convertire i numeri in nomi più umanamente accettabili.
Un server dns deve essere visibile, conosciuto ed affidabile, ed anche se avessimo un nostro dns abbiamo ancora un altro problema, l'indirizzo 87.15.23.120 (l'ip citato è inventato) spesso cambia ogni volta che si riavvia il router... allora... come facciamo ad avere un servizio gratuito fatto in casa ?
io ho usato dnsdynamic.org che mi sembrava semplice gratuito e veloce.
una volta iscritti e confermata l'iscrizione ( non mandano spam sulla posta ) si può scegliere il nome che vogliamo usare tra una serie abbastanza grande di domini primari..
scegliamo la voce di menù del sito manage ed aggiungiamo il nome che ci piace con l'estensione che ci piace es : tecnocchio.dnsd.info ne verifichiamo la disponibilità e salviamo.
Vi starete sicuramente chiedendo, ok per questa volta l'ip va bene, ma quando cambia chi lo cambia ?
sudo apt-get istall ddclient
in fase di installazione vi chiederà i parametri di configurazione, unica cosa che ho dovuto cambiare poi a mano perchè non mi era chiara è stata quando mi ha chiesto la scheda di rete, avevo messo eth0 ma non andava bene perchè assegnava 192.168.1.250, li ci vuole l'indirizzo ip pubblico che si ottiene tramite web quindi...
sudo nano -w /etc/ddclient.conf
editiamo la riga use:
 use=web, web=myip.dnsdynamic.com        # get ip from server.
come spiega qui : https://www.dnsdynamic.org/api.php

io fossi in voi romperei le scatole a qualche amico online e gli direi di aprire nel browser l'indirizzo tecnocchio.dnsd.info ovvero quello che avete scelto voi per vedere se il vostro server internet personale pubblico fatto in casa funziona!

il mio server internet personale parte 2: le potenzialità

Servizi interessanti da installare :

ssh :
Se vogliamo accedere al server da remoto con la potenza del terminale di linux e la sicurezza di un canale cifrato. Quello che si può fare con il server ssh riempirebbe parecchi libri, spero di postare un articolo in merito con il tempo :), per ora ci limitiamo a capire che con ssh mi trovo sul mio server anche quando sono lontano :).sudo apt-get install openssh-server

web:
Un server web è un programma che ti distribuisce le pagine che tu leggi navigando su internet. Generalmente è possibile affittare uno spazio online già configurato anche a prezzi bassi, tuttavia, tra i servizi che possiamo mettere sul nostro server personale, questo è il primo che vedremo. 
sudo apt-get install apache2 mysql-server mysql-admin php5-common php5 libapache2-mod-php5 php5-mysql
...

svn:
 Sviluppare programmi in compagnia è la cosa + bella che ci sia, per un gruppo di nerd, per un gruppo di amici invece è semplicemente una bella esperienza. Tuttavia c'e' bisogno di tenere a disposizione di tutti il lavoro e di tenere traccia di tutte le modifiche, considerando che i server su internet gratuiti limitano ad essere open, diventa interessante avere un proprio server fin che non si decide di rilasciare il progetto. Esistono vari strumenti per conservare i sorgenti, l'svn è solo 1, valuteremo con calma quale è il più opportuno da usare.


ftp:
Quale modo più semplice per avere la nostra "nuvola" programmi che permettono di prendere file o depositare file da server ftp esistono per i + disparati dispositivi. Se al nostro serverimo agganciamo un disco esterno usb da 2 tera abbiamo quei dati potenzialmente dovunque... è pur vero che è assurdo prentendere di far passare file di grandi dimensioni tramite l'adsl, ma se ci accontentiamo possiamo goderci la nostra nuvoletta privata.


Il mio server internet personale, parte 1 il server

Il mio server internet personale :

Prendiamo un pc, ( un mini pc o un ebook mezzo rotto una beagle board ) lo mettiamo dietro al router adsl (io ho telecom), installiamo linux ed i nostri server, configuriamo un dns dinamico. e possiamo raggiungere il nostro server internet personale da qualunque parte. Cioè da una qualunque postazione internet io scrivo mionome.serviziodns.xxx e mi appaiono i servizi del mio server.

Fase 1:
   Installazione di un sistema operativo Linux...
Per praticità scelgo una distribuzione ubuntu based, lubuntu è la scelta più appropriata per macchine non troppo prestanti, ma volendo possiamo salire a xubuntu.
scarichiamo dal sito di ubuntu il file iso del cd di installazione.
https://help.ubuntu.com/community/Lubuntu/GetLubuntu
oppure
http://www.ubuntu-it.org/derivate/xubuntu
volendo procedere con una penna usb scarichiamo unetbootin a meno che non abbiamo un lettore cd un cd vuoto ed un masterizzatore a portata di mano.
http://unetbootin.sourceforge.net/
con unetbootin creiamo una penna usb o una memory card autostartante con il disco di installazione scegliendo il file iso scaricato e la periferica scelta per l'uso.
Il pc dovrebbe avviarsi dalla periferica preparata, sia essa la penna usb sopra preparata o il cd masterizzato.
Durante l'installazione è comodo che la macchina sia già collegata ad internet in modo tale da scaricare direttamente i pacchetti di lingua e di aggiornamenti. Il cavo di rete è sempre il collegamento migliore. Non ci sono particolari cose a cui stare attenti durante l'installazione, soprattutto se il pc è dedicato solo a questo scopo come nel mio caso.
a termine installazione da terminale:
sudo apt-get update
sudo apt-get upgrade
aggiorneranno il sistema in uso con le ultime versioni dei pacchetti.

martedì 20 marzo 2012

root di uno smartphone android

Io ho un acer liquid, telefono abbastanza attempato ormai, con poca ram e processore pigro.
 Qualcomm Snapdragon 8250 a 768 MHz memoria interna: 512 Mb
Esce di serie con 1.6 ma esiste l'aggiornamento ufficiale alla 2.1, semi ufficiale 2.2

Root  e miui :

Molto spesso in giro si parla di root, di telefono rootato di permessi di root, ma poi , alla fine se sono root che vantaggi ho ?

Il processo per ottenere i permessi di root sul telefono varia da versione a versione di android e di telefono, ma basta cercare un po in rete per trovare metodi veloci per il proprio smart phone.

Una volta rootato il telefono spesso avete una applicazione che si chiama superuser, ma veniamo al dunque, cosa possiamo fare di utile:

1) Con i permessi di root è possibile cancellare applicazioni di default.
2) Installare un programma di recovery e backup delle rom.
3) Installare programmi che permettono di modificare i file del telefono.
4) installare programmi che permettono di gestire le autorizzazioni di tutte le app.

1) Dicevo che il mio smartphone è un pò datato, ha poca ram e di serie ci sono delle applicazioni che ha messo la acer di dubbia utilità, insomma l'acqua è poca e sprecarla è un peccato.
Ho installato una applicazione gratuita che siccome il telefono è rootato mi permette di disinstallare anche le app in (stok) ovvero di serie....
Tuttavia !!!!
State attenti a non cancellare cose di cui potreste pentirvi :) ovviamente potete fare danni in questo modo. Il mio consiglio è quello di avere il recovery ed un backup, così arrivaimo al punto

2) Ho trovato almeno un paio di programmi di recovery, di cui uno non funzionava, l'altro gira bene... di cosa parlo:
Un programma spartano che si mette potenzialmente prima del boot e che si avvia accendendo il telefono tenendo premuti tasto volume, accensione e fotocamera. ha un menù a tendina che si scorre con i tasti volume e permette di :
fare backup della rom sulla memoria sd
fare il ripristino di backup dalla memoria sd
installare rom cucinate tipo cyanogen o miui
In questo modo posso fare un backup del mio telefono, sperimentare il mondo e tornare indietro in ogni momento al punto da cui ero partito senza avere la paura di restare con un fermacarte costoso in mano.
A tal proposito ho sperimentato sul mio acer la rom MIUI. La versione di android è 2.3.7 quando parte appare lo screen di mee-go, non ha un menù con le applicazioni, ha parecchie applicazioni e funziona tutto, eccetto l'uso del telefono come modem per internet senza teetering. E' molto più fluido e l'interfaccia grafica è veramente bella. Ora sono in attesa che esca la 4 :) .

3) con i permessi di root si può montare in lettura e scrittura il file system andando a fare potenzialmente danni sul telefono o a cambiare una bitmap dell'avvio personalizzata o altre cose carine, purchè si abbia sotto controllo la situazione.

4) Ho installato un software che si chiama LBE. fa bene 3 cose :
 a) funziona da guardia avvisando le operazioni che il telefono effettua.
 b) visualizza il traffico del telefono e permette di impostare delle soglie di avviso mensili distinguendo tra wi-fi e rete telefonica
 c) permette di visualizzare dividendo per permessi tutte le app che hanno quel permesso specifico, e nel caso di negare, acconsentire o chiedere conferma per quel determinato permesso siano app preinstallate o no.
Ovviamente quando ho visto questa caratteristica mi è piaciuta tantissimo. Poter negare ad una applicazione permesso per permesso lo ritengo un grande guadagno per la privacy, secondo me, vale la pena fare il root al telefono anche solo per questo.

ICS ovvero android 4:
Il mio tablet asus tf101 ieri ha avuto l'onore di essere passato ufficialmente ad android 4.
Le novità rispetto alla versione 3 non sono tantissime, tuttavia sembra sempre stabile fluido e scorrevole. Se a qualcuno interessa sapere qualche particolare, me lo chieda pure.