From 33785858d3a3d359e469eb38b171746025fe4ea9 Mon Sep 17 00:00:00 2001 From: lucha <lucha@paranoici.org> Date: Sat, 26 Sep 2020 11:39:14 -0700 Subject: [PATCH] =?UTF-8?q?Revert=20"contrariamente=20a=20quanto=20dicono?= =?UTF-8?q?=20nella=20documentazione,=20si=20pu=C3=B2=20fare=20spacchettar?= =?UTF-8?q?e=20tutto=20nella=20stessa=20directory,=20senza=20creare=20una?= =?UTF-8?q?=20directory=20wp/=20per=20core"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Si può fare, ma se viene fatto un update di wordpress core poi si perdono tutti i temi/plugin/etc. Ho cambiato leggermente la struttura delle directory generate, ed ho spiegato tutto dentro README.md This reverts commit 19f271616b70fb9edfe3064d4ade1245c3ca4e7a. --- .gitignore | 1 - README.md | 23 ++++++++++++++++++++--- composer.json | 20 ++++++++++---------- composer.lock | 2 +- 4 files changed, 31 insertions(+), 15 deletions(-) diff --git a/.gitignore b/.gitignore index 7ee8d0f8..40fad208 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,3 @@ vendor/* auth.json -mu-plugins-src/* app/* diff --git a/README.md b/README.md index 2b0f57f3..95026264 100644 --- a/README.md +++ b/README.md @@ -72,11 +72,28 @@ Per ri-applicare tutte the patches senza aggiornare le dipendenze (per fare prim composer update nothing ``` -# Struttura delle directory di Wordpress +# Struttura delle directory generate -Composer non è contento di spacchettare due dipendenze nella stessa directory. Quindi separa wordpress-core in ```app/wp```, mentre c'è un ```app/wp-content``` dove vengono spachettati i vari temi/plugins/etc. Bisognerà fare dei magheggi per riscrivere le URL. [Vedi qui](https://www.smashingmagazine.com/2019/03/composer-wordpress/) e [qui](https://roots.io/docs/bedrock/master/server-configuration/#apache-configuration-for-bedrock). +Composer quando aggiorna un pacchetto, rimuove tutti i file che trova nella directory dove deve essere spacchettato, prima di mettere quelli nuovi (di modo che non rimangano file "vecchi"). Questo vuol dire che se si aggiorna wordpress-core dopo aver installato temi e pacchetti, questi ultimi vengono rimossi, **a meno che** non siano stati installati in una directory separata. -Altenativamente, possiamo rimettere tutto a posto quando creiamo l'immagine Docker, che forse è la cosa più semplice da fare. +Mi sembra che di suo composer segua l'ordine dei requirement nel file json nell'ordine in cui sono scritti, per cui forse non è un problema. L'alternativa, sicuramente più "stabile", è separare le directory in questo modo: + +- una directory ```app/``` dove troveremo tutto il codice che dovrà andare dentro il container +- una directory ```vendor/``` dove verranno spacchettate alcune dipendenze di cui però solo alcuni file vengono copiati, tramite il meccanismo dei ```drop-in```, dentro ```app/```. I drop-in non cancellano nessun file quindi non abbiamo problema a mandare più cose dentro la stessa destinazione. + +A sua volta ```app/``` è strutturata così: + +- una directory ```app/wp-core``` dove viene spacchettato il codice di wordpress core +- una directory ```app/wp-root``` che sarà la root di wordpress dove mettere tutto il resto + +In particolare dentro ```app/wp-root``` avremo +- una directory ```wp-content``` separata dove spacchettare temi, plugin, traduzioni +- una directory ```wp-includes``` separta dove mettere alcune librerie js +- ci sono inoltre dei file "spuri", principalmente di r2db e hyperdb, che vanno messi in giro. Questi al momento sono: + + ```db.php``` e ```advanced-cache.php``` che vanno in ```app/wp-root/wp-content``` + + ```db-config.php```, ```r2db/```, ```wp-nginx-map-json.php``` e ```wp-nginx-map.php``` che devono stare nella root di wordpress, quindi li mettiamo direttamente in ```app/wp-root/``` + +Al momento di creare il container, ci dobbiamo ricordare che i contenuti di ```app/wp-core``` vanno copiati dentro ```app/wp-root```, e che questa è l'unica directory che va tenuta dentro il container. # Come dovrebbe funzionare a regime diff --git a/composer.json b/composer.json index 68b8c339..67750669 100644 --- a/composer.json +++ b/composer.json @@ -93,26 +93,26 @@ "noblogs/remove-gravatar": "^0.1.0" }, "extra": { - "wordpress-install-dir": "app/", + "wordpress-install-dir": "app/wp-core", "installer-types": ["bower-asset", "npm-asset"], "installer-paths": { - "mu-plugins-src/{$name}": [ + "vendor/{$name}": [ "wpackagist-plugin/hyperdb", "wpackagist-plugin/disable-wordpress-updates", "wpackagist-plugin/wpmu-new-blog-defaults", "wpackagist-plugin/more-privacy-options", "wpackagist-plugin/disable-emojis", "type:wordpress-muplugin"], - "app/{$name}": ["type:wordpress-dropin"], - "app/wp-content/plugins/{$name}/": ["type:wordpress-plugin"], - "app/wp-content/themes/{$name}/": ["type:wordpress-theme"], - "app/wp-includes/js/{$name}/": ["type:npm-asset", "type:bower-asset"] + "app/wp-root/{$name}": ["type:wordpress-dropin"], + "app/wp-root/wp-content/plugins/{$name}/": ["type:wordpress-plugin"], + "app/wp-root/wp-content/themes/{$name}/": ["type:wordpress-theme"], + "app/wp-root/wp-includes/js/{$name}/": ["type:npm-asset", "type:bower-asset"] }, - "wordpress-language-dir": "app/wp-content/languages/", + "wordpress-language-dir": "app/wp-root/wp-content/languages/", "wordpress-languages": [ "en_GB", "it_IT" ], "patches-file": "composer.patches.json", "dropin-paths": { - "app/wp-content/mu-plugins" : [ + "app/wp-root/wp-content/mu-plugins" : [ "package:wpackagist-plugin/disable-wordpress-updates:disable-updates.php", "package:wpackagist-plugin/wpmu-new-blog-defaults:cets_blog_defaults.php", "package:wpackagist-plugin/more-privacy-options:ds_wp3_private_blog.php", @@ -120,8 +120,8 @@ "package:noblogs/ai-mu-plugins:embed.php,remove-password-change-notification.php,send-smtp-email.php", "package:noblogs/noblogs-wp-ssl:noblogs-wp-ssl.php" ], - "app/wp-content": ["package:wpackagist-plugin/hyperdb:db.php", "package:wpackagist-plugin/wp-super-cache:advanced-cache.php"], - "app": ["package:noblogs/r2db:db-config.php,nginx-map/wp-nginx-map-json.php,nginx-map/wp-nginx-map.php"] + "app/wp-root/wp-content": ["package:wpackagist-plugin/hyperdb:db.php", "package:wpackagist-plugin/wp-super-cache:advanced-cache.php"], + "app/wp-root": ["package:noblogs/r2db:db-config.php,nginx-map/wp-nginx-map-json.php,nginx-map/wp-nginx-map.php"] } } } diff --git a/composer.lock b/composer.lock index 24a26a1c..86b7caff 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "9379ac8609fce3a62060ed5a3ab21343", + "content-hash": "ebc9141a092ac29f1a6071d970eaefa5", "packages": [ { "name": "bjornjohansen/wplang", -- GitLab