Wordpress: come configurare l'accesso alla cartella uploads
Supporto Wordpress, nota
Wordpress, pur non essendo supportato dal servizio di hosting gestito dalla nostra struttura informatica, normalmente funziona senza problemi, purchè sia adeguatamente aggiornato e compatibile con le versioni di PHP/Database in uso.
Accesso alla cartella wp-content/uploads
Sussiste però un potenziale problema di protezione delle cartelle, in particolare della cartella wp-content/uploads. Questa cartella deve essere aperta in scrittura al server web, e in certe condizioni questo non avviene automaticamente.
Il server Web "gira" normalmente con id www-data:www-data e la configurazione può dare dei problemi quando deve accedere in scrittura a una cartella di un utente, nell'area del sito.
La modalità di esecuzione di php è mod-php. E' per questo motivo che normalmente il server web e tutti gli utenti dell'hosting, fanno parte di un gruppo comune. Il gruppo ha nome "webNN" e ne fa parte sia l'utente "clientXX", sia l'utente "www-data" (il server web; i numeri, NN e XX, dipendono dall'utente e dal relativo sito).
La cartella "wp-content/", se caricata/creata via FTP, assume owner webNN:clientXX, e ha protezione 755 (owner: tutti i permessi; gruppo e mondo: solo lettura/esecuzione) Può quindi succedere che Wordpress cerchi di creare una cartella "uploads" all'interno di wp-content, ma non riesca perchè le protezioni di wp-content sono 755: l'utente www-data non ha possibilità di scrittura.
Modificare le protezioni
Se rilevati problemi nel caricamento di file nella cartella "uploads", una delle strade per risolvere il problema è modificare le protezioni della cartella wp-content (e della uploads se esiste), e aprire in scrittura al "gruppo" (775). Idem per le eventuali sottocartelle nelle quali wordpress abbia bisogno di scrivere.
Questo consente di "aprire" la cartella in scrittura al server, senza aprirla in scrittura al mondo, semplicemente "allargando" la protezione al gruppo; con la protezione 7-5-5 il web ha diritto di lettura ed esecuzione sulla cartella, ma non di scrittura.
Allargando a: 7-7-5 il server (che, ripeto, accede "tramite" il gruppo) ha finalmente possibilità di scrittura sulla cartella.
Modificare le protezioni con Filezilla
Per cambiare le protezioni di una cartella, è necessario disporre di un programma FTP che permetta di farlo.
Si consiglia l'uso di Filezilla, come illustrato in questo tutorial: https://videotutorial.uniud.it/node/20
Dopo aver creato la cartella "uploads" è possibile eventualmente riconfigurare a 755 le protezioni della cartella wp-content.
SuExec e FastCgi
Esistono altre strade per aggirare il problema. Una, consiste nel far "girare" il server nel vostro sito con un'altra modalità: tramite l'esecuzione di suExec + FastCgi PHP. In questo modo, il server viene eseguito non con l'utente www-data, ma con l'utente owner dello script che esegue. In questo caso, quindi, "girerebbe" con webNN:clientXX.
A quel punto, non è necessario agire tramite le protezioni di gruppo, ma è sufficiente agire sulle protezioni di owner, per consentire l'accesso in scrittura.
Questa configurazione può creare dei problemi di accesso secondari, e quindi non va applicata se non con test esaustivi; e naturalmente concede al server accesso come owner a tutti i file del vs sito; se qualcosa non funziona nella vostra applicazione, può far "danni" a tutto il contenuto del sito, e non solo alle cartelle esplicitamente aperte.
Se la soluzione precedente non funziona o non si adatta alle caratteristiche del vs. sito, contattateci per attivare la soluzione "FastCGI+suExec".