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 [2014/11/21 11:56] – [Aggiornamenti plugin] 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 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''**.
  
-===== Aggiornamento plugin =====+===== Facebook plugin =====
  
-Esiste la possibilità di aggiornare i plugin installati direttamente dal menu amministrazione, Plugin. Tuttavia bisogna che i file siano scrivibili dal server web.+Provati seguenti plugin:
  
-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.+  [[http://wordpress.org/plugins/really-simple-facebook-twitter-share-buttons/|Really simple Facebook Twitter share buttons]] 
 +  [[http://wordpress.org/plugins/facebook/|Facebook]] FIXME Sembra abbandonatoultimo aggiornamento del 2014! 
 +  * [[http://wordpress.org/plugins/sociable/|Sociable]] FIXME Errori con PHP7!
  
-===== Aggiornamento temi =====+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"?
  
-Come per i pluginesiste la possibilità di aggiornare i temi installati direttamente dal menu amministrazione, AggiornamentiTuttavia bisogna che i file siano scrivibili dal server web.+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 pulsanti TwitterGoogle+, ecc. Dopo aver attivato il plugin Facebook compare un nuovo menu nella barra di amministrazione a sinistraBisogna impostare un **App ID** e un **App secret** che verranno usate per pubblicare sulla timeline di Facebook.
  
-In alternativa si scarica l'archivio lo si scompatta sostituendo al vecchia directory in **''wp-content/themes/''**, settando opportunamente il proprietario e i permessi.+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) 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**.
  
-===== Facebook plugin =====+===== Disabilitare i commenti agli articoli =====
  
-Provati seguenti plugin:+Per togliere commenti a tutti gli articoli già pubblicati//Articoli//, selezionarli tutti, //Azioni di gruppo//, //Modifica//, //Commenti// => **Non permettere**.
  
-  * [[http://wordpress.org/plugins/really-simple-facebook-twitter-share-buttons/|Really simple Facebook Twitter share buttons]] +Per gli articoli nuovi: //Impostazioni////Discussione//, **Consenti la scrittura di commenti per i nuovi articoli**.
-  * [[http://wordpress.org/plugins/facebook/|Facebook]] +
-  [[http://wordpress.org/plugins/sociable/|Sociable]]+
  
-Con il primo compaoiono i classici pulsanti "Mi piace" in fondo ad ogni pagina, per Facebook, Twitter, Google+, molti altri. Pare che non ci sia la possibilità di fare "condividi" con Facebook, ma solo "mi piace"?+===== Permalink Rewrite =====
  
-Pare che il plugin Facebook (ufficiale) non è compatibile con //Really simple Facebook Twitter share buttons//: si viene avvisati da un warningFIXME 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.+Per far funzionare i permalink del tipo **%%http://www.sito.org/wp/2017/02/24/titolo/%%** è necessario attivare le opportune regole Rewrite del server webWordpress fornisce il seguente esempio nel file **.htaccess**:
  
-Il terzo plugin pare che sia quello più quotato per la condivisione sui social networkConviene 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.+<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 =====
  
-Queste le istruzioni per l'aggiornamento manuale. 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]].
-  - FIXME Mettere il sito off-line non si può?+  - 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 187: Line 249:
   - Riabilitare i plugin.   - Riabilitare i plugin.
   - Aggiornare (sempre manualmente) i plugin.   - Aggiornare (sempre manualmente) i plugin.
-  - FIXME Rimettere il sito on-line?+ 
 +===== 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.1416567388.txt.gz · Last modified: 2014/11/21 11:56 by niccolo