La release 4.18.05 del portale Servizi per sviluppatori Apigee (o semplicemente il portale) non consente di aggiornare una versione precedente basata sul tar del portale. Puoi aggiornare direttamente una versione del portale basata su RPM solo alla versione 4.18.05.
Tuttavia, puoi convertire una versione del portale basata su tar dell'istanza di un portale in base all'RPM (4.18.05). Nell'ambito di questo processo, esegui la migrazione di MySQL/MariaDB del portale esistente a un database Postgres. Dopo la conversione, il portale rimane basato su RPM.
Puoi eseguire la migrazione di molte versioni precedenti del portale basato su tar a un portale basato sull'RPM, incluse le versioni 4.16.09 e 4.17.01, non solo la versione 4.17.05. Gli unici requisiti sono che il portale esegue Drupal 7 o versioni successive. Per controllare la versione di Drupal, seleziona Report > Report di stato nel menu Drupal. La versione di Drupal viene visualizzata nella prima riga dell'output.
I passaggi di alto livello che utilizzi per eseguire la migrazione da un portale basato su tar a un portale basato sull'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 sull'RPM.
- Esegui la migrazione del database del portale dal portale basato su tar.
- Copia tutto il file degli accessori dal portale basato su tar nel portale basato sull'RPM.
- Aggiorna le voci DNS per indirizzare al nuovo portale basato sull'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 la pagina Impostare la porta HTTP utilizzata dal portale.
Nuova directory di installazione predefinita dopo la conversione
Dopo aver aggiornato un'installazione che ora utilizza NGINX/Postgres, la directory principale ha subito il seguente cambiamento:
/opt/apigee/apigee-drupal
a:
/opt/apigee/apigee-drupal/wwwroot
Procedura di conversione dei portali
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 basato su tar.
- Sul portale basato sull'RPM, crea un nuovo database Postgres. Successivamente, esegui 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 tua password Postgres come definito dalla proprietà PG_PWD nel file di configurazione del portale.
- Crea un nuovo database POSTGRED:
CREATE DATABASE newportaldb;
- Esci da psql:
\q
- Accedi a psql:
-
Nel portale basato su tar, rimuovi i moduli precedenti 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';"
- Nel 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 Drupal.
- Abilita il modulo DBTNG Migrator.
- Salva la configurazione.
-
- Nel portale basato su tar, modifica
/var/www/html/sites/default/settings.php
per aggiungere una seconda configurazione di database che punta al database appena creato sul portale basato sull'RPM. La configurazione attuale del database è denominata "default". Assegna alla nuova configurazione il nome "custom", come illustrato 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
host
eport
specificano 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.ini
per aggiungere la seguente riga in un punto qualsiasi del file:extension=pgsql.so
- Riavvia Apache:
service httpd restart
- Utilizza Yum per installare il driver:
- Nel portale basato su tar, esegui la migrazione del database al portale basato su RPM:
- Accedi al portale come amministratore.
- Seleziona Struttura->Migratore nel menu Drupal.
- Scegli il tuo database di origine sul portale basato su tar,
default
, e il database di destinazione,custom
, in base al filesettings.php
mostrato sopra. - Fai clic su Esegui migrazione. Viene eseguita la migrazione del database basato su tar al database basato su RPM.
- Copia la directory
sites
dal server basato su tar al server basato su RPM. I percorsi visualizzati nei passaggi seguenti si basano su percorsi predefiniti. Modificali in base alle tue esigenze per l'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.gz
in/opt/apigee/apigee-drupal/wwwroot/sites
sul server basato su RPM. - Separare 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
files
esistente:sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
- Esegui il backup della directory
sites
esistente:tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
- Decomprimi e disinstalla la directory
sites
dal 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 siano dei proprietari appropriati:
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/private
chown -R apigee:apigee /opt/apigee/data/apigee-sap-drupal-devportal/private
- Esegui il backup del file
- Nel portale basato su tar, raggruppa la directory
- Nel portale basato su tar, solo se hai modificato il percorso della directory principale web sul portale basato su tar rispetto al percorso predefinito di /var/www/html: esegui
drush status
e osserva il percorsofiles
e il percorsoprivate files
:cd /var/www/html
drush status
Se i file o i file privati non si trovano nella directory
sites
, copiali sul server basato su RPM come mostrato sopra. - Nel portale basato su RPM, aggiorna
/opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
per impostare le proprietà del database predefinito:vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
Imposta la descrizione del database predefinita in settings.php:
$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'newportaldb', 'username' => 'apigee', 'password' => 'postgres', 'host' => 'localhost', 'port' => '5432', 'driver' => 'pgsql', 'prefix' => '', ) ) );
Dove
database
specifica il nuovo database che hai creato,username
epassword
sono quelli definiti per il database personalizzato sul portale basato su tar eprefix
è vuoto. - Nel portale basato sull'RPM, la versione del portale contiene meno moduli Drupal rispetto alla versione basata su tar. Dopo aver eseguito la migrazione al portale basato sull'RPM, devi verificare la presenza di eventuali moduli mancanti e installarli, se necessario.
- Installa il Drupal
missing_module
utilizzato per rilevare i moduli mancanti:cd /opt/apigee/apigee-drupal/wwwroot
drush dl missing_module
drush en missing_module
- Accedi al portale basato sull'RPM come amministratore.
- Seleziona Report > Report di stato nel menu Drupal e controlla se ci sono eventuali moduli mancanti.
- 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, consulta https://www.drupal.org/node/244924.
- Installa il Drupal
- Sul portale basato su RPM, esegui update.php in un browser per rimuovere eventuali errori nei moduli mancanti:
- Accedi al portale basato sull'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 rimandino al nuovo portale basato sull'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 Impostare la porta HTTP utilizzata dal portale per informazioni su come utilizzare una porta diversa.
La conversione è stata completata.