Nicholas Giordano

Cloud Arch. & Full Stack Developer

Estendere partizione LVM su un VPS

Per chi avesse mai acquistato un server virtuale presso un qualsiasi servizio cloud: Aruba, Register o simili; una volta configurata per la prima volta la propria macchina dopo aver scelto i tagli di memoria, la tipologia di processore e lo spazio di archiviazione può nascere l’esigenza di modificare uno di questi parametri per un qualsiasi motivo. Modificare potenza di calcolo e tagli di memoria è un’operazione abbastanza banale in quanto ci basterà recarci sul nostro pannello di amministrazione del servizio e semplicemente aggiungere più RAM o più cores alla nostra macchina e i cambiamenti saranno subito applicati dopo un riavvio. Per quanto riguarda invece lo spazio di archiviazione il discorso è differente in quanto si, si può aggiungere più “spazio” di memoria semplicemente acquistandolo dal nostro pannello clienti, ma questo non sarà automaticamente disponibile in quanto non automaticamente allocato.

In questo breve articolo vediamo dunque come estendere la partizione primaria del nostro vps con l’eventuale “free space” acquistato.

ATTENZIONE: prima di effettuare qualsiasi operazione di ridimensionamento o partizionamento è fondamentale eseguire un backup di tutti i dati presenti sulla macchina onde evitare di perdere tutto nel caso di errori! Se leggendo questa guida non sei sicuro di quello che stai facendo contatta il tuo fornitore di servizi che ti fornirà supporto tecnico (a pagamento).

Passo 1: creazione di un nuova partizione con lo spazio non allocato

Colleghiamoci tramite ssh alla nostra macchina e utilizzando cfdisk andiamo a creare una nuova partizione: questa dovrà essere di tipo Logico e avere il formato 8E. Possiamo fare tutto ciò digitando cfdisk sulla riga di comando e utilizzare le frecce direzionali per selezionare lo spazio allocato, cliccare su new, impostare tipologia e formato e poi fare click su write per salvare le modifiche.

Passo 2: creare un volume fisico per la partizione creata

Una volta creata la partizione ad essa sarà assegnato un riferimento (es: /dev/sda6), dobbiamo a questo punto creare un volume fisico per questa partizione e per farlo ci basterà fare da riga di comando:

pvcreate /dev/sda6

*in caso di errori, nel caso in cui ad esempio il sistema indichi che la partizione /dev/sda6 (nel nostro caso) fosse non pronta o non trovata ci basterà riavviare la macchina virtuale e ripetere la creazione del volume fisico.

Una volta fatto ciò andiamo a controllare i volumi fisici, diamo quindi il comando

pvdisplay

che ci restituisce un qualcosa di simile:

E’ fondamentale ricordare il vg name dell volume appena creato per la nostra partizione

Passo 3: estendere il volume appena creato

Possiamo farlo ricordandoci il vg name e dando il comando

vgextend vg /dev/sda6

Passo 4: controllare il volume logico da espandere

Il volume logico da espandere non è altro che la partizione virtuale alla quale vogliamo aggiungere il nostro “free space” che in questo momento della guida corrisponde al volume /dev/sda6 precedentemente creato.

Per far ciò in primo luogo dobbiamo capire il nome della partizione logica da espandere, digitiamo quindi

lvdisplay

che ci restituirà qualcosa del genere

una volta compreso il nome del volume da espandere da terminale possiamo dare il comando

lvextend -l+100%FREE /dev/vg/lv_root

che espanderà il nostro volume logico, ed infine per espandere il file system e rendere disponibile lo spazio non allocato diamo il comando

resize2fs /dev/mapper/vg-lv_root

Una volta fatto ciò il nostro disco primario risulterà aumentato dello spazio specificato al momento della creazione della partizione /dav/sda6

Passo 5: controllare che tutto si andato come dovrebbe

Per controllare l’effettiva applicazione delle modifiche basterà dare il comando

df -h

Una volta fatto ciò non sarà inoltre necessario riavviare la nostra vps. I cambiamenti saranno immediati.

😀

Configurazione di base di un web server linux: Apache, PHP e Mysql

Mai avuto necessità o curiosità di installare / configurare un web server linux?

Ci sono tanti modi di mettere online un sito web, possiamo utilizzare uno dei tanti piani di hosting messi a disposizioni da uno dei tantissimi provider, oppure possiamo aver bisogno di una soluzione più personalizzabile, più potente o magari necessitiamo di funzioni che il semplice piano di hosting, con tutte le sue “limitazioni” non ci permette di implementare. In questa breve e semplice guida vedremo come installare e configurare un server LAMP (Linux-Apache-Mysql-PHP) sulla nostra macchina linux o il nostro ipotetico server remoto (VPS o dedicato che sia).

Vedremo passo passo come installare i componenti e i servizi che permettono ad una macchina connessa in rete di diventare un vero e proprio erogatore di servizi online. La seguente guida può essere utile per tutti coloro che per la prima volta passano da un piano hosting (dalla pappa pronta insomma), ad una soluzione molto più personale e per certi versi affidabili. Non vedremo come trasformare il nostro computer di casa in un server (ci sarebbero troppe questioni su DNS, NameServer e IP statici da analizzare, cosa che farò in un altra guida).

Passo 1: Connessione alla macchina remota

Passaggio fondamentale è collegarsi tramite SSH (secure shell), alla macchina remota (VPS o server dedicato) che dobbiamo andare a configurare, volendo possiamo anche creare un web server locale (e questa cosa possiamo farla anche con il nostro computer di casa o dell’ufficio, con un raspberry o una qualsiasi board computer), ma in questo caso non sarà necessario effettuare nessun collegamento ssh bensì semplicemente basterà aprire un terminale.

