La modifica dei file "core" di Drupal sarà sovrascritta dagli aggiornamenti, quindi dovrà essere riapplicata ogni volta.
Propongo una soluzione migliore (testata su Drupal 11.3.11), che non richiede la modifica dei file di Drupal ma solo dei propri file di configurazione.
In questo modo sopravvivrà agli aggiornamenti di Drupal.
1) rimuovere tutte le modifiche ai file Drupal (oppure ricaricare i file originali) e al file settings.php
2) per evitare la patch al file core/lib/Drupal/Core/Session/SessionConfiguration.php, creare un nuovo file AltervistaSessionConfiguration.php nella stessa cartella di settings.php, con questo contenuto:
Codice:
<?php
use Symfony\Component\HttpFoundation\Request;
use Drupal\Core\Session\SessionConfiguration;
class AltervistaSessionConfiguration extends SessionConfiguration {
/**
* {@inheritdoc}
*/
protected function getName(Request $request) {
return 'PHPSESSID';
}
}
Questa nuova classe eredita la classe originale e ne sostituisce la funzione getName() tornando sempre il nome 'PHPSESSID' (che su Altervista non è modificabile).
3) per configurare Drupal affinchè usi la nuova classe, al posto di quella originale, creare un nuovo file services.yaml nella stessa cartella di settings.php, con questo contenuto:
Codice:
services:
session_configuration:
class: AltervistaSessionConfiguration
arguments: ['%session.storage.options%']
ATTENZIONE: si tratta di un file YAML, quindi non usare i tabulatori per indentarlo ma copiare il contenuto così com'è, indentato con gli spazi.
NOTA: se il file già esiste, aggiungere solo la parte che manca nel file esistente, senza duplicare la sezione services:.
4) aggiungere le seguenti righe al file settings.php:
Codice:
// carica la classe custom
require_once __DIR__ . '/AltervistaSessionConfiguration.php';
// configura un FileStorage compatibile con Altervista
// (evitando la patch al file core/lib/Drupal/Component/PhpStorage/MTimeProtectedFastFileStorage.php)
$settings['php_storage']['default'] = [
'class' => 'Drupal\Component\PhpStorage\FileStorage',
];
$settings['php_storage']['twig'] = [
'class' => 'Drupal\Component\PhpStorage\FileStorage',
];
// Configura i trusted host per il tuo dominio Altervista
$settings['trusted_host_patterns'] = [
'^NomeSitoAltervista.*\.altervista\.org$',
];
NOTA: sostituire NomeSitoAltervista con il nome del sito
5) cancellare la cache di Drupal. Se non si riesce ad accedere dal browser farlo da PhpMyAdmin:
Codice:
TRUNCATE `cachetags`;
TRUNCATE `cache_bootstrap`;
TRUNCATE `cache_config`;
TRUNCATE `cache_container`;
TRUNCATE `cache_data`;
TRUNCATE `cache_default`;
TRUNCATE `cache_discovery`;
TRUNCATE `cache_dynamic_page_cache`;
TRUNCATE `cache_entity`;
TRUNCATE `cache_menu`;
TRUNCATE `cache_page`;
TRUNCATE `cache_render`;
Ora si può procedere all'installazione, oppure accedere al sito già esistente.
Nessuno dei file creati/modificato sarà sovrascritto dalle nuove versioni di Drupal, quindi le modifiche persisteranno (salvo modifiche strutturali nelle classi originali Drupal...).