Utilizzare SSH (acronimo per Secure SHell) con un sito in WordPress può essere uno dei metodi più sicuri, flessibili e convenienti per modificare le impostazioni del sito, soprattutto in caso di crash inaspettati ed errori imprevisti. SSH è un protocollo che funziona interamente a linea di comando, un po’ come avviene per PuTTY (alternativa ai client terminali con SSH se usate Windows), e si tratta in realtà di un SFTP (Secure FTP) “esteso”, visto che possiamo sia scaricare che ricevere file che, soprattutto, inviare comandi specifici seguendo la sintassi Linux.
- 1) Che cosa serve per accedere a SSH
- 2) Definizione di SSH
- 3) Sessione di esempio in SSH
- 4) Dove si trova la cartella di WordPress in SSH?
-
5)
Vademecum comandi più utili in SSH / WordPress
- 5.1) Avviare, riavviare e stoppare MySQL e Apache
- 5.2) pwd (directory in cui mi trovo)
- 5.3) ls -la: Equivalente del comando “dir” di MS-DOS
- 5.4) cd (vai nella directory indicata)
- 5.5) mkdir
- 5.6) rmdir
- 5.7) rm
- 5.8) cp
- 5.9) clear
- 5.10) mv
- 5.11) zip
- 5.12) unzip
- 5.13) tar
- 5.14) touch
- 5.15) cat
- 5.16) grep
- 5.17) head
- 5.18) tail
- 5.19) find
- 5.20) du
- 5.21) nano
- 5.22) wget
- 5.23) history
- 5.24) netstat
- 5.25) exit
Che cosa serve per accedere a SSH
Per accedere a WordPress in SSH il vostro hosting deve obbligatoriamente mettervi a disposizione questo servizio, e dovrete abilitarlo con una coppia di chiavi pubbliche e privata. Oggi vedremo una bella rassegna di alcuni dei comandi SSH più utilizzati che possono essere sfruttati per WordPress.
Definizione di SSH
SSH è un terminale di comando sicuro e criptato, che vi permette di accedere come amministratori e di prendere controllo del server che sta facendo funzionare WP. Per maggiori informazioni, vedi il post introduttivo su SSH.
Usa il codice
189ed7ca010140fc2065b06e3802bcd5
per ricevere 5 € dopo l’iscrizione
Sessione di esempio in SSH
Facciamo un esempio di accesso mediante SSH: come prima cosa trovate l’IP del server del sito in WP, e poi appuntatelo da qualche parte: nell’esempio successivo sarà 123.456.789.123, giusto per capirci. Aprite un terminale di comando su Mac e Linux (oppure aprite PuTTY, se usate Windows), e digitate:
ssh root@123.456.789.123
dove ovviamente 123.456.789.123 dovrà essere rimpiazzato con l’IP effettivo del vostro sito in WP (che potete determinare con questo tool qui). In genere le console SSH, al primo accesso, richiedono di aver installato una chiave SSH valida, cosa che potete fare generandola nel cPanel del vostro server, e poi andate a copiarla in locale nel vostro computer, a seconda del vostro sistema operativo.
Una volta installata, SSH chiederà conferma di connessione e poi vi chiederà la password per accedere: dovrete avere quella di root, in questo caso, visto che stiamo provando ad accedere come root cioè come super-amministratori. La password non sarà visibile, mentre la digitate, ma arriverà comunque al server dopo che avrete premuto Invio. Se non funziona, vuol dire che avete inserito la password sbagliata quindi controllatela con attenzione (e fate attenzione a non invertire le lettere, ad esempio se la password è pippo79 occhio a non scrivere pippo97).
Dove si trova la cartella di WordPress in SSH?
Se state usando un server Ubuntu, come dovrebbe essere in genere, la cartella di root si trova digitando:
cd /var/www/html
Ed eccovi un esempio di schermata shell SSH remota, tratta dal mio Mac.
Vademecum comandi più utili in SSH / WordPress
Avviare, riavviare e stoppare MySQL e Apache
Una volta entrati, avrete il pieno controllo di WordPress: cosa potete fare? Ad esempio potete riavviare il server Apache:
service apache2 restart
oppure potrete stopparlo (attenzione che il sito non funzionerà se lo fate):
service apache2 restart
per avviare Apache basta scrivere:
service apache2 start
Stessa cosa per il database MySQL:
service mysql restart
server a riavviare, mentre
service mysql stop
server a stopparlo, mentre
service mysql start
server ad avviarlo.
pwd (directory in cui mi trovo)
No, non ha a che vedere con le password (io mi confondo sempre su questa cosa!): in realtà pwd
mostra il percorso completo della directory in cui vi trovate in quel momento. Ad esempio qui io mi trovo nella root del mio sito:
ls -la: Equivalente del comando “dir” di MS-DOS
Con ls -la
potrete vedere il contenuto della directory corrente in modo ordinato e coerente.
ls -a
mostra anche i file nascosti (è utilissimo per vedere il file htaccess che in genere deve essere nascosto, ad esempio).ls -s -h
mostra anche la dimensione di ogni file, in kilobyte
I parametri possono essere eventualmente combinati tra di loro, quindi ad esempio:
ls -sal
cd (vai nella directory indicata)
Uno dei comandi più comuni e semplici è senza dubbio cd
: esso serve a fare una cosa molto semplice, ovvero spostarvi in una directory a vostra scelta. come abbiamo visto per WP, salvo esigenze particolari, troverete tutto dentro:
/var/www/html
e per entrarci basta digitare, come abbiamo visto:
cd /var/www/html
qui dentro troverete le cartelle wp-content, wp-admin e wp-include assieme ai file PHP classici (wp-config, ad esempio). Ricordatevi che per funzionare bene, WordPress potrebbe richiedere a volte una revisione dei permessi che devono essere impostati in modo corretto (CHMOD 664 per i file e CHMOD 775 per le directory, vedi qui).
Questo serve per andare nella directory qualunque
cd qualunque
mentre questo serve per andare in un path specifico:
cd in/un/path/specifico
Per tornare indietro come si fa? àˆ semplice, basta usare l’operatore speciale ..:
cd ..
serve a salire di un livello (occhio che lo spazio deve essere presente, tra cd e ..)cd ../plugins
se siete dentro /wp-content/themes, vi porta dentro la directory dei plugincd /
vi manderà direttamente nella directory principale.
mkdir
Cosa fa questo comando? Diciamo che mkdir
permette di creare una nuova directory, ovviamente nella postazione corrente se non diversamente specificato (per vedere dove ci troviamo, basta digitare pwd
seguito da Invio, come abbiamo visto).
Per creare la directory Peppiniello79, scrivete cosà¬:
mkdir peppiniello79
Ovviamente questo vale anche per i percorsi: se siete nella root di WP, provate a digitare
mkdir /themes/fighissimo-theme/peppiniello79
ed avrete creato una directory con lo stesso nome di prima, ma dentro al path (ovvero percorso) specifico del theme fighissimo-theme.
rmdir
Questo è un comando da usare con attenzione: cancella la directory, ma in genere funziona soltanto se la directory è vuota. Non c’è un cestino in SSH, per cui attenzione a quello che fate: la cancellazione è irreversibile. per la verità un uso operativo pratico del comando prevede un po’ di opzioni utili, come vedremo tra un attimo. Per cancellare la directory di prova di prima:
rmdir peppiniello79
oppure, nel path:
rmdir /themes/fighissimo-theme/peppiniello79
rm
Serve a cancellare file o directory dal disco, anche qui in modo irreversibile – quindi massima attenzione. Per cancellare una cartella e tutti i file al suo interno (modalità ricorsiva), si usa il parametro -r:
rm -r cartella_da_cancellare
cp
Questo comando, cp
, serve ad effettuare la copia dei file o delle cartelle desiderate da un percorso all’altro del disco fisso. Ovviamente dovrete indicare origine e destinazione, come in questo esempio:
cp nomefile_origine /destinazione/
che ovviamente, sempre a partire dalla directory corrente, copia nomefile_origine nella sotto cartella destinazione sempre rispetto alla posizione corrente (pwd). Potete anche copiare il file con un nome diverso per farvi un backup, ad esempio, prima di modificare il file stesso con un editor tipo nano.
cp wp-config.php wp-config.php.bak
Poi ci sono anche alcuni parametri che è il caso di conoscere, in caso possano servire: -R (maiuscolo), ad esempio, serve a copiare ricorsivamente tutti i file da una cartella all’altra.
cp -R cartella_da_copiare_con_tutti_i_file/. cartella_copiata
Un uso classico del comando cp in WordPress è quello di copiare i file del theme padre, ad esempio, all’interno della cartella del theme child per poi effettuare le personalizzazioni del caso.
clear
Se c’è troppa roba nel terminale, ad un certo punto, potete pulirlo senza cancellare nulla, basta scrivere:
clear
seguito dal tasto Invio.
mv
Questo mv
. funziona un po’ come cp
, solo che questa volta sposta il file invece di copiarlo.
zip
Questo comando è molto utile per comprimere uno o più file, quindi aggiungerli in un archivio con estensione .zip in forma compressa (il che, salvo per file audio e video, occupa meno spazio).
Per esempio:
zip file_compresso.zip file_origine.txt
comprime il file originale file_origine.txt dentro l’archivio file_compresso.zip.
Oppure possiamo scrivere:
zip file_compresso.zip file_origine.txt file_origine2.txt file_origine3.txt file_origine4.txt
copia i 4 file .txt dentro un archivio compresso .zip.
Per creare il file zip di una directory, infine:
zip -r nomearchivio.zip directory
zip può essere usato in modalità sovrascrittura con il parametro -m, per la cronaca.
unzip
Questo comando è utile, all’inverso, per decomprimere un file .zip, quindi vedere il contenuto di un archivio in questo formato e copiarlo all’interno della directory corrente.
Per esempio:
unzip file_compresso1234.zip
decomprime il file e restituire i file originali contenuti dentro l’archivio file_compresso.zip.
tar
Molto simile a zip, tar
lavora sugli archivi compressi con estensione .tar.gz, e vi permette di scompattarli e ricompattarli. Ad esempio
tar cvzf archivio.tar.gz directoryname
in modo sostanzialmente simile a zip
sebbene con una sintassi leggermente differente. Nello specifico, c serve a comprimere, v serve a visualizzare l’output in modo esplicito (verbose), z serve a comprimere ed f anticipa il fatto che state fornendo un successivo parametro con il nome del file tar.gz. Si può usare la decompressione di un file tar.gz in questi termini, cosa molto comune quando si installano pacchetti di software open source:
tar xvzf archivio.tar.gz
In questo caso la x non indica il tesoro bensଠè il comando di estrazione del file, la v è il verbose (mostra tutto quello che succede nell’output), la z serve a far decomprimere e la f serve a specificare il nome dell’archivio.
touch
Questo comando Linux può esservi utile per creare un nuovo file vuoto, da zero:
touch file.txt
Molto utile, ad esempio, per partire dal “foglio bianco” per creare delle funzioni all’interno di un theme child.
cat
Questo comando è piuttosto semplice ed utile, e permette di mostrare il contenuto di un file qualsiasi direttamente all’interno del terminale. Ad esempio potete testare una cosa del genere:
cd /var/www/html/wp-content/themes/nome-theme
e poi:
cat functions.php
mostra il contenuto del file functions.php del vostro theme. Nell’esempio successivo ho visualizzato il contenuto del file functions.php di un child del theme Zara (vedi qui una lista di theme gratuiti).
grep
Questo è uno dei comandi più usati dagli sviluppatori WordPress ed è anche uno dei più comodi per fare debug: permette di cercare una stringa all’interno di qualsiasi file e, con una piccola aggiunta, di trovare per esempio l’intestazione di una funzione all’interno dell’intera alberatura delle directory. Partiamo dal comando di base:
grep "cosacerco" file.php
che permette di verificare la presenza di cosacerco dentro file.php – i doppi apici sono richiesti dalla sintassi del comando anche in presenza di spazi nella stringa:
grep "cosa cerco" file.php
se usate il parametro -i potete cercare senza badare alla corrispondenza tra maiuscole e minuscole. Se invece usiamo questa sintassi qui:
grep -r -H “cosa cerco”
andremo a cercare in modo ricorsivo, visualizzando il risultato adeguatamente formattato, della stringa cosa cerco, il tutto all’interno di tutti i file presenti nella directory in cui ci troviamo, quindi scansionandola in profondità nelle varie sotto-directory.
head
Il comando head
è piuttosto simile a cat
, con la differenza che mostra solo l’inizio del file stesso (prime 10 righe):
head file.txt
find
A differenza di grep
che cerca nel nome del file, find
cerca nel nome del file la corrispondenza desiderata e ci dice dove si trova quel file:
find . -name "nome file"
find / -name "nome file"
Se mettiamo il punto come qui sopra (.), cerca nella directory corrente; altrimenti se mettiamo lo slash (/) cerca in tutto il filesystem. Il parametro-size
eventualmente cerca file di una cerca dimensione specificata.
du
Se avete problemi di spazio su disco, questo è uno dei comandi più utili: Disk Usage permette infatti di verificare quando spazio occupa un file:
du -hk bigfile.zip
mostra la dimensione in kB mentre
du -hm bigfile.zip
fa la stessa cosa in MB.
chmod
Questo comando serve a regolare i permessi da SSH su ogni file, requisito basico per far funzionare WordPress. I tre numerini indicano il livello di accesso consentito, secondo la sintassi Unix. Tipici comandi utili sono i seguenti:
chmod 600 wp-config.php
chmod 755 wp-content/themes
chmod 644 index.php
chmod
può essere combinato con il comando find
per fare operazioni di routine, come assegnare il permesso 644 ai file ed il permesso 755 alle directory:
find . -type f -print -exec chmod 644 {} \;
find . -type d -print -exec chmod 755 {} \;
Per maggiori informazioni, leggete l’articolo dedicato a chmod e WordPress.
nano
Questo è uno degli editor da terminale che preferisco usare, e che trovo meno contorti e più user-friendly. Permette di avere una sorta di “blocco note” dentro il terminale, anche se si tratta di un editor di testo molto avanzato che si basa su combinazioni di tasti per le operazioni più comuni. Si apre cosà¬:
nano file.php
wget
wget
permette di scaricare pacchetti o qualsiasi file su internet che abbia un percorso specifico a disposizione. Per esempio, questo comando permette di scaricare l’immagine :
nella directory corrente del terminale stesso:
wget https://trovalost.it/wp-content/uploads/2014/11/4011227589_7918bfd3b9_wordpress-how-to-300x200.jpg
history
Questo è un comando molto comodo per mostrare lo storico dei comandi precedentemente eseguiti o scritti, in particolare gli ultimi 50 che sono memorizzati nel terminale stesso. Basta scrivere:
history
per visualizzare una lista dei 50 comandi più recenti.
netstat
In questo caso, se scrivete
netstat
vedrete alcuni dettagli tecnici sulla connessione di rete.
exit
Serve ad uscire dal terminale in modo sicuro, chiudendo la sessione di lavoro corrente. Basta scrivere:
exit
seguito dal tasto Invio.
👇 Da non perdere 👇
- Cellulari 📱
- Gratis 🎉
- intelligenza artificiale 👁
- Marketing & SEO 🌪
- Mondo Apple 🍎
- Reti 💻
- Scrivere 🖋
- Sicurezza & Privacy 👁
- 💬 Il nostro canale Telegram: iscriviti
- 🟡 Come inserire la tua firma (scansione) in un PDF
- 🔵 Come eliminare un contatto Telegram
- 🟡 Costanti, variabili ed operatori Python: cosa sono e come funzionano (GUIDA)