User Tools

Site Tools


doc:appunti:linux:sa:wordpress

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
doc:appunti:linux:sa:wordpress [2013/10/20 08:00] – [Aggiornamento Wordpress] niccolodoc:appunti:linux:sa:wordpress [2023/09/11 09:15] – [Permessi per installazione plugin da pannello web] niccolo
Line 10: Line 10:
 FLUSH PRIVILEGES; FLUSH PRIVILEGES;
 </code> </code>
 +
 +===== Versione nazionalizzata =====
 +
 +Sul sito **[[https://it.wordpress.org/download/releases/]]** sono disponibili gli archivi delle versioni già nazionalizzate in italiano. Rispetto alla versione in inglese (disponibili sul [[https://wordpress.org/download/releases/|repository principale]]), l'archivio italiano contiene la directory **wordpress/wp-content/languages/** e alcuni file accessori hanno piccole diferenze, ma la base del codice è identica.
  
 ===== Installazione ===== ===== Installazione =====
Line 25: Line 29:
  
 Proseguire la procedura di installazione via web puntando il browser su **%%http://myhost/wp/wp-admin/install.php%%**. Proseguire la procedura di installazione via web puntando il browser su **%%http://myhost/wp/wp-admin/install.php%%**.
 +
 +===== URL per login =====
 +
 +Se si nascondo il link per la pagina di login, sarà comunque possibile accedervi digitando direttamente il suffisso **wp-login.php** dopo l'URL base del sito.
 +
  
 ===== Plugin bbPress ===== ===== Plugin bbPress =====
Line 43: Line 52:
 ==== bbPress in italiano ==== ==== bbPress in italiano ====
  
-Per avere la traduzione in italiano del plugin conviene andare sul sito [[http://translate.wordpress.org/projects/bbpress/plugin/]] ed utilizzare la funzione //Export// per scaricare il file aggiornato.+Per avere la traduzione in italiano del plugin conviene andare sul sito [[http://translate.wordpress.org/projects/bbpress/]] ed utilizzare la funzione //Export// per scaricare il file aggiornato.
  
 **ATTENZIONE!** bbPress è anche un programma stand-alone, ma si tratta sostanzialmente di due prodotti differenti! Vari link, repository e istruzioni che si trovano sulla rete si riferiscono al programma stand-alone e non al plugin per WordPress. **ATTENZIONE!** bbPress è anche un programma stand-alone, ma si tratta sostanzialmente di due prodotti differenti! Vari link, repository e istruzioni che si trovano sulla rete si riferiscono al programma stand-alone e non al plugin per WordPress.
Line 52: Line 61:
 msgfmt -o bbpress-it_IT.mo bbpress-it_IT.po msgfmt -o bbpress-it_IT.mo bbpress-it_IT.po
 </code> </code>
 +
 ===== Configurazione ===== ===== Configurazione =====
  
-=== Nuovi utenti ===+==== Nuovi utenti ====
  
 Per consentire a nuovi utenti di registrarsi: collegarsi come Admin //Impostazioni// -> //Generale// -> //Chiunque può registrarsi//. Impostare come ruolo predefinito //Sottoscrittore//, in modo che il nuovo iscritto possa solo leggere e non aggiungere o modificare contenuti. Per consentire a nuovi utenti di registrarsi: collegarsi come Admin //Impostazioni// -> //Generale// -> //Chiunque può registrarsi//. Impostare come ruolo predefinito //Sottoscrittore//, in modo che il nuovo iscritto possa solo leggere e non aggiungere o modificare contenuti.
Line 62: Line 72:
   * L'immagine da usare come **avatar** viene presa da [[https://it.gravatar.com/]]. Da //Impostazioni// -> //Discussione// conviene abilitare il **//Wavatar (Generato)//** per gli utenti che non hanno il Gravatar, altrimenti compare l'icona standard uguale per tutti. Se si vuole un avater personalizzato salvato in locale si può installare il plugin [[http://wordpress.org/extend/plugins/simple-local-avatars/|Simple Local Avatar]].   * L'immagine da usare come **avatar** viene presa da [[https://it.gravatar.com/]]. Da //Impostazioni// -> //Discussione// conviene abilitare il **//Wavatar (Generato)//** per gli utenti che non hanno il Gravatar, altrimenti compare l'icona standard uguale per tutti. Se si vuole un avater personalizzato salvato in locale si può installare il plugin [[http://wordpress.org/extend/plugins/simple-local-avatars/|Simple Local Avatar]].
  
-=== Forum ===+==== Forum ====
  
 Sembra impossibile modificare l'autore che ha iniziato un topic. Direttamente sul database si recupera l'ID dell'utente e l'ID del topic e si effettual ''UPDATE'' manuale: Sembra impossibile modificare l'autore che ha iniziato un topic. Direttamente sul database si recupera l'ID dell'utente e l'ID del topic e si effettual ''UPDATE'' manuale:
Line 79: Line 89:
 La ricerca standard di WordPress non agisce sul contenuto del forum, vedere se questo plugin è la soluzione migliore: [[http://wordpress.org/extend/plugins/bbpress-search-widget/|bbpress-search-widget]]. La ricerca standard di WordPress non agisce sul contenuto del forum, vedere se questo plugin è la soluzione migliore: [[http://wordpress.org/extend/plugins/bbpress-search-widget/|bbpress-search-widget]].
  
-=== Menu ===+==== Menu ====
  
 Le voci della barra menu vengono aggiunte automaticamente quando si aggiunge una **Pagina**. L'ordine viene impostato dal campo **Ordinamento** della pagina stessa: un valore maggiore sposta il menu più a destra. Le voci della barra menu vengono aggiunte automaticamente quando si aggiunge una **Pagina**. L'ordine viene impostato dal campo **Ordinamento** della pagina stessa: un valore maggiore sposta il menu più a destra.
Line 98: Line 108:
 Scegliere uno degli [[http://codex.bbpress.org/shortcodes/|shortcode di bbPress]] disponibili. Il core di WordPress e i vari plugin espongono tali shortcode (sostanzialmente sono delle macro). Esiste un plugin che automaticamente li mostra durante l'editing di una pagina, il plugin si chiama [[http://wordpress.org/extend/plugins/shortcode-reference/|Shortcode Reference]]. Scegliere uno degli [[http://codex.bbpress.org/shortcodes/|shortcode di bbPress]] disponibili. Il core di WordPress e i vari plugin espongono tali shortcode (sostanzialmente sono delle macro). Esiste un plugin che automaticamente li mostra durante l'editing di una pagina, il plugin si chiama [[http://wordpress.org/extend/plugins/shortcode-reference/|Shortcode Reference]].
  
-=== Permessi ===+==== Permessi ====
  
 Vedere [[http://codex.wordpress.org/Roles_and_Capabilities|Roles and Capabilities]] in WordPress. Vedere [[http://codex.wordpress.org/Roles_and_Capabilities|Roles and Capabilities]] in WordPress.
Line 121: Line 131:
 ^ Upload file          | No              | No              | Sì      | ^ Upload file          | No              | No              | Sì      |
  
-=== Mittente email di servizio ===+==== Mittente email di servizio ====
  
 Come mittente viene usato **%%wordpress@dominio%%** dove il dominio è il nome del dominio di installzione di WordPress avendo tolto il **www** iniziale. Come mittente viene usato **%%wordpress@dominio%%** dove il dominio è il nome del dominio di installzione di WordPress avendo tolto il **www** iniziale.
Line 140: Line 150:
 </code> </code>
  
-=== Personalizzazione intestazione e piè di pagina ===+==== Intestazione e piè di pagina ====
  
 Si agisce sul tema, in particolare sui file**''wp-content/themes/twentyeleven/header.php''** e **''footer.php''**. Si agisce sul tema, in particolare sui file**''wp-content/themes/twentyeleven/header.php''** e **''footer.php''**.
- 
-===== Aggiornamenti plugin ===== 
- 
-Esiste la possibilità di aggiornare i plugin installati direttamente dal menu amministrazione, Plugin. Tuttavia bisogna che i file siano scrivibili dal server web. 
- 
-In alternativa si scarica l'archivio e lo si scompatta sostituendo al vecchia directory in **''wp-content/plugins/''**, settando opportunamente il proprietario e i permessi. 
  
 ===== Facebook plugin ===== ===== Facebook plugin =====
Line 155: Line 159:
  
   * [[http://wordpress.org/plugins/really-simple-facebook-twitter-share-buttons/|Really simple Facebook Twitter share buttons]]   * [[http://wordpress.org/plugins/really-simple-facebook-twitter-share-buttons/|Really simple Facebook Twitter share buttons]]
-  * [[http://wordpress.org/plugins/facebook/|Facebook]] +  * [[http://wordpress.org/plugins/facebook/|Facebook]] FIXME Sembra abbandonato, ultimo aggiornamento del 2014! 
-  * [[http://wordpress.org/plugins/sociable/|Sociable]]+  * [[http://wordpress.org/plugins/sociable/|Sociable]] FIXME Errori con PHP7!
  
 Con il primo compaoiono i classici pulsanti "Mi piace" in fondo ad ogni pagina, per Facebook, Twitter, Google+, e molti altri. Pare che non ci sia la possibilità di fare "condividi" con Facebook, ma solo "mi piace"? Con il primo compaoiono i classici pulsanti "Mi piace" in fondo ad ogni pagina, per Facebook, Twitter, Google+, e molti altri. Pare che non ci sia la possibilità di fare "condividi" con Facebook, ma solo "mi piace"?
Line 162: Line 166:
 Pare che il plugin Facebook (ufficiale) non è compatibile con //Really simple Facebook Twitter share buttons//: si viene avvisati da un warning. FIXME Verificare se possono convivere per avere i pulsanti Twitter, Google+, ecc. Dopo aver attivato il plugin Facebook compare un nuovo menu nella barra di amministrazione a sinistra. Bisogna impostare un **App ID** e un **App secret** che verranno usate per pubblicare sulla timeline di Facebook. Pare che il plugin Facebook (ufficiale) non è compatibile con //Really simple Facebook Twitter share buttons//: si viene avvisati da un warning. FIXME Verificare se possono convivere per avere i pulsanti Twitter, Google+, ecc. Dopo aver attivato il plugin Facebook compare un nuovo menu nella barra di amministrazione a sinistra. Bisogna impostare un **App ID** e un **App secret** che verranno usate per pubblicare sulla timeline di Facebook.
  
-Il terzo plugin pare che sia quello più quotato per la condivisione sui social network. Conviene demandare a lui la visualizzazione dei pulsanti di condivisione (permette il "condividi" su Facebook) e lasciare al plugin Facebook solo la funzione di aggiornamento automatico della timeline.+Il terzo plugin pare che sia quello più quotato per la condivisione sui social network. Conviene demandare a lui la visualizzazione dei pulsanti di condivisione (permette il "condividi" su Facebook) e lasciare al plugin Facebook solo la funzione di aggiornamento automatico della timeline. Purtroppo non viene più aggiornato da diverso tempo e **non è compatibile con PHP7**.
  
 +===== Disabilitare i commenti agli articoli =====
 +
 +Per togliere i commenti a tutti gli articoli già pubblicati: //Articoli//, selezionarli tutti, //Azioni di gruppo//, //Modifica//, //Commenti// => **Non permettere**.
 +
 +Per gli articoli nuovi: //Impostazioni//, //Discussione//, **Consenti la scrittura di commenti per i nuovi articoli**.
 +
 +===== Permalink e Rewrite =====
 +
 +Per far funzionare i permalink del tipo **%%http://www.sito.org/wp/2017/02/24/titolo/%%** è necessario attivare le opportune regole Rewrite del server web. Wordpress fornisce il seguente esempio nel file **.htaccess**:
 +
 +<file>
 +<IfModule mod_rewrite.c>
 +RewriteEngine On
 +RewriteBase /wp/
 +RewriteRule ^index\.php$ - [L]
 +RewriteCond %{REQUEST_FILENAME} !-f
 +RewriteCond %{REQUEST_FILENAME} !-d
 +RewriteRule . /wp/index.php [L]
 +</IfModule>
 +</file>
 +
 +È preferibile mettere tali direttive nel file di configurazione di Apache (per motivi di performance), ad esempio in una sezione **%%<Directory>%%**.
 +
 +Nel caso in cui invece si preferisca usare il file .htaccess, è necessaria comunque una direttiva (almeno per Apache 2.4):
 +
 +<file>
 +<Directory /var/www/html/wp>
 +    AllowOverride FileInfo
 +</Directory>
 +</file>
 +===== Permessi su filesystem e aggiornamenti =====
 +
 +In genere l'installazione iniziale dei file PHP si effettua via FTP/SFTP o similari, anche l'installazione e aggiornamento di plugin e temi può essere fatto con lo stesso metodo.
 +
 +WordPress offre nella sua interfaccia di amministrazione web l'opzione per l'aggiornamento dei plugin e temi, in tal caso il codice PHP deve essere in grado di modificare i file sul filesystem. Per questo WordPress può utilizzare due metodi diveris:
 +
 +  * **direct** Con questo metodo il codice WordPress presuppone di poter modificare direttamente i file, che pertanto dovranno essere scrivibili dal processo che esegue il server web (tipicamente l'utente www-data in un sistema Debian GNU/Linux).
 +  * **FTP/SFTP** Con questo metodo il codice WordPress accederà al filesystem effettuando una sessione FTP o SFTP con le credenziali che verranno fornite in modo interattivo.
 +
 +WordPress tenta entrambi i metodi per vedere se uno dei due funziona. È possibile forzare l'uno o l'altro impostando in **wp-config.php** la seguente direttiva:
 +
 +<code>
 +define('FS_METHOD','direct');
 +</code>
 +
 +Vedere **[[https://www.danielealessandra.com/come-risolvere-il-problema-della-richiesta-delle-credenziali-ftp-da-parte-di-wordpress/2/|Come risolvere il problema della richiesta delle credenziali FTP da parte di WordPress]]**.
 +===== Aggiornamento plugin =====
 +
 +Esiste la possibilità di aggiornare i plugin installati direttamente dal menu amministrazione, Plugin. Tuttavia bisogna che i file siano scrivibili dal server web.
 +
 +In alternativa si scarica l'archivio e lo si scompatta sostituendo al vecchia directory in **''wp-content/plugins/''**, settando opportunamente il proprietario e i permessi.
 +
 +A giudicare da questo [[https://wordpress.org/support/topic/how-to-update-a-database-table-during-plugin-update|post]] e [[http://wordpress.stackexchange.com/questions/67345/how-to-implement-wordpress-plugin-update-that-modifies-the-database|quest'altro]] non esiste una procedura standard da eseguire dopo l'upgrade (es. per aggiornare il database), ma dovrebbe provvedere il plugin in automatico, ovviamente se è scritto bene.
 +===== Aggiornamento temi =====
 +
 +Come per i plugin, esiste la possibilità di aggiornare i temi installati direttamente dal menu amministrazione, Aggiornamenti. Tuttavia bisogna che i file siano scrivibili dal server web.
 +
 +In alternativa si scarica l'archivio e lo si scompatta sostituendo al vecchia directory in **''wp-content/themes/''**, settando opportunamente il proprietario e i permessi.
 +
 +Esiste un repository di temi scaricabili: [[https://wordpress.org/themes/]]
 ===== Aggiornamento Wordpress ===== ===== Aggiornamento Wordpress =====
  
-Vedere l'articolo **[[http://codex.wordpress.org/Updating_WordPress|Updating WordPress]]**.+Queste le istruzioni per l'aggiornamento manuale. Vedere l'articolo **[[https://wordpress.org/documentation/article/updating-wordpress/|Updating WordPress]]**.
  
   - Scaricare l'archivio della nuova versione, eventualmente quello già nazionalizzato in italiano da [[http://it.wordpress.org/|it.wordpress.org]].   - Scaricare l'archivio della nuova versione, eventualmente quello già nazionalizzato in italiano da [[http://it.wordpress.org/|it.wordpress.org]].
 +  - Non esiste purtroppo un modo per mettere il sito off-line, esistono eventualmente dei plugin appositi.
   - Fare un backup della DocumentRoot: <code>tar zcvf wp.tgz /var/www/wp/</code>   - Fare un backup della DocumentRoot: <code>tar zcvf wp.tgz /var/www/wp/</code>
   - Fare un dump del database: <code>mysqldump --host=localhost --user=wp_db --password --add-drop-table wp_db > wp_db.dump</code>   - Fare un dump del database: <code>mysqldump --host=localhost --user=wp_db --password --add-drop-table wp_db > wp_db.dump</code>
Line 176: Line 241:
   - **Sostituire** le directory **''wp-admin/''** e **''wp-includes/''** con quelle nuove.   - **Sostituire** le directory **''wp-admin/''** e **''wp-includes/''** con quelle nuove.
   - **Copiare** il contenuto della directory **''wp-content/''**, sostituendo i file vecchi (ma lasciando eventuali file in più).   - **Copiare** il contenuto della directory **''wp-content/''**, sostituendo i file vecchi (ma lasciando eventuali file in più).
-  - **Copiare** il contenuto della directory radice, sostitutendo i file vecchi (ma lasciando eventuali file in più) e avendo cura di non includere le sottodirectory.+  - **Copiare** il contenuto della **directory radice**, sostitutendo i file vecchi (ma lasciando eventuali file in più) e avendo cura di non includere le sottodirectory. 
 +  - Puntare il browser sul'URL del sito, sottodirectory **''/wp-admin''**. Se richiesto procedere all'aggiornamento del database. 
 +  - Riabilitare i plugin. 
 +  - Aggiornare (sempre manualmente) i plugin. 
 + 
 +===== Cambio URL base ===== 
 + 
 +Se si migra un sito Wordpress su altro server, generalmente cambia l'**URL base**. Anche l'attivazione del protocollo HTTPS cambia la parte iniziale dell'URL da **%%http://%%** a **%%https://%%**. Wordpress non gestisce molto bene questa situazione perché spesso il contenuto di una pagina o di un articolo include il link ad una pagina interna sotto forma di **link assoluto**, non relativo. 
 + 
 +La prima cosa da fare è accedere in modalità amministratore e modificare le **Impostazioni generali**, in particolare si deve aggiornare **Indirizzo WordPress (URL)** e **Indirizzo sito (URL)**. Dopo aver fatto la modifica si può controllare se il database è stato aggiornato correttamente: 
 + 
 +<code sql> 
 +SELECT * FROM wp_options WHERE option_name = 'siteurl'; 
 +SELECT * FROM wp_options WHERE option_name = 'home'; 
 +</code> 
 + 
 +Questo modifica il modo in cui vengono generati dinamicamente i link, ma non aggiorna il contenuto di pagine e articoli. 
 + 
 +Per **aggiornare** il contenuto di **pagine** e **articoli** è necessario **modificare il contenuto del database**. Supponiamo che il vecchio URL base fosse **%%http://www.old-domain.tld/%%** e quello nuovo deve essere **%%https://www.new-domain.tld/%%**, anzitutto si può controllare il contenuto del database: 
 + 
 +<code sql> 
 +SELECT post_content FROM wp_posts WHERE post_content LIKE '%www.old-domain.tld%'; 
 +</code> 
 + 
 +<code sql> 
 +SELECT guid FROM wp_posts WHERE guid LIKE '%www.old-domain.tld%'; 
 +</code> 
 + 
 +Quindi si procede all'aggiornamento: 
 + 
 +<code sql> 
 +UPDATE wp_posts SET post_content = 
 +    REPLACE(post_content, 'http://www.old-domain.tld/', 'https://www.new-domain.tld/'); 
 +</code> 
 + 
 +<code sql> 
 +UPDATE wp_posts SET guid = 
 +    REPLACE(guid, 'http://www.old-domain.tld/', 'https://www.new-domain.tld/'); 
 +</code> 
 + 
 +===== Permessi per installazione plugin da pannello web ===== 
 + 
 +Se si desidera installare componenti aggiuntivi da pannello di controllo web è necessario che il server http abbia i permessi sufficienti per scrivere nella directory **wp-content/upgrade/** e **wp-content/plugins/** (in generale è opportuno che il server web abbia i permessi su tutta la **wp-content/**). 
 + 
 +Una volta confermato questo, si indica a WordPress di utilizzare il metodo //direct// per accedere al filesystem, in caso contrario WordPress tenterà di fare accesso via FTP chiedendo le credneziali opportune. Per preferire l'accesso //direct// si aggiungono le righe al file **wp-config.php**: 
 + 
 +<code php> 
 +define ('FS_METHOD', 'direct'); 
 +define ('FS_CHMOD_DIR', 02775); 
 +define ('FS_CHMOD_FILE', 0664); 
 +</code> 
 + 
 +In questo modo si possono specificare anche i permessi predefiniti assegnati a file e directory (numero ottale per i permessi Unix). 
 + 
 +===== Disabilitare gli aggiornamenti automatici ===== 
 + 
 + 
 +<code php> 
 +# Disabilitare completamente gli aggiornamenti automatici. 
 +define('AUTOMATIC_UPDATER_DISABLED', true); 
 + 
 +# Aggiorna automaticamente le release maggiori o solo le minori (true/false/'minor'). 
 +define('WP_AUTO_UPDATE_CORE', false); 
 + 
 +# Aggiornamento automatico dei plugin (__return_true/__return_false). 
 +add_filter('auto_update_plugin', '__return_false'); 
 + 
 +# Aggiornamento automatico dei temi (__return_true/__return_false). 
 +add_filter('auto_update_theme', '__return_false'); 
 +</code> 
doc/appunti/linux/sa/wordpress.txt · Last modified: 2024/02/07 15:51 by niccolo