Apriamo un qualsiasi terminale UNIX e digitiamo:

1
ssh root@ip_macchina

dove andremo a sostituire con ip_macchina l’indirizzo IP della macchina alla quale vogliamo collegarci.

Se la connessione andrà a buon fine ci verrà chiesto di memorizzare una chiave e di inserire una password (quella dell’utente root della macchina remota alla quale ci stiamo connettendo), ed una volta fatto ciò ci si aprirà all’interno del terminale la shell della macchina remota, proprio come se stessimo eseguendo un terminale su quella macchina.

Se avete un sistema Windows e volete collegarvi tramite SSH potete utilizzare il programma Putty.

Passaggio 2: Installazione di Apache

Andiamo ora ad installare il cuore del nostro web server, Apache2, che sarà la piattaforma per il nostro web server. Ci sono anche altri programmi come Apache, ad esempio ngix, ed in seguito vedremo come e quando utilizzarne uno o l’altro.

Da terminale digitiamo:

1
sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert

Ad installazione conclusa dobbiamo ora attivare Apache2 (che  è un servizio), per attivarlo/disattivarlo/riavviarlo basterà digitare da terminale

4
5
6
7
sudo service apache2 start //per avviarlo
sudo service apache2 stop //per fermarlo
sudo service apache2 reload //per applicare modifiche alle impostazioni
sudo service apache2 restart //per riavviarlo

Ora navigando verso l’indirizzo IP della nostra macchina, o andando su localhost (se siamo in locale digitate semplicemente localhost nell’indirizzo del browser oppure il vostro IP locale 127.0.0.1), dovremmo vedere una schermata del genere:

schermata-da-2016-09-20-08-43-59

Se ciò accade significa che abbiamo fatto tutto correttamente e che Apache è stato correttamente installato. A questo punto possiamo già mettere online un sito web in HTML, senza utilizzare PHP o un database, ma raramente i siti web moderni vengono realizzati senza questi due elementi.

Passaggio 3: Installazione di PHP

Installando questo applicativo andremo a rendere compatibile il nostro web server con tutto ciò che utilizza PHP per funzionare.

Da terminale digitiamo:

sudo apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-idn php-pear php5-recode php5-snmp php5-sqlite php5-xmlrpc php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell

Php però non è solo questo, ci sono moltissimi altri pacchetti che contengono ulteriori altre funzioni di compressione o interpretazione, spesso capita che installando sul nostro web server un servizio che utilizza php, come un qualsiasi CMS, ci venga chiesto di installare un determinato componente php, in questo caso sarà molto semplice “individuare” il nome del componente tra quelli installabili sul nostro sistema, digitiamo da terminale

 apt-cache search php5

Questo comando mostra tutti i pacchetti nominati php5, da questi possiamo individuare ciò che ci serve e installarlo con il classico apt-get 😉

Passaggio 3: installazione di mysql

Da terminale digitiamo

sudo apt-get install mysql-server mysql-client

ATTENZIONE: L’installazione di mysql necessita di maggiori attenzioni rispetto a quelle fatte fino ad ora, ci sarà infatti chiesta una password dell’utente “root”, questa password e questo utente non hanno nulla a che vedere con il vostro sistema o con l’utente root con il quale siete autenticati, corrisponde bensì all’utente con diritti massimi su tutti i database che andrete a creare, è buona norma inserire una password complessa e ben diversa dal quella del superuser di sistema. E’ inoltre buona norma non utilizzare mai l’utente root per la gestione tramite codice di un database, è consigliabile creare un utente singolo con password propria e privilegi su un singolo database per ogni progetto che utilizza mysql che andremo a realizzare od implementare, ma a questa cosa sarà dedicata una guida intera 😀

Così come per apache, anche mysql è un servizio, da terminale digitiamo quindi

sudo service mysql start //per avviarlo
sudo service mysql stop //per bloccarlo

 

Una volta fatto ciò il nostro sistema LAMP è pronto!

In una prossima guida vedremo come andare a configurare in modo personale PHP, Come creare Host virtuali (più siti su un solo server) e come andare ad aumentare la sicurezza della nostra installazione di mysql. Per ora andiamo a capire come modificare il “nostro” sito web attuale, ossia la pagina di default di apache che abbiamo visto in precedenza.

Basterà semplicemente andare a modificare o sostituire o cancellare il file index (index.html) nella cartella di dafault di Apache2 situata in /var/www/html

Una volta giunti in questa cartella ci comporteremo come se fossimo su un normalissimo hosting!

Attenzione: Bisogna prestare particolare attenzione ai permessi che vengono utilizzati sui file presenti all’interno della cartella pubblica HTML (quella di cui parlavamo sopra), possono infatti verificarsi errori 503 o peggio, possiamo dare accesso non volendo alla modifica di file ed esecuzione di script a personaggi che non dovrebbero. Per stare tranquilli possiamo utilizzare un gruppo utente con i permessi “perfetti” o quasi per il web, il gruppo in questione è www-data, con il relativo utente www-data (valido per debian e derivate).

Digitiamo da terminale

sudo chown -R www-data:www-data /var/www/html

In questo modo applicheremo questi “permessi” (o meglio ownershp) all’intera cartella pubblica html, è importante ricordare che ogni qualvolta creeremo una cartella all’interno di quella pubblica “html”, con un utente diverso da www-data, dovremmo riapplicare nuovamente l’ownership onde evitare problemi o errori.