Installare WordPress tramite SSH con pochi comandi su VPS

Foto dell'autore
Scritto da Emanuele Persiani

Emanuele Persiani


PRIMO) tieni bene a mente: un’installazione di WordPress NON sicura è una falla alla sicurezza del sistema;

SECONDO) spesso è più semplice effettuare l’installazione via FTP, i parametri di sicurezza dei files vengono assegnati più facilmente ed in automatico, il proprietario del file è l’accesso l’utente dell’accesso FTP ed è tutto pronto (tranne il DB)

TERZO) perché lo vuoi installare così? Per fare una prova originale? Beh…allora continua.

AVVISO IMPORTANTE: QUESTA GUIDA NON E’ PER UTENTI SENZA ALCUNA CONOSCENZA DI BASE, l’uso scorretto può portare al blocco del sito web, alla perdita di dati, alla necessità di un reset del server, alla non continuità del funzionamento del sito/server. Si consiglia l’uso in un ambiente di test, si consiglia di effettuare sempre un BACKUP completo (file-impostazioni-database) dell’ambiente di lavoro, si sconsiglia l’uso in un ambiente di lavoro senza alcun test preventivo.
L’uso è indicato per una valutazione ed uno studio di funzionamento del CMS Word Press.
Si declina ogni responsabilità per danni diretti o indiretti.

1-
entrare tramite SSH, vai alla directory pubblica del webserver (su plesk ad esempio /var/www/vhost/NOMEDOMINIO.EXT/httpdocs/ ) ed elimina i file non necessari se già c’è qualcosa di pre-caricato.
Se non sai come entrare con SSH allora non hai bisogno di questa guida.

2-
lanciare il semplice comando:
wget http://wordpress.org/latest.tar.gz

3-
verificare il file scaricato e il numero di versione:
ls

dovrebbe dar come risultato, tra i file e le directory presenti sul server, anche un file tipo:
latest.tar.gz

4-
decomprimere il file scaricato
tar xfvz latest.tar.gz
(sostituendo “latest.tar.gz” con l’eventuale nome di file differente)

5-
rimuovere il file scaricato
rm latest.tar.gz -f

