Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

La linea di comando indispensabile per LAMP

Link copiato negli appunti

Per molti programmatori LAMP, il rapporto con la componente server (e la componente Linux) può non essere così scontato. In fondo, i CMS di nuova generazione permettono di eseguire via browser operazioni, come l'aggiornamento del sistema, il backup del database o la manutenzione ordinaria, che fino a pochi anni fa erano possibili solo attraverso la mediazione di strumenti come FTP o SSH.

Tuttavia, conoscere i rumendi della linea di comando, l'approccio nativo dei sistemi Unix-like, può essere utile in svariate situazioni. Di seguito ho raccolto alcuni comandi molto semplici e assolutamente indispensabili, che non dovrebbero mancare nel background di nessun LAMPer. Se ve ne vengono in mente altri segnalaterli nei commenti!

Backup e ripristino del database

mysqldump permette di ottenere un dump (o copia) del database in formato SQL. L'uso è molto semplice:

mysqldump -u DB_USER -p DB_NAME | gzip -9 > db_backup.sql.gz

Prima di prodere vi verrà  chiesta la password del database per l'utente DB_USER. gzip ci permette di comprimere l'output di mysqldump e risparmiare spazio disco.

Per ripristinare il database è sufficiente caricare il file dentro mysql. zcat è come cat, ma legge i file compressi.

zcat db_backup.sql.gz | mysql -u DB_USER -p DB_NAME

Trova e sostituisci

Questo comando mi è stato molto utile in diverse situazioni, in pratica consiste del sostituire una stringa con un altra all'interno di uno stream di testo. Per esempio è utile se cambiamo server o dominio ad un sito fatto con WordPress, perché con un solo comando sostituiamo tutti i riferimenti al vecchio dominio con il nuovo.

zcat db_backup.sql.gz | sed -e 's/127.0.0.1/www.domain.tld/g' | gzip -9 > new_db_backup.sql.gz

Dov'è quella funzione?

Ammettiamo di avere una directory con 30 file PHP e di cercare quali chiamano la funzione pippo():

grep -n -i 'pippo(' *.php

In pochi attimi otterremo la lista dei file che contengono pippo( con l'indicazione del numero di riga a cui si trova la stringa.

Mettere a posto i permessi dei file

Una cosa noiosa di Apache è il messaggio Access denied che spesso indica che l'utente con cui è eseguito Apache (tipicamente apache o www-data) non ha i permessi per leggere, scrivere o eseguire il file o la directory che stiamo consultando.

Due semplici comandi eseguiti nella root del sito metteranno a posto tutti i permessi, i cui valori dovranno essere adattati alla situazione locale con particolare attenzione alla sicurezza.

find . -type d -exec chmod 750 {}\\;
find . -type f -exec chmod 640 {} \\;

Cancellare i vecchi file

Vogliamo cancellare i file più vecchi di 30 giorni o di 5 minuti? Nessun problema!

find /var/www/store/spool/ -type f -mtime +30 -exec rm -f {} \\;
find /var/www/store/cache/ -type f -mmin +5 -exec rm -f {} \\;

Se qualcosa non fosse chiaro ottenere informazioni è molto semplice. Al di là  di Google, se avete sotto mano un server Linux digitate man nomecomando (es. man mysqldump) per ottere il manuale del software; in alternativa potete consultare il sito Linuxmanpages.com.

Quelli presentati qui sopra sono una parte molto piccola di cià che è possibile fare da linea di comando come supporto ad una applicazione LAMP, ma già  dovrebbero far capire quanto questo approccio sia premiante per la gestione delle risorse e la manutenzione.

Ti consigliamo anche