La release 4.18.05 del portale Apigee Developer Services (o semplicemente il portale) non consente di aggiornare una versione precedente del portale basata su tar. Puoi aggiornare direttamente alla versione 4.18.05 solo una versione del portale basata su RPM.
Tuttavia, puoi convertire una versione del portale basata su tar in un'istanza del portale basata su RPM 4.18.05. Nell'ambito di questo processo, esegui la migrazione del MySQL/MariaDB del portale esistente a un database Postgres. Una volta convertito, il portale rimane un portale basato su RPM.
Puoi eseguire la migrazione di molte versioni precedenti del portale basato su tar a un portale basato su RPM, incluse le versioni 4.16.09 e 4.17.01, non solo la versione 4.17.05. L'unico requisito è che il portale esegua Drupal 7 o versioni successive. Per controllare la versione di Drupal, seleziona Reports > Status Reports (Report > Report sullo stato) nel menu di Drupal. La versione di Drupal viene visualizzata nella prima riga dell'output.
I passaggi di alto livello per eseguire la migrazione da un portale basato su tar a un portale basato su RPM sono:
- Installa la versione 4.18.05 basata su RPM del portale su un nuovo nodo.
- Crea un nuovo database Postgres sul portale basato su RPM.
- Esegui la migrazione del database del portale dal portale basato su tar.
- Copia tutti i file accessori dal portale basato su tar al portale basato su RPM.
- Aggiorna le voci DNS in modo che rimandino al nuovo portale basato su RPM.
Tieni presente che la versione del portale basata su RPM utilizza la porta 8079 per impostazione predefinita, mentre la versione basata su tar utilizza la porta 80. Assicurati di utilizzare il numero di porta corretto nella voce DNS. Consulta Imposta la porta HTTP utilizzata dal portale per informazioni sull'utilizzo di una porta diversa.
Nuova directory di installazione predefinita dopo la conversione
Dopo l'aggiornamento di un'installazione che ora utilizza NGINX/Postgres, la directory root è cambiata da:
/opt/apigee/apigee-drupal
a:
/opt/apigee/apigee-drupal/wwwroot
Procedura di conversione del portale
Per convertire il portale in un'installazione basata su RPM:
- Installa la versione 4.18.05 del portale basata su RPM su un nodo diverso da quello del portale basato su tar.
- Sul portale basato su RPM, crea un nuovo database Postgres. In un secondo momento, eseguirai la migrazione del database dal portale basato su tar a questo nuovo database:
- Accedi a psql:
psql -h localhost -p 5432 -U apigee
Inserisci la password Postgres definita dalla proprietà PG_PWD nel file di configurazione del portale.
- Crea un nuovo database Postgres:
CREATE DATABASE newportaldb;
- Esci da psql:
\q
- Accedi a psql:
-
Sul portale basato su tar, rimuovi i vecchi moduli che non vengono più utilizzati:
cd /var/www/html
drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_account' AND type = 'module';"drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_checklist' AND type = 'module';"drush sql-query --db-prefix "DELETE from {system} where name = 'apigee_sso_ui' AND type = 'module';" - Sul portale basato su tar, installa e configura il modulo Migrator Drupal:
-
cd /tmp
-
wget https://ftp.drupal.org/files/projects/dbtng_migrator-7.x-1.4.tar.gz
-
gunzip /tmp/dbtng_migrator-7.x-1.4.tar.gz
-
tar -xvf /tmp/dbtng_migrator-7.x-1.4.tar --directory /var/www/html/sites/all/modules
- Accedi al portale come amministratore.
- Seleziona Moduli nel menu di Drupal.
- Attiva il modulo DBTNG Migrator.
- Salva la configurazione.
-
- Sul portale basato su tar, modifica
/var/www/html/sites/default/settings.phpper aggiungere una seconda configurazione del database che punti al database appena creato sul portale basato su RPM. La configurazione attuale del database è denominata "default". Assegna alla nuova configurazione il nome "custom", come mostrato nell'esempio seguente:$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'devportal', 'username' => 'devportal', 'password' => 'devportal', 'host' => 'localhost', 'port' => '', 'driver' => 'mysql', 'prefix' => '', ), ), 'custom' => array ( 'default' => array ( 'database' => 'newportaldb', 'username' => 'apigee', 'password' => 'postgres', 'host' => '192.168.168.100', 'port' => '5432', 'driver' => 'pgsql', 'prefix' => '', ) ) );Dove
hosteportspecificano l'indirizzo IP e la porta del server Postgres. Postgres utilizza la porta 5432 per le connessioni. -
Sul portale basato su tar, installa il driver Postgres:
- Utilizza Yum per installare il driver:
yum install php-pdo_pgsql
- Modifica
/etc/php.iniper aggiungere la seguente riga in un punto qualsiasi del file:extension=pgsql.so
- Riavvia Apache:
service httpd restart
- Utilizza Yum per installare il driver:
- Sul portale basato su tar, esegui la migrazione del database del portale al portale basato su RPM:
- Accedi al portale come amministratore.
- Seleziona Structure->Migrator (Struttura->Migratore) nel menu di Drupal.
- Scegli il database di origine nel portale basato su tar,
default, e il database di destinazione,custom, in base al filesettings.phpmostrato sopra. - Fai clic su Esegui la migrazione. Viene eseguita la migrazione del database basato su tar al database basato su RPM.
- Copia la directory
sitesdal server basato su tar al server basato su RPM. I percorsi mostrati nei passaggi seguenti si basano su percorsi predefiniti. Modificale in base alle esigenze della tua installazione.- Nel portale basato su tar, raggruppa la directory
/var/www/html/sites:cd /var/www/html/sites
tar -cvzf /tmp/sites.tar.gz . - Copia
/tmp/sites.tar.gzin/opt/apigee/apigee-drupal/wwwroot/sitessul server basato su RPM. - Scompatta la directory dei siti, ma non sovrascrivere i file importanti.
- Esegui il backup del file
settings.php:sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
- Esegui il backup della directory
filesesistente:sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
- Esegui il backup della directory
sitesesistente:tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
- Decomprimi ed estrai la directory
sitesdal server basato su tar:gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar - Assicurati che i file copiati abbiano la proprietà corretta:
chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
- Ripristina il file
settings.php:sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
- Sposta i file privati in una nuova posizione:
cp -r /opt/apigee/apigee-drupal/wwwroot/sites/default/files/private/* /opt/apigee/data/apigee-drupal-devportal/private
rm -rf /opt/apigee/apigee-drupal/wwwroot/sites/default/files/privatechown -R apigee:apigee /opt/apigee/data/apigee-sap-drupal-devportal/private
- Esegui il backup del file
- Nel portale basato su tar, raggruppa la directory
- Sul portale basato su tar, solo se hai modificato il percorso della directory principale web sul portale basato su tar dal percorso predefinito di /var/www/html: esegui
drush statuse controlla il percorsofilese il percorsoprivate files:cd /var/www/html
drush statusSe i file/file privati non si trovano nella directory
sites, copiali nel server basato su RPM come mostrato sopra. - Nel portale basato su RPM, aggiorna
/opt/apigee/apigee-drupal/wwwroot/sites/default/settings.phpper impostare le proprietà del database predefinito:vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
Imposta la descrizione del database predefinito in settings.php:
$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'newportaldb', 'username' => 'apigee', 'password' => 'postgres', 'host' => 'localhost', 'port' => '5432', 'driver' => 'pgsql', 'prefix' => '', ) ) );Dove
databasespecifica il nuovo database che hai creato,usernameepasswordsono come definiti per il database personalizzato sul portale basato su tar eprefixè vuoto. - Nel portale basato su RPM, la versione del portale basata su RPM contiene meno moduli Drupal rispetto alla versione basata su tar. Dopo la migrazione al portale basato su RPM, devi verificare la presenza di eventuali moduli mancanti e installarli, se necessario.
- Installa il modulo Drupal
missing_moduleutilizzato per rilevare i moduli mancanti:cd /opt/apigee/apigee-drupal/wwwroot
drush dl missing_moduledrush en missing_module - Accedi al portale basato su RPM come amministratore.
- Seleziona Reports > Status reports (Report > Report sullo stato) nel menu di Drupal e verifica se mancano moduli.
- Utilizza questo report per installare i moduli mancanti o utilizza i seguenti comandi:
cd /opt/apigee/apigee-drupal/wwwroot
drush dl <moduleA> <moduleB> ...drush en <moduleA> <moduleB> ... - Dopo aver abilitato tutti i moduli, assicurati che i file siano di proprietà dell'utente apigee:
chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot
Per ulteriori informazioni sulle autorizzazioni dei file, visita la pagina https://www.drupal.org/node/244924.
- Installa il modulo Drupal
- Sul portale basato su RPM, esegui update.php in un browser per rimuovere eventuali errori relativi ai moduli mancanti:
- Accedi al portale basato su RPM come amministratore.
- Nel browser, vai al seguente URL:
http://portal_IP_or_DNS:8079/update.php
Dove portal_IP_or_DNS è l'indirizzo IP o il nome di dominio del portale basato su RPM.
- Segui le istruzioni sullo schermo.
- Aggiorna le voci DNS in modo che puntino al nuovo portale basato su RPM.
Tieni presente che la versione del portale basata su RPM utilizza la porta 8079 per impostazione predefinita, mentre la versione basata su tar utilizza la porta 80. Assicurati di utilizzare il numero di porta corretto nella voce DNS. Per informazioni sull'utilizzo di una porta diversa, consulta Imposta la porta HTTP utilizzata dal portale.
La conversione è stata completata.