6-
spostare il contenuto della nostra installazione di wordpress nella directory scelta (o nella root)
cp -rf ./wordpress/* ./

7-
rimuovere la directory temporanea
rm -rf wordpress/
Oppure lanciare tutti questi passaggi insieme
wget http://wordpress.org/latest.tar.gz ; tar xfvz latest.tar.gz ; rm latest.tar.gz -f ; cp -rf ./wordpress/* ./ ; rm -rf wordpress/


SALTARE IL PUNTO 8 e 9 se già conoscete i dati del vostro database o se avete accesso tramite pannello web.

8-
Effettuare l’accesso amministrativo a MySQL
mysql -uadmin -p`cat /etc/psa/.psa.shadow`

La sintassi `cat /etc/psa/.psa.shadow` serve ad effettuare l’accessi senza digitare la password di amministrazione per MYSQL (maggiori informazioni su password e ottimizzazione di MySQL)


se invece avete la password potete effettuare l’accesso con la seguente sintassi
mysql -uadmin -p

create database dbname;
create user new-username@localhost identified by 'new-password';
grant usage on *.* to username@localhost identified by 'password';
grant all privileges on dbname.* to username@localhost;


Uscire dalla connessione con MySql con il comando:
CTRL+C

9-
Testare la connnessione, se funziona con i nuovi dati non dovrebbe dare alcun errore.
mysql -uuser -p dbname

Uscire dalla connessione con MySql con il comando:
CTRL+C

10-
Posizioniamo il cursore sulla directory superiore ( su plesk ad esempio /var/www/vhost/NOMEDOMINIO.EXT/ ) e assegnamo alle directory i proprietari corretti ((userftp) è il nostro utente FTP)
cd ..

chown (userftp):psacln ./httpdocs/ -R

Ora proteggiamo il sistema con questi comandi che sistemeranno i permessi:
chmod 750 ./httpdocs/ -R
find httpdocs/ -type d -exec chmod 775 -R {} \;
find httpdocs/ -type f -exec chmod 644 -R {} \;
chmod 444 ./httpdocs/.htaccess
chmod 444 ./httpdocs/wp-config.php

oppure per alcune configurazione è bene usare
chmod 750 ./httpdocs/ -R
find httpdocs/ -type d -exec chmod 775 -R {} \;
find httpdocs/ -type f -exec chmod 664 -R {} \;


Facciamo ripartire il server APACHE da SSH per convalidare le modifiche:
service httpd restart

Ora apriamo il nostro sito web con il browser preferito e confermiamo la nostra nuova installazione.

Se desideriamo impostare una lingua diversa da quella predefinita (inglese) dobbiamo cambiare il file da scaricare (al passaggio numero 2) oppure installare un plugin che effettuerà il cambio per noi, come ad esempio il plugin “WPTB Language”

11- Consigli
Tra i passaggi che faccio di solito c’è il cambio del file wp-config.php aggiungendo le seguenti righe:
vi httpdocs/wp-config.php
e inserire al termine del file le seguenti righe

define ('WPLANG', 'it_IT');
define('FS_METHOD', 'direct');

Se poi ci sono problemi con i file, con la scrittura automatica e con l’upload, consiglio di modificare il permesso dei file assegnando i permessi all’utente APACHE
chown apache:apache ./httpdocs/ -R
oppure, in maniera ancora migliore, cambiando il valore di UMASK nel file /etc/proftpd.conf

Umask 002

Verificate la migliore configurazione con il vostro server e poi commentate di seguito.

A questo punto non ti resta che installare il tuo TEMA preferito, i migliori che vi posso consigliare sono i temi Premium, che occorre pagare solo 1 volta e non richiedono abbonamenti, di Cyberchimps

I migliori temi responsive di WordPress sono qui.

Per quanto riguarda i PLUGIN, invece, ce ne sono alcuni indispensabili (per me) e qui sono riepilogati:

  • Akismet
  • XCloner di Liuta Ovidiu (indispensabile per il backup)
  • Google XML Sitemaps di Arne Brachhold
  • Facebook Comments di ALEX MOSS
  • SEO Ultimate di SEO Design Solutions

Per la gestione dei click sulle immagini potete utilizzare (a volte non sono necessari perché inclusi nel tema):

  • Lightbox 2 di Rupert Morris
  • wp-jquery-lightbox di Ulf Benjaminsson

Poi per la gestione delle statistiche c’è la possibilità di installare vari plugin, vi consiglio uno di questi due:

  • Ultimate Google Analytics di Wilfred van der Deijl
  • Google Analyticator di Video User Manuals Pty Ltd

Altre informazioni a queste pagine:
http://www.thesourcelounge.com/wordpress/installing-wordpress-using-ssh
http://faq.1and1.co.uk/web_space__access/ssh/8.html
http://www.binarymoon.co.uk/2010/07/easy-wordpress-updates-store-ftp-info-wpconfigphp/

http://jonathankressaty.com/2011/11/02/plesk-permissions-wordpress-ftp/

Mini FAQ:

I comandi sopra riportati non funzionano sul mio server?
Ovviamente tutti i campi dove c’è scritto USERNAME, PASSWORD o simili sono da sistemare secondo la propria situazione.
Se il problema non è questo allora tieni presente che la guida è stata scritta basandosi su un PLESK Parallels 8-9 di Aruba, quindi la situazione può essere leggermente differente in altri casi, può cambiare l’utente APACHE o potrebbe non essere necessario aggiungerlo agli utenti del gruppo locale.
Ricevi un messaggio di ERRORE tipo questo:
Forbidden
You don’t have permission to access … on this server.
quando visiti la pagina del tuo blog?

Le cause possono essere date da vari fattori:
– assegnamento errato dei permessi con CHMOD;
– assegnamento errato dell’utente o del gruppo con CHOWN;
– non è stato aggiunto l’utente corretto (apache o simile) al gruppo locale;
– non è stato riavviato il servizio APACHE dopo le modifiche dei permessi e proprietari;

Ad esempio, in alcune configurazioni particolari, potrebbe essere necessario aggiungere l’utente che gestisce le visite (server Apache) agli utenti del gruppo locale
usermod -a -G psacln apache

E quindi poi assegnare ai file e alle directory i proprietari corretti (APACHE è il nostro utente per il server WEB)
chown apache:psacln ./httpdocs/ -R

(questo qui sopra non serve aggiungerlo in quanto APACHE non viene usato direttamente su Plesk salvo configurazioni particolari, più avanti impostiamo WP-CONFIG con i nostri dati FTP così da bypassare eventuali problemi di upload)

Se durante l’installazione non si è creata la directory “wp-content/upgrade” è bene crearla a mano, evitando così piccoli problemi
mkdir /httpdocs/wp-content/upgrade

Se il sistema crea problemi con i file MEDIA o gli aggiornamenti possiamo andare a modificare il file wp-config.php aggiungendo alla fine i seguenti dati:
/** Sets up WordPress FTP info. */
define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/httpdocs/');
define('FTP_USER', 'xxxx');
define('FTP_PASS', 'xxxx');
define('FTP_HOST', 'nomedominio.it');
define('FTP_SSL', false);


Facciamo ripartire il server APACHE da SSH per convalidare le modifiche:
service httpd restart

Se desideriamo aggiornare le nostre cartelle direttamente, senza passare per il protocollo FTP aggiungiamo questi dati al nostro wp-config.php (alternativi ai dati sopra riportati del metodo tramite FTP)
define('FS_METHOD', 'direct');

Si blocca un aggiornamento di un plugin o della nuova versione di WordPress?
Se hai messo i parametri tramite FTP e i permessi dei file sono corretti (proprietario = utente FTP) allora controlla se hai impostato PHP in modalità ‘safe_mode’, in alcuni casi può bloccare alcune funzioni e non dare errori a schermo.
Ultima spiaggia, non risolutiva, ma per escludere problemi di permessi, nel caso in cui il sito non apra file o salvi file, possiamo lanciare il comando che APRIRA’ le porte a tutto, anche a virus e attacchi web: potrà danneggiere tutto!
Passiamo alla directory di livello superiore, e cambiamo i permessi in maniera da far accedere al nostro .HTACCESS e a tutti i file:
cd ..
chmod 777 httpdocs -R

Altri problemi con WordPress? Controlla queste mini-guide
Problemi di directory e permessi

Problemi dopo un aggiornamento

_______________________
La guida è stata utile? Hai avuto problemi?
Lascia un commento qua sotto.


© 2017 ABC OnLine di K.C. PI 03152600544 | Informativa Privacy