Aggiornare a Wordpress 6.2 #15

Open
opened 2022-04-12 17:24:23 +00:00 by giomba · 0 comments
Owner

Introduzione

Anche il blog non viene aggiornato da un pezzo, e dovrebbe essere aggiornato.

Si noti che l'immagine di Wordpress è fatta male, perché non separa bene i file "eseguibili" dai file dell'utente, dunque se ne sta tutto sotto un unico mappazzone di volume.

Si veda l'immagine Docker di Wordpress più come un "ambiente operativo, già configurato, in cui eseguire un po' di script in PHP, che guardacaso sono quelli di Wordpress, se non sono stati accidentalmente corrotti".

5.7.8 => 6.2
Si può passare in maniera diretta, e si fa direttamente dall'interfaccia web (vedi motivazione sopra).

Procedura

Queste sono alcune operazioni che ho provato ad eseguire in locale, e che non hanno rotto niente, ma vorrei che qualcuno le riprovasse in locale, prima di procedere in produzione, perché:

  • non sono 100% sicuro di aver eseguito tutto in maniera corretta
  • ho fatto un po' di avanti-e-indietro perché mi aspettavo che wordpress fosse in grado di aggiornarsi da solo, e invece bisogna entrare nell'"ambiente operativo" via web e premere esplicitamente "aggiorna" dal pannello di amministrazione
  • varie ed eventuali

Accesso al database

Saltare. In teoria non dovrebbe servire, ma mi annoto qui come ho fatto.

Per ragioni che non mi sono note, non riesco ad autenticarmi come utente root del database dal container db, mentre Wordpress riesce a farlo tranquillamente dal container blog. Probabilmente c'è qualche limitazione sulla parte host dell'utente root@hostname, da indagare.

Dunque, ho bypassato l'autenticazione come segue:

  • aggiunta temporaneamente variabile entrypoint al container db dentro il docker-compose.yml del blog, col seguente contenuto:
entrypoint: mysqld_safe --skip-grant-tables --user=root
  • docker compose up
  • accesso al container del database:
docker exec -it blog-db-1 /bin/bash
  • accesso al database (con password vuota):
mysql -u root -p

⚠️ Al termine delle operazioni di manutenzione sul database, ripristinare l'entrypoint originale, semplicemente rimuovendo la variabile entrypoint aggiunta.

Prova in ambiente di test

Wordpress forza la sovrascrittura dell'URL a quella impostata nel database (siteurl e home). Quando uno prova Wordpress in locale, chiaramente non è sotto https://blog.golem.linux.it ma sotto qualcosa tipo http://127.0.0.1:7070/, perciò bisogna impedire a Wordpress di operare il redirect non appena ci colleghiamo.
Per farlo, è necessario modificare un paio di record nel database, come segue:

ALTER wp_options SET option_value = 'http://127.0.0.1:7070' WHERE option_name = `home`;
ALTER wp_options SET option_value = 'http://127.0.0.1:7070' WHERE option_name = `siteurl`;

Se il browser si rifiuta di accettare il nuovo redirect, provare a riavviarlo, o in modalità privata/incognito/svuotare la cache. Credo che abbia qualcosa a che fare con HSTS.

Rimozione delle tabelle inutilizzate

Nel database ho trovato tabelle vecchie relative a software non più utilizzati, probabilmente risalenti al tempo in cui avevamo un solo servizio per il database, e usavamo i prefissi nei nomi delle tabelle (siamo così vecchi?)
Da rimuovere tutte le tabelle che iniziano con i prefissi wp_matomo_* e piwik_*

