La versión 4.18.05 del portal de servicios para desarrolladores de Apigee (o simplemente el portal) no te permite actualizar una versión anterior versión del portal basada en tar. Solo puedes actualizar directamente una versión basada en RPM del portal al 18/4/05.
Sin embargo, puedes convertir una versión basada en tar del portal en una instancia basada en RPM 4.18.05 de el portal. Como parte de este proceso, migrarás MySQL/MariaDB del portal existente a un Base de datos de Postgres. Una vez convertido, el portal permanecerá como un portal basado en RPM.
Puedes migrar muchas versiones anteriores del portal basado en tar a uno basado en RPM. incluidas las versiones 4.16.09 y 4.17.01, no solo la 4.17.05. El único requisito es que el portal ejecute Drupal 7 o una versión posterior. Para verificar tu versión de Drupal, selecciona Informes > Informes de estado en el menú de Drupal. La versión de Drupal aparece en la primera fila. de la salida.
Los pasos de alto nivel que usas para migrar de un portal basado en tar a uno basado en RPM son:
- Instala la versión basada en RPM 4.18.05 del portal en un nodo nuevo.
- Crea una nueva base de datos de Postgres en el portal basado en RPM.
- Migra la base de datos del portal desde el portal basado en tar.
- Copia todos los archivos de accesorios del portal basado en tar en el archivo basado en RPM. portal.
- Actualiza las entradas de DNS para que apunten al nuevo portal basado en RPM.
Ten en cuenta que la versión basada en RPM del portal usa el puerto 8079 de forma predeterminada, mientras que la versión basada en tar usa el puerto 80. Asegúrate de usar el número de puerto correcto en tu entrada de DNS. Consulta Configura el puerto HTTP que usa el portal para obtener información. usar un puerto diferente.
Nuevo directorio de instalación predeterminado después de conversión
Después de actualizar una instalación que ahora usa Nginx/Postgres, el directorio raíz cambió. de:
/opt/apigee/apigee-drupal
a:
/opt/apigee/apigee-drupal/wwwroot
Procedimiento de conversión del portal
Para convertir el portal en una instalación basada en RPM, haz lo siguiente:
- Instala la versión 4.18.05 basada en RPM del portal en un nodo diferente del basado en RPM portal.
- En el portal basado en RPM, crea una nueva base de datos de Postgres. Más adelante, migrarás
la base de datos del portal basado en tar a esta nueva base de datos:
- Accede a psql:
psql -h localhost -p 5432 -U apigee
Ingresa tu contraseña de Postgres como se define en la propiedad PG_PWD en la configuración del portal .
- Crea una nueva base de datos postgred:
CREATE DATABASE newportaldb;
- Sal de psql:
\q
- Accede a psql:
-
En el portal basado en tar, quita los módulos antiguos que ya no se usan:
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';"
- En el portal basado en tar, instala y configura el módulo 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
- Accede al portal como administrador.
- Selecciona Módulos en el menú de Drupal.
- Habilita el módulo DBTNG Migrator.
- Guarde la configuración.
-
- En el portal basado en tar, edita
/var/www/html/sites/default/settings.php
. para agregar una segunda configuración de la base de datos que apunte a la base de datos recién creada en el entorno de portal. La configuración actual de la base de datos se denomina “predeterminada”. Asigna un nombre a tu nueva configuración “personalizado”, como se muestra en el siguiente ejemplo:$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' => '', ) ) );
Donde
host
yport
especifican la dirección IP y el puerto del servidor de Postgres. Postgres usa el puerto 5432 para las conexiones. -
En el portal basado en tar, instala el controlador de Postgres:
- Usa Yum para instalar el controlador:
yum install php-pdo_pgsql
- Edita
/etc/php.ini
para agregar la siguiente línea en cualquier parte del archivo:extension=pgsql.so
- Reinicia Apache:
service httpd restart
- Usa Yum para instalar el controlador:
- En el portal basado en tar, migra la base de datos del portal al portal basado en RPM.
portal:
- Accede al portal como administrador.
- Selecciona Structure->Migrator en el menú de Drupal.
- Elige tu base de datos de origen en el portal basado en tar,
default
, y base de datos de destino,custom
, basada ensettings.php
archivo mostrado arriba. - Haz clic en Migrar. La base de datos basada en tar se migra en la base de datos.
- Copia el directorio
sites
del servidor basado en tar al servidor basado en RPM. El las rutas de acceso que se muestran en los siguientes pasos se basan en rutas de acceso predeterminadas. Modifícalas según sea necesario para la instalación.- En el portal basado en tar, empaqueta el directorio
/var/www/html/sites
:cd /var/www/html/sites
tar -cvzf /tmp/sites.tar.gz .
- Copiar
/tmp/sites.tar.gz
en/opt/apigee/apigee-drupal/wwwroot/sites
en el servidor basado en RPM - Desagrupa el directorio de sites, pero no sobrescribas los archivos importantes.
- Crea una copia de seguridad del archivo
settings.php
:sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
- Crea una copia de seguridad del directorio
files
existente:sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
- Crea una copia de seguridad del directorio
sites
existente:tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
- Descomprime y descomprime el directorio
sites
del servidor basado en tar:gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
- Asegúrate de que los archivos copiados tengan la propiedad adecuada:
chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
- Restablece el archivo
settings.php
:sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
- Mueve archivos privados a una nueva ubicación:
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
- Crea una copia de seguridad del archivo
- En el portal basado en tar, empaqueta el directorio
- En el portal basado en tar, solo si cambiaste la ruta a la raíz web
en el portal basado en tar desde la ruta predeterminada de /var/www/html: run
drush status
y observa la rutafiles
y la rutaprivate files
:cd /var/www/html
drush status
Si los archivos o los archivos privados no se encuentran en el directorio
sites
, cópialos en el basado en RPM, como se muestra arriba. - En el portal basado en RPM, actualiza
/opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
para configurar las propiedades de la base de datos predeterminada:vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
Establece la descripción predeterminada de la base de datos en settings.php:
$databases = array ( 'default' => array ( 'default' => array ( 'database' => 'newportaldb', 'username' => 'apigee', 'password' => 'postgres', 'host' => 'localhost', 'port' => '5432', 'driver' => 'pgsql', 'prefix' => '', ) ) );
En el ejemplo anterior,
database
especifica la base de datos nueva que creaste.username
ypassword
son los definidos para la base de datos personalizada en el portal basado en tar, yprefix
está vacío - En el portal basado en RPM, la versión basada en RPM contiene menos
módulos de Drupal que la versión basada en tar. Después de migrar al portal basado en RPM,
debe comprobar si faltan módulos y, luego, instalarlos según sea necesario.
- Instala el
missing_module
de Drupal que se usa para detectar módulos faltantes:cd /opt/apigee/apigee-drupal/wwwroot
drush dl missing_module
drush en missing_module
- Accede al portal basado en RPM como administrador.
- Selecciona Informes > Informes de estado en el menú de Drupal y verifica los módulos faltantes.
- Usa ese informe para instalar los módulos faltantes o usa los siguientes comandos:
cd /opt/apigee/apigee-drupal/wwwroot
drush dl <moduleA> <moduleB> ...
drush en <moduleA> <moduleB> ...
- Después de habilitar todos los módulos, asegúrate de que los archivos sean propiedad del usuario de Apigee:
chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot
Para obtener más información sobre los permisos de archivos, consulta https://www.drupal.org/node/244924.
- Instala el
- En el portal basado en RPM, ejecuta update.php en un navegador para quitar los errores.
sobre los módulos faltantes:
- Accede al portal basado en RPM como administrador.
- En el navegador, ve a la siguiente URL:
http://portal_IP_or_DNS:8079/update.php
Donde portal_IP_or_DNS es la dirección IP o el nombre de dominio del dominio basado en RPM portal.
- Sigue las indicaciones en pantalla.
- Actualiza las entradas de DNS para que apunten a tu nuevo portal basado en RPM.
Ten en cuenta que la versión basada en RPM del portal usa el puerto 8079 de forma predeterminada, mientras que la versión basada en tar usa el puerto 80. Asegúrate de usar el número de puerto correcto en tu entrada de DNS. Consulta Configura el puerto HTTP que usa el portal para obtener información sobre con un puerto diferente.
Se completó la conversión.