User Tools

Site Tools


doc:appunti:linux:sa:wordpress

WordPress

Creazione database

Purtroppo WordPress supporta solo MySQL.

CREATE DATABASE wp_m5scp;
GRANT ALL PRIVILEGES ON wp_m5scp.* TO "wp_m5scp"@"%" IDENTIFIED BY "MySecret";
FLUSH PRIVILEGES;

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 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

cd /var/www/
tar zxvf /usr/local/download/wordpress/wordpress-3.4.2-it_IT.tar.gz
mv wordpress/ wp
chown -R niccolo.niccolo wp/
cd wp/
chown www-data wp-content/uploads/
cp -p wp-config-sample.php wp-config.php
vi wp-config.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

Installazione del plugin bbPress

cd wp/wp-content/plugins/
unzip /usr/local/download/wordpress/bbpress.2.1.3.zip
find bbpress -type d | xargs chmod 755
find bbpress -type f | xargs chmod 644

Collegarsi come Admin, PluginbbPressAttiva.

Nel menu amministrazione compare un nuovo menu Forum in cui è possibile creare nuovi Forum (dibattiti) e nuovi Topic (punti del dibattito).

bbPress in italiano

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.

Il file deve essere copiato in wp-content/languages/bbpress/bbpress-it_IT.mo, e compilato (installare il pacchetto gettext) con:

msgfmt -o bbpress-it_IT.mo bbpress-it_IT.po

Configurazione

Nuovi utenti

Per consentire a nuovi utenti di registrarsi: collegarsi come Admin ImpostazioniGeneraleChiunque può registrarsi. Impostare come ruolo predefinito Sottoscrittore, in modo che il nuovo iscritto possa solo leggere e non aggiungere o modificare contenuti.

  • Il nome di login e case-insensitive.
  • L'email di registrazione deve essere univoca.
  • L'immagine da usare come avatar viene presa da https://it.gravatar.com/. Da ImpostazioniDiscussione 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 Simple Local Avatar.

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:

SELECT ID, user_login FROM wp_users WHERE user_login = 'Niccolo';
 
SELECT ID, post_author, post_status, post_type, post_title
    FROM wp_posts
    WHERE post_type = 'topic'
    AND post_title LIKE '%illuminazione pubblica a LED%';
 
UPDATE wp_posts SET post_author = "2" WHERE ID = 57;

La ricerca standard di WordPress non agisce sul contenuto del forum, vedere se questo plugin è la soluzione migliore: bbpress-search-widget.

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.

Come far comparire un link all'indice dei forum nel menu?

L'indice dei forum viene generato automaticamente all'URL …/forums/, si potrebbe creare una pagina che ha quell'URL come permalink: un link alla pagina compare nella barra dei menu, ma purtroppo la pagina nasconde l'indice.

Se si usa il tema Ttwenty Ten (del 2010) allora si possono attivare i template di bbPress Twenty Ten nella configurazione del plugin. Infine si crea una pagina usando il template bbPress - Forums (Index). Quella pagina mostrerà l'indice.

Se si usa il tema Twenty Eleven invece si deve ricorrere agli shortcode: si crea una normale pagina e al suo interno si inserisce una stringa del tipo:

[bbp-forum-index]
[bbp-single-forum id=2]

Scegliere uno degli 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 Shortcode Reference.

Permessi

Vedere Roles and Capabilities in WordPress.

  • Impostazioni WordPress
    • Generale
      • Iscrizione: Chiunque può registrarsi
      • Ruolo predefinito nuovi utenti: Sottoscrittore
    • Discussione
      • Consenti la scrittura di commenti per i nuovi articoli
      • Gli utenti devono essere registrati e fare il login per poter inviare commenti
      • Gli autori di un commento devono avere un commento già approvato in precedenza
  • Plugin bbPress settings
    • Allow Anonymous Posting: No
Attività Sottoscrittore Collaboratore Autore
Aggiungere articolo No Moderato
Postare commento Moderato il 1° Moderato il 1°
Aggiungere Forum No No
Aggiungere Topic
Commentare Topic
Upload file No No

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.

Vedere l'articolo Changing the wp_mail from address in wordpress without a plugin che spiega come modificarlo a livello di tema. In pratica basta aggiungere questo codice al file wp-content/themes/twentyeleven/functions.php (cioè del tema in uso):

add_filter( 'wp_mail_from', 'my_mail_from' );
function my_mail_from( $email )
{
    return 'myemail@mydomain.com';
}
add_filter( 'wp_mail_from_name', 'my_mail_from_name' );
function my_mail_from_name( $name )
{
    return 'My Name';
}

Intestazione e piè di pagina

Si agisce sul tema, in particolare sui filewp-content/themes/twentyeleven/header.php e footer.php.

Facebook plugin

Provati i seguenti plugin:

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”?

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. 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, CommentiNon permettere.

Per gli articoli nuovi: Impostazioni, Discussione, Consenti la scrittura di commenti per i nuovi articoli.

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:

<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>

È 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):

<Directory /var/www/html/wp>
    AllowOverride FileInfo
</Directory>

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:

define('FS_METHOD','direct');

Vedere 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 post e 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

Queste le istruzioni per l'aggiornamento manuale. Vedere l'articolo Updating WordPress.

  1. Scaricare l'archivio della nuova versione, eventualmente quello già nazionalizzato in italiano da it.wordpress.org.
  2. Non esiste purtroppo un modo per mettere il sito off-line, esistono eventualmente dei plugin appositi.
  3. Fare un backup della DocumentRoot:
    tar zcvf wp.tgz /var/www/wp/
  4. Fare un dump del database:
    mysqldump --host=localhost --user=wp_db --password --add-drop-table wp_db > wp_db.dump
  5. Dalla Bacheca, Aggiornamenti prendere nota delle versioni correnti e aggiornamenti disponibili per plugin e temi.
  6. Da Aspetto, Temi controllare il tema in uso, eventualmente reimpostare uno di quelli predefiniti.
  7. Da Plugin, Plugin installati prendere nota di quelli attivi e disattivarli tutti.
  8. Sostituire le directory wp-admin/ e wp-includes/ con quelle nuove.
  9. Copiare il contenuto della directory wp-content/, sostituendo i file vecchi (ma lasciando eventuali file in più).
  10. Copiare il contenuto della directory radice, sostitutendo i file vecchi (ma lasciando eventuali file in più) e avendo cura di non includere le sottodirectory.
  11. Puntare il browser sul'URL del sito, sottodirectory /wp-admin. Se richiesto procedere all'aggiornamento del database.
  12. Riabilitare i plugin.
  13. 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:

SELECT * FROM wp_options WHERE option_name = 'siteurl';
SELECT * FROM wp_options WHERE option_name = 'home';

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:

SELECT post_content FROM wp_posts WHERE post_content LIKE '%www.old-domain.tld%';
SELECT guid FROM wp_posts WHERE guid LIKE '%www.old-domain.tld%';

Quindi si procede all'aggiornamento:

UPDATE wp_posts SET post_content =
    REPLACE(post_content, 'http://www.old-domain.tld/', 'https://www.new-domain.tld/');
UPDATE wp_posts SET guid =
    REPLACE(guid, 'http://www.old-domain.tld/', 'https://www.new-domain.tld/');

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:

define ('FS_METHOD', 'direct');
define ('FS_CHMOD_DIR', 02775);
define ('FS_CHMOD_FILE', 0664);

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

# 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');
doc/appunti/linux/sa/wordpress.txt · Last modified: 2024/02/07 15:51 by niccolo