A partire da Debian 6.0 (Squeeze), la procedura di boot da dispositivo USB o SD card è stata ulteriormente semplificata. Questo consentirà, a chi volesse installare Debian, di impartire un unico comando per la creazione di un dispositivo (USB o SD card) bootabile.
È sufficiente scaricare un'immagine .iso (primo CD/DVD, netinst o mini.iso, vedi la guida Installare Debian), accertarsi che il dispositivo non sia montato e che la sua capacità sia tale da contenere l'immagine. Quindi basta un:
# dd if=/percorso/nome_immagine.iso of=/dev/sdb bs=4M; sync
e ritrovarsi una pendrive USB o una scheda SD bootabile per installare Debian.
Utilizzare il comando:
# fdisk -l
per dissipare eventuali dubbi.
# nano /etc/fstab
ed eliminare la riga relativa al pseudo CD/DVD. Facendo ciò i supporti USB verranno riconosciuti correttamente.
Per creare una pendrive USB o una SD card bootabile utilizzando altri sistemi operativi, è necessario far ricorso a programmi appositi. In giro per la Rete se ne trovano tanti e molti sono anche gratuiti.
Uno di questi potrebbe essere, ad esempio, UNetbootin. Il programma è rilasciato sotto licenza GPL ed è prelevabile e utilizzabile gratuitamente su piattaforme GNU/Linux, Windows e Mac.
UNetbootbin sembra non funzionare con alcuni debian installer (l'USB viene avviato, ma l'installazione a un certo punto si blocca perché non trova il CD). Uno dei software Windows in grado di creare, sicuramente, un pendrive USB funzionante per l'installazione Debian è PowerISO (gratuito/nag screen). Si consiglia la vecchia versione 4.9 che non installa adware. Lanciato il programma, dal menù "Strumenti > Create Bootable USB driver" sarà possibile creare la propria USB avviabile con l'installer Debian.
Deselezionare tutto a parte il server ssh e la configurazione standard (ultima riga). Non installare ambiente grafico!!!!
Login come root e dare:
$ apt-get install sudo
Aggiungere l'utente pippo al gruppo sudo:
# adduser pippo sudo
Dopo essere stati aggiunto ad un nuovo gruppo, l'utente deve fare il logout e quindi di nuovo il login affinché l'impostazione del nuovo gruppo abbia effetto. I gruppi vengono assegnati agli utenti solamente al momento del login. Una della maggiori fonti di confusione viene proprio dal fatto che gli utenti si aggiungono ad un gruppo, ma poi non fanno il logout e di nuovo il login e poi hanno problemi perché non sono ancora stati assegnati ad un gruppo. Si può controllare di quali gruppi si fa parte usando i comandi id o groups.
Effetuare la modifica del file /etc/apt/source.list con il comando:
$ sudo nano /etc/apt/source.list
Alle righe attive, aggiungere i repo contrib e non-free, in modo che le righe attive passino da così:
deb http://ftp.it.debian.org/debian/ wheezy main
a così:
deb http://ftp.it.debian.org/debian/ wheezy main contrib non-free
Questa è più una cosa mia, resa necessaria dal mio hardware, comunque la scrivo, hai visto mai che serva a qualcuno.
Dicevo.. installiamo il file firmware-realtek con il comando:
$ sudo apt-get install firmware-realtek
E tutto dovrebbe andare a buon fine. A questo punto un bel riavvio:
$ sudo reboot
Per tale motivo modifichiamo il file /etc/network/interfaces tramite il comando:
$ sudo nano /etc/network/interfaces
e, posto che la nostra rete sia collegata ad un router con IP 192.168.0.1, rendiamolo simile al seguente:
# 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
# The primary network interface auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
In questo caso, l'interfaccia di rete utilizzata è eth0 e l'IP assegnato è 192.168.0.100. Per conoscere le interfacce di rete presenti sulla propria macchina è possibile utilizzare il comando ifconfig, che fornirà un elenco di tutte quelle collegate ed attive. L'IP può essere scelto a piacere, purché sia del tipo 192.168.0.X, dove X è un numero compreso tra 2 e 254.
Andiamo adesso a modificare il file /etc/hosts per far sì che la macchina riconosca l'indirizzo IP scelto:
$ sudo nano /etc/hosts
e aggiungiamo la riga
192.168.0.100 ubuntu
utilizzando lo stesso IP scelto prima, e dove ubuntu è il nome di host che abbiamo assegnato alla macchina durante la fase di installazione, reperibile anche tramite il comando
$ cat /etc/hostname
Passiamo alla configurazione dei server DNS, tramite la modifica del file /etc/resolv.conf:
$ sudo nano /etc/resolv.conf
Una scelta universale è quella di utilizzare il servizio gratuito offerto da OpenDNS, aggiungendo a tale file le seguenti righe:
# OpenDNS
nameserver 208.67.220.220
nameserver 208.67.222.222
Riavviamo la macchina tramite il comando
$ sudo reboot
e testiamo la connessione “pingando” un sito web a piacere, ad esempio
$ ping www.google.it
Nel caso in cui tutto sia stato configurato in maniera corretta, si riceverà una risposta ai pacchetti inviati tramite ping, segno che la connessione funziona, altrimenti è necessario riconfigurare i parametri di rete e correggere eventuali errori commessi.
Login come root e dare il comando:
# apt-get install ntfs-3g
Adesso abbiamo anche la possibilità di montare dischi ntfs in scrittura
Login come root e modificare il file /etc/ssh/sshd_config:
$ nano /etc/ssh/sshd_config
Disattivare l'uso dell'account root (PermitRootLogin no) e riavviamo la macchina tramite il comando
$ sudo reboot
Creiamo le directory di mount-point tramite il comando:
sudo mkdir /mnt/disk
sudo mkdir /mnt/disk/2t
sudo mkdir /mnt/disk/4t
sudo mkdir /mnt/disk/usb1
sudo mkdir /mnt/disk/ftp1
Prendiamo gli UUID della macchina con il comando:
$ sudo blkid
Copiare e incollare gli UUID da montare, aggiungendo le righe nel file /etc/fstab tramite il comando
$ sudo nano /etc/fstab
Le righe da aggiungere saranno del tipo:
UUID=xxxxxxxxxxxxxxxxxxx /mnt/disk/XX ext3 defaults 0 0
XX è il mount-point. Atraverso l'uso del UUID, abbiamo la possibilità di inserire anche le righe di vari dischi usb direttamente nel file fstab, indipendentemente da come sina riconosciuti (sdb, sdc, sde, ecc.) e quindi la possibilità poi di montarli "al volo" con un:
$ sudo mount -a
ovviamente con le opportune opzioni specificate nel file fstab, per esempio una riga del tipo:
UUID=xxxxxxxxxxxxxxxxxxx /mnt/disk/usbX ntfs-3g defaults 0 0
Riavviamo la macchina tramite il comando:
$ sudo reboot
e controlliamo se il montaggio è stato effettuato correttamente.
Installiamo il client ddclient con il comando:
$ sudo apt-get install ddclient
Da Debian, con l'installazione chiede già i parametri, ma comunque si possono editare con il comando:
$ sudo nano /etc/ddclient.conf
e apportiamo le seguenti modifiche al file /etc/ddclient.conf:
# /etc/ddclient.conf
protocol=dyndns2
use=web, web=checkip.dyndns.it
server=dyndns.it
login=INSERIRE_IL_PROPRIO_USERNAME
password='INSERIRE_LA_PROPRIA_PASSWORD'
INSERIRE_IL_NOME_HOST DA AGGIORNARE
A questo punto un controllo con il comando:
$ ddclient -debug
Se tutto è regolare, riavviamo il servizio con il comando:
$ sudo service ddclient restart
Installiamo il media server miniDLNA con il comando:
$ sudo apt-get install minidlna
Fermiamo il servizio con il comando:
$ sudo service minidlna stop
e apportiamo le seguenti modifiche al file /etc/minidlna.conf:
port=9500
media_dir=V,/path/Videos
media_dir=A,/path/Music
media_dir=P,/path/Pictures
serial=
model_number=AllShare1.0
network_interface=eth0 # change appropriately, e.g. wlan0 if you stream from wireless
friendly_name=miniDLNA # how miniDLNA is named on the TV
enable_tivo=no
strict_dlna=no
notify_interval=900
riavviamo il servizio con il comando:
$ sudo service minidlna force-reload
Nella configurazione standard, il db si trova in /var/lib/minidlna.
Installiamo samba con il comando:
$ sudo apt-get install samba cifs-utils
Fermiamo il servizio con il comando:
$ sudo service samba stop
e apportiamo le seguenti modifiche al file /etc/samba/smb.conf, sezione GLOBAL:
[global]
workgroup = GRUPPODILAVORO
server string = DESCRIZIONE
allow hosts = 192.168.1.0/24
wins support = yes
security = share
share modes = yes
encrypt passwords = no
e alla fine del file, aggiungere le condivisioni (questo esempio è di condivisione TOTALE della cartella ESEMPIO):
[nomecondivisione]
comment = commento_condivisione
path = /path/da/condividere/ESEMPIO
read only = no
guest ok = yes
guest only = yes
create mask = 0777
directory mask = 0777
Controlliamo la configurazione con il comando:
$ sudo testparm
e, se tutto è ok, riavviamo samba:
sudo service samba start
Installiamo il media server Proftpd con il comando:
$ sudo apt-get install proftpd
Fermiamo il servizio con il comando:
$ sudo service proftpd stop
e apportiamo le seguenti modifiche al file /etc/proftpd/proftpd.conf:
UseIPv6 off
ServerName "NomeServer"
DefaultRoot /
MaxInstances 3
riavviamo il servizio con il comando:
$ sudo service proftpd start
Nella configurazione standard, la maschera file e directory è 022.
$ sudo apt-get install apache2
Guida per installare Apache2 su Debian Oggi, per testare alcuni script in PHP, ho installato Apache2 sulla mia Debian. Ho scritto questa mini guida all'installazione e configurazione. Come utente root, al prompt /home/tuonomeutente# digita: apt-get update Invio Così aggiorniamo la lista pacchetti. Per installare apache digita, sempre da root: apt-get install apache2 Invio. Ti chiederà conferma: Continuare (S/n)? digitate S e date invio. Per installare php5 e il pannello amministrazione database, da root digita: apt-get install libapache2-mod-php5 php5-gd php5-mysql phpmyadmin Invio. Ti chiederà conferma: Continuare (S/n)? digitate S e date invio. Nel terminale comparirà: Configurazione del pacchetto Server web da riconfigurare automaticamente: │ [ ] apache2 │ [ ] apache │ [ ] apache-ssl │ [ ] apache-perl │ [ ] lighttpd Seleziona apache2, premendo barra spaziatrice. Con tasto tab, spostarsi su ok e dare invio. Riavvia il server apache, sempre da root, digitando: apache2 restart Invio. Nel terminale comparirà: Usage: apache2 [-D name] [-d directory] [-f file] [-C "directive"] [-c "directive"] [-k start|restart|graceful|graceful-stop|stop] [-v] [-V] [-h] [-l] [-L] [-t] [-S] [-X] Options: -D name : define a name for use in directives -d directory : specify an alternate initial ServerRoot -f file : specify an alternate ServerConfigFile -C "directive" : process directive before reading config files -c "directive" : process directive after reading config files -e level : show startup errors of level (see LogLevel) -E file : log startup errors to file -v : show version number -V : show compile settings -h : list available command line options (this page) -l : list compiled in modules -L : list available configuration directives -t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings) -S : a synonym for -t -D DUMP_VHOSTS -t -D DUMP_MODULES : show all loaded modules -M : a synonym for -t -D DUMP_MODULES -t : run syntax check for config files -X : debug mode (only one worker, do not detach) Tutto ok! Installiamo mysql, sempre da root: apt-get install mysql-server invio vi chiederà conferma: Continuare (S/n)? digitate S e date invio. Nel terminale comparirà:Configurazione del pacchetto Configurazione in corso di mysql-server-5.0 Sebbene non sia obbligatoria, si raccomanda d'impostare una password per l'utente d'amministrazione «root» di MySQL. Se questo campo è lasciato vuoto, la password non viene cambiata. Nuova password per l'utente «root» di MySQL: Per ragioni di sicurezza digita una nuova password, cerca di non dimenticarla, ti servirà in futuro.Tab->ok->invio. Per verificare se tutto funziona correttamente, nella barra indirizzi, di firefox , digita: http://127.0.0.1/ oppure http://localhost/ il risultato sarà: It works! Per provare gli script, in php, inserisci un file nometuofile.php nella directory /var/www detta anche DocumentRoot del web server. Dopo, nella barra degli indirizzi, scrivi questo comando: http://localhost/nometuofile.php Ti consiglio, da terminale root, di spostarti nella cartella /var/www Al suo interno crea un file test.php con un editor, es VI. Quindi al prompt: vi test.php Al suo interno inserisci Per eseguire il file , nella barra degli indirizzi, del tuo browser, digita questo comando: http://localhost/test.php Dovrebbe comparire una pagina con tutte le varie info riguardanti php. Quindi avrai la certezza che tutto gira perfettamente. Controlliamo che il database stia in esecuzione. Da terminale root al prompt digita: mysqladmin -u root -p ping Ti chiederà la password, digita quella che hai inserito durante l'installazione. Premi invio. Se tutto fila liscio, il risultato sarà: mysqld is alive Per avviare phpMyAdmin, nella barra indirizzi digita: http://127.0.0.1/phpmyadmin/ in nome utente metti root in password inserisci la password che hai settato prima per mysql. Così, in modalità grafica, potrai creare tabelle e smanettare con i parametri. Buon PHP a tutti! Fine!
Una guida per introdurre l’utente all’installazione, gestione e manutenzione di un server LAMP. Per l’installazione abbiamo scelto di utilizzare un sistema linux con distribuzione Debian.
>>Introduzione
Questo articolo ha come intento l’introdurre l’utente all’installazione, alla gestione e alla manutenzione di un server LAMPsu un sistema Debian affidandosi al suo sistema di pacchettizzazione (apt-get).
Un sistema LAMP è un server Linux pensato per l’hosting di applicazioni web, nello specifico basate sul linguaggio PHP ed eventualmente che si avvalgono del database MySQL.
Ho scelto Apache anche per il suo vasto uso su scala mondiale che comporta una maggiore conoscenza e know-how di molti utenti, e di conseguenza anche da parte della quasi totalità dei programmatori web.
Si fa riferimento alla distribuzione Debian per i grandi strumenti di amministrazione e manutenzione che essa fornisce, per le politiche che seppur “conservative” ritengo si rivelino spesso azzeccate per la continuità del servizio e poiché è sicuramente una delle distribuzioni più usate nell’ambiente server.
La guida, per poter portare utilità al maggior numero di scopi, farà riferimento ad un’implementazione generica con Apache 2.2, PHP 5.2 e MySQL 5.0, presenti nei repository di Debian Etch (stable) al momento della scrittura dell’how-to.
In situazioni particolari, come ad esempio la configurazione di un server per webhosting a livello professionale, che richiede un’alta privacy ed un grado elevato di “separazione” dei virtual hosts (siti web) ospitati, è consigliabile studiare una situazione prima e preparare un progetto adeguato.
Nella prossima pagina la preparazione del sistema.
>>Preparazione del sistema
È necessario collegarsi al sistema da configurare attraverso il protocollo SSH, usando ad esempio PuTTy su Windows o ssh da linea di comando da un client Linux.
Se si vuole lavorare sul sistema locale si deve effettuare il login da console testuale od aprire un terminale grafico (come xterm).
Sia che si tratti di un sistema locale che si effettui il lavoro su un server remoto è necessario acquisire lo status di root attraverso su o sudo, se non si è già effettuato l’accesso con questo utente.
Effettuiamo l’aggiornamento della lista dei pacchetti disponibili con il comando:
Ora è possibile continuare con l’installazione del demone Apache, del suo modulo per il supporto a PHP e del server database MySQL, vediamolo nella prossima pagina.
>>Installazione di Apache, PHP e MySQL
Procediamo quindi all’installazione del server web Apache, che servirà le pagine web ai visitatori dei siti web.
È sufficiente eseguire il comando:
Possiamo configurare alcuni parametri importanti del demone, aprendo con un editor di testo come nano il file /etc/apache2/apache2.conf e modificando i valori di:
ServerName con il nome da attribuire al server web;
DocumentRoot con la directory dove posizionare i file. Si può però benissimo lasciare /var/www che ha i giusti permessi per far si che i files siano visualizzabile dal web.
Installiamo quindi il supporto PHP5, i suoi moduli per le funzioni grafiche GD, per interfacciarsi con il database MySQL e phpMyAdmin per la gestione dei database con il comando:
Nella prossima pagina controlliamo se tutto funziona correttamente e impostiamo la gestione dei files e degli aggiornamenti.
>>Controllo del funzionamento, gestione dei files e gestione degli aggiornamenti
Ci si può accertare del corretto funzionamento del sistema LAMP appena installato posizionando nella directory /var/www (se non si è modificata la DocumentRoot) un file chiamato info.php con il seguente contenuto:
phpinfo ();
?>
Una volta salvato il file, si può visitare la pagina all’indirizzo http://IP/info.php, sostituendo IP con l’IP pubblico del server o con 127.0.0.1 se si sta lavorando in locale.
Se tutto è andato correttamente, si vedrà una pagina di informazioni su PHP, su alcune impostazioni del server e dell’interprete e sui moduli installati.
Inoltre, sarà possibile gestire le utenze MySQL, i database e i privilegi su questi ultimi all’indirizzo http://IP/phpmyadmin
Per quanto concerne gli aggiornamenti, è consigliato dare periodicamente i seguenti comandi:
per far si che la lista dei pacchetti si aggiorni e che i pacchetti installati (e quindi Apache, MySQL, PHP) facciano altrettanto.
Buon divertimento con il vostro sistema LAMP pronto per essere usato per ospitare, magari per test, piccoli portali o per provare CMS o applicazioni web in genere.
È certamente possibile modificare alcune configurazioni di PHP (/etc/php5/apache2/php.ini) per esigenze particolari e anche di MySQL (/etc/mysql/my.cnf) per aumentarne le prestazioni.
Poiché i parametri dipendono fortemente dalle applicazioni utilizzate e dall’hardware del server utilizzato, è consigliato chiedere suggerimento, fornendo informazioni adeguati, magari nel forum di HostingTalk.
Se non presente installare il pacchetto hdparm con il comando:
$ sudo apt-get install hdparm
Una volta installato dobbiamo procurarci l'id del disco su cui vogliamo agire con il comando:
ls -l /dev/disk/by-id/
Questo comando ci restituirà l'elenco dei dischi con etichetta: attenzione a prendere il disco e non le partizioni. Da scegliere quello che inizia per ata- Una volta ottenuto l'id del disco dovremmo aggiungere al file /etc/hdparm.conf le seguenti righe:
/dev/disk/by-id/ata-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {
spindown_time = 180
}