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
doc:appunti:linux:sa:wordpress [2013/10/20 08:02] – [Aggiornamento Wordpress] niccolodoc:appunti:linux:sa:wordpress [2024/02/07 15:51] (current) – [Aggiornamento plugin] 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.
 +
 +L'alternativa manuale prevede:
 +
 +  * Dalla dashboard disattivare il plugin in questione,
 +  * Scaricare l'archivio e scompattarlo sostituendo al vecchia directory in **''wp-content/plugins/''** (impostare opportunamente il proprietario e i permessi).
 +  * Riattivare il plugin dalla dashboard.
 +
 +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 178: Line 247:
   - **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.   - 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.1382248946.txt.gz · Last modified: 2013/10/20 08:02 by niccolo