Siccome so che le volete copincollare... DROP TABLE ... di tutta questa roba

 piwik_access                             ,
 piwik_archive_blob_2012_01               ,
 piwik_archive_blob_2012_08               ,
 piwik_archive_blob_2012_10               ,
 piwik_archive_blob_2012_11               ,
 piwik_archive_blob_2013_01               ,
 piwik_archive_blob_2013_02               ,
 piwik_archive_blob_2013_11               ,
 piwik_archive_blob_2013_12               ,
 piwik_archive_blob_2014_01               ,
 piwik_archive_blob_2014_02               ,
 piwik_archive_blob_2014_03               ,
 piwik_archive_numeric_2012_01            ,
 piwik_archive_numeric_2012_08            ,
 piwik_archive_numeric_2012_10            ,
 piwik_archive_numeric_2012_11            ,
 piwik_archive_numeric_2013_01            ,
 piwik_archive_numeric_2013_02            ,
 piwik_archive_numeric_2013_11            ,
 piwik_archive_numeric_2013_12            ,
 piwik_archive_numeric_2014_01            ,
 piwik_archive_numeric_2014_02            ,
 piwik_archive_numeric_2014_03            ,
 piwik_goal                               ,
 piwik_log_action                         ,
 piwik_log_conversion                     ,
 piwik_log_conversion_item                ,
 piwik_log_link_visit_action              ,
 piwik_log_profiling                      ,
 piwik_log_visit                          ,
 piwik_logger_api_call                    ,
 piwik_logger_error                       ,
 piwik_logger_exception                   ,
 piwik_logger_message                     ,
 piwik_option                             ,
 piwik_report                             ,
 piwik_session                            ,
 piwik_site                               ,
 piwik_site_url                           ,
 piwik_user_language                      ,
 piwik_user_dashboard                     ,
 piwik_user                               ,
 wp_matomo_access                         ,
 wp_matomo_archive_blob_2018_01           ,
 wp_matomo_archive_blob_2019_01           ,
 wp_matomo_archive_blob_2020_01           ,
 wp_matomo_archive_blob_2020_02           ,
 wp_matomo_archive_blob_2020_03           ,
 wp_matomo_archive_blob_2020_04           ,
 wp_matomo_archive_blob_2020_05           ,
 wp_matomo_archive_blob_2020_06           ,
 wp_matomo_archive_blob_2020_07           ,
 wp_matomo_archive_blob_2020_08           ,
 wp_matomo_archive_blob_2020_09           ,
 wp_matomo_archive_blob_2020_10           ,
 wp_matomo_archive_blob_2020_11           ,
 wp_matomo_archive_blob_2020_12           ,
 wp_matomo_archive_blob_2021_01           ,
 wp_matomo_archive_blob_2021_02           ,
 wp_matomo_archive_blob_2021_03           ,
 wp_matomo_archive_invalidations          ,
 wp_matomo_archive_numeric_2018_01        ,
 wp_matomo_archive_numeric_2019_01        ,
 wp_matomo_archive_numeric_2020_01        ,
 wp_matomo_archive_numeric_2020_02        ,
 wp_matomo_archive_numeric_2020_03        ,
 wp_matomo_archive_numeric_2020_04        ,
 wp_matomo_archive_numeric_2020_05        ,
 wp_matomo_archive_numeric_2020_06        ,
 wp_matomo_archive_numeric_2020_07        ,
 wp_matomo_archive_numeric_2020_08        ,
 wp_matomo_archive_numeric_2020_09        ,
 wp_matomo_archive_numeric_2020_10        ,
 wp_matomo_archive_numeric_2020_11        ,
 wp_matomo_archive_numeric_2020_12        ,
 wp_matomo_archive_numeric_2021_01        ,
 wp_matomo_archive_numeric_2021_02        ,
 wp_matomo_archive_numeric_2021_03        ,
 wp_matomo_brute_force_log                ,
 wp_matomo_custom_dimensions              ,
 wp_matomo_goal                           ,
 wp_matomo_locks                          ,
 wp_matomo_log_action                     ,
 wp_matomo_log_conversion                 ,
 wp_matomo_log_conversion_item            ,
 wp_matomo_log_link_visit_action          ,
 wp_matomo_log_profiling                  ,
 wp_matomo_log_visit                      ,
 wp_matomo_logger_message                 ,
 wp_matomo_option                         ,
 wp_matomo_plugin_setting                 ,
 wp_matomo_privacy_logdata_anonymizations ,
 wp_matomo_report                         ,
 wp_matomo_report_subscriptions           ,
 wp_matomo_segment                        ,
 wp_matomo_sequence                       ,
 wp_matomo_session                        ,
 wp_matomo_site                           ,
 wp_matomo_site_setting                   ,
 wp_matomo_site_url                       ,
 wp_matomo_tagmanager_container           ,
 wp_matomo_tagmanager_container_release   ,
 wp_matomo_tagmanager_container_version   ,
 wp_matomo_tagmanager_tag                 ,
 wp_matomo_tagmanager_trigger             ,
 wp_matomo_tagmanager_variable            ,
 wp_matomo_tracking_failure               ,
 wp_matomo_twofactor_recovery_code        ,
 wp_matomo_user                           ,
 wp_matomo_user_dashboard                 ,
 wp_matomo_user_language                  ,
 wp_matomo_user_token_auth                ;

Uniformazione nomi

Il servizio relativo al blog, si chiama ancora... "wordpress".
Questo è chiaramente sbagliato, secondo la nostra naming convention, dunque occorre rinominarlo in "blog".

Questo implica anche:

  • modificare il path dei sottovolumi da /srv/wordpress a /srv/blog
  • modificare il path dei sottovolumi di backupper (molto importante ⚠️ )

Qui un diff rispetto al master attuale. per avere un riferimento:

diff --git a/wordpress/docker-compose.yml b/blog/docker-compose.yml
similarity index 67%
rename from wordpress/docker-compose.yml
rename to blog/docker-compose.yml
index 2c2ebc3..c2e4880 100644
--- a/wordpress/docker-compose.yml
+++ b/blog/docker-compose.yml
@@ -1,9 +1,9 @@
 version: "3.3"
 services:
-  wordpress:
+  blog:
     depends_on:
       - db
-    image: hub.docker.golem.linux.it/wordpress:5.7
+    image: wordpress:6.2
     restart: unless-stopped
     environment:
       WORDPRESS_DB_HOST: db
@@ -13,12 +13,13 @@ services:
     ports:
       - "127.0.0.1:7070:80"
     volumes:
-      - "/srv/wordpress/app:/var/www/html"
+      - "/srv/blog/app:/var/www/html"
   db:
-    image: mariadb:latest
+    image: mariadb:10.5.9
     restart: unless-stopped
     environment:
       MYSQL_ROOT_PASSWORD: "{BLOG_MYSQL_PASSWORD}"
     volumes:
-      - "/srv/wordpress/db:/var/lib/mysql"
+      - "/srv/blog/db:/var/lib/mysql"
+        #    entrypoint: mysqld_safe --skip-grant-tables --user=root
 

## Introduzione Anche il blog non viene aggiornato da un pezzo, e dovrebbe essere aggiornato. Si noti che l'immagine di Wordpress è fatta male, perché non separa bene i file "eseguibili" dai file dell'utente, dunque se ne sta tutto sotto un unico mappazzone di volume. Si veda l'immagine Docker di Wordpress più come un "ambiente operativo, già configurato, in cui eseguire un po' di script in PHP, che guardacaso sono quelli di Wordpress, se non sono stati accidentalmente corrotti". **5.7.8 => 6.2** Si può passare in maniera diretta, e si fa direttamente dall'interfaccia web (vedi motivazione sopra). ## Procedura Queste sono alcune operazioni che ho provato ad eseguire in locale, e che non hanno rotto niente, ma vorrei che qualcuno le riprovasse in locale, prima di procedere in produzione, perché: - non sono 100% sicuro di aver eseguito tutto in maniera corretta - ho fatto un po' di avanti-e-indietro perché mi aspettavo che wordpress fosse in grado di aggiornarsi da solo, e invece bisogna entrare nell'"ambiente operativo" via web e premere esplicitamente "aggiorna" dal pannello di amministrazione - varie ed eventuali ### Accesso al database Saltare. In teoria non dovrebbe servire, ma mi annoto qui come ho fatto. Per ragioni che non mi sono note, non riesco ad autenticarmi come utente `root` del database dal container `db`, mentre Wordpress riesce a farlo tranquillamente dal container `blog`. Probabilmente c'è qualche limitazione sulla parte `host` dell'utente `root@hostname`, da indagare. Dunque, ho bypassato l'autenticazione come segue: - aggiunta temporaneamente variabile `entrypoint` al container `db` dentro il `docker-compose.yml` del blog, col seguente contenuto: ```yml entrypoint: mysqld_safe --skip-grant-tables --user=root ``` - `docker compose up` - accesso al container del database: ```bash docker exec -it blog-db-1 /bin/bash ``` - accesso al database (con password vuota): ```bash mysql -u root -p ``` ⚠️ Al termine delle operazioni di manutenzione sul database, ripristinare l'entrypoint originale, semplicemente rimuovendo la variabile `entrypoint` aggiunta. ### Prova in ambiente di test Wordpress forza la sovrascrittura dell'URL a quella impostata nel database (`siteurl` e `home`). Quando uno prova Wordpress in locale, chiaramente non è sotto `https://blog.golem.linux.it` ma sotto qualcosa tipo `http://127.0.0.1:7070/`, perciò bisogna impedire a Wordpress di operare il redirect non appena ci colleghiamo. Per farlo, è necessario modificare un paio di record nel database, come segue: ```sql ALTER wp_options SET option_value = 'http://127.0.0.1:7070' WHERE option_name = `home`; ALTER wp_options SET option_value = 'http://127.0.0.1:7070' WHERE option_name = `siteurl`; ``` Se il browser si rifiuta di accettare il nuovo redirect, provare a riavviarlo, o in modalità privata/incognito/svuotare la cache. Credo che abbia qualcosa a che fare con HSTS. ### Rimozione delle tabelle inutilizzate Nel database ho trovato tabelle vecchie relative a software non più utilizzati, probabilmente risalenti al tempo in cui avevamo un solo servizio per il database, e usavamo i prefissi nei nomi delle tabelle (siamo così vecchi?) Da rimuovere tutte le tabelle che iniziano con i prefissi `wp_matomo_*` e `piwik_*` Siccome so che le volete copincollare... `DROP TABLE ...` di tutta questa roba ``` piwik_access , piwik_archive_blob_2012_01 , piwik_archive_blob_2012_08 , piwik_archive_blob_2012_10 , piwik_archive_blob_2012_11 , piwik_archive_blob_2013_01 , piwik_archive_blob_2013_02 , piwik_archive_blob_2013_11 , piwik_archive_blob_2013_12 , piwik_archive_blob_2014_01 , piwik_archive_blob_2014_02 , piwik_archive_blob_2014_03 , piwik_archive_numeric_2012_01 , piwik_archive_numeric_2012_08 , piwik_archive_numeric_2012_10 , piwik_archive_numeric_2012_11 , piwik_archive_numeric_2013_01 , piwik_archive_numeric_2013_02 , piwik_archive_numeric_2013_11 , piwik_archive_numeric_2013_12 , piwik_archive_numeric_2014_01 , piwik_archive_numeric_2014_02 , piwik_archive_numeric_2014_03 , piwik_goal , piwik_log_action , piwik_log_conversion , piwik_log_conversion_item , piwik_log_link_visit_action , piwik_log_profiling , piwik_log_visit , piwik_logger_api_call , piwik_logger_error , piwik_logger_exception , piwik_logger_message , piwik_option , piwik_report , piwik_session , piwik_site , piwik_site_url , piwik_user_language , piwik_user_dashboard , piwik_user , wp_matomo_access , wp_matomo_archive_blob_2018_01 , wp_matomo_archive_blob_2019_01 , wp_matomo_archive_blob_2020_01 , wp_matomo_archive_blob_2020_02 , wp_matomo_archive_blob_2020_03 , wp_matomo_archive_blob_2020_04 , wp_matomo_archive_blob_2020_05 , wp_matomo_archive_blob_2020_06 , wp_matomo_archive_blob_2020_07 , wp_matomo_archive_blob_2020_08 , wp_matomo_archive_blob_2020_09 , wp_matomo_archive_blob_2020_10 , wp_matomo_archive_blob_2020_11 , wp_matomo_archive_blob_2020_12 , wp_matomo_archive_blob_2021_01 , wp_matomo_archive_blob_2021_02 , wp_matomo_archive_blob_2021_03 , wp_matomo_archive_invalidations , wp_matomo_archive_numeric_2018_01 , wp_matomo_archive_numeric_2019_01 , wp_matomo_archive_numeric_2020_01 , wp_matomo_archive_numeric_2020_02 , wp_matomo_archive_numeric_2020_03 , wp_matomo_archive_numeric_2020_04 , wp_matomo_archive_numeric_2020_05 , wp_matomo_archive_numeric_2020_06 , wp_matomo_archive_numeric_2020_07 , wp_matomo_archive_numeric_2020_08 , wp_matomo_archive_numeric_2020_09 , wp_matomo_archive_numeric_2020_10 , wp_matomo_archive_numeric_2020_11 , wp_matomo_archive_numeric_2020_12 , wp_matomo_archive_numeric_2021_01 , wp_matomo_archive_numeric_2021_02 , wp_matomo_archive_numeric_2021_03 , wp_matomo_brute_force_log , wp_matomo_custom_dimensions , wp_matomo_goal , wp_matomo_locks , wp_matomo_log_action , wp_matomo_log_conversion , wp_matomo_log_conversion_item , wp_matomo_log_link_visit_action , wp_matomo_log_profiling , wp_matomo_log_visit , wp_matomo_logger_message , wp_matomo_option , wp_matomo_plugin_setting , wp_matomo_privacy_logdata_anonymizations , wp_matomo_report , wp_matomo_report_subscriptions , wp_matomo_segment , wp_matomo_sequence , wp_matomo_session , wp_matomo_site , wp_matomo_site_setting , wp_matomo_site_url , wp_matomo_tagmanager_container , wp_matomo_tagmanager_container_release , wp_matomo_tagmanager_container_version , wp_matomo_tagmanager_tag , wp_matomo_tagmanager_trigger , wp_matomo_tagmanager_variable , wp_matomo_tracking_failure , wp_matomo_twofactor_recovery_code , wp_matomo_user , wp_matomo_user_dashboard , wp_matomo_user_language , wp_matomo_user_token_auth ; ``` ### Uniformazione nomi Il servizio relativo al blog, si chiama ancora... "wordpress". Questo è chiaramente sbagliato, secondo la nostra naming convention, dunque occorre rinominarlo in "blog". Questo implica anche: - [ ] modificare il path dei sottovolumi da `/srv/wordpress` a `/srv/blog` - [ ] modificare il path dei sottovolumi di _backupper_ (molto importante ⚠️ ) Qui un diff rispetto al master attuale. per avere un riferimento: ```diff diff --git a/wordpress/docker-compose.yml b/blog/docker-compose.yml similarity index 67% rename from wordpress/docker-compose.yml rename to blog/docker-compose.yml index 2c2ebc3..c2e4880 100644 --- a/wordpress/docker-compose.yml +++ b/blog/docker-compose.yml @@ -1,9 +1,9 @@ version: "3.3" services: - wordpress: + blog: depends_on: - db - image: hub.docker.golem.linux.it/wordpress:5.7 + image: wordpress:6.2 restart: unless-stopped environment: WORDPRESS_DB_HOST: db @@ -13,12 +13,13 @@ services: ports: - "127.0.0.1:7070:80" volumes: - - "/srv/wordpress/app:/var/www/html" + - "/srv/blog/app:/var/www/html" db: - image: mariadb:latest + image: mariadb:10.5.9 restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: "{BLOG_MYSQL_PASSWORD}" volumes: - - "/srv/wordpress/db:/var/lib/mysql" + - "/srv/blog/db:/var/lib/mysql" + # entrypoint: mysqld_safe --skip-grant-tables --user=root ```
giomba self-assigned this 2022-04-12 17:24:29 +00:00
giomba changed title from Aggiornare a Wordpress 5.9 to Aggiornare a Wordpress 6.2 2023-04-11 10:00:59 +00:00
gbiotti was assigned by giomba 2023-04-11 10:35:10 +00:00
systemctl was assigned by giomba 2023-04-11 10:35:10 +00:00
Sign in to join this conversation.
No Milestone
No project
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: golem/morgan#15
No description provided.