המרת פורטל מבוסס טאר לפורטל מבוסס על RPM

גרסה 4.18.05 של פורטל השירותים למפתחים של Apigee (או פשוט הפורטל) לא מאפשרת לעדכן או גרסה מבוססת tar של הפורטל. אפשר לעדכן רק גרסה של הפורטל שמבוססת על RPM עד 4.18.05.

עם זאת, אפשר להמיר גרסה מבוססת tar של הפורטל למכונה מבוססת 4.18.05 RPM של להיכנס לפורטל. במסגרת התהליך הזה, מעבירים את MySQL/MariaDB של הפורטל הקיים אל מסד נתונים של Postgres. לאחר ההמרה, הפורטל יישאר כפורטל שמבוסס על RPM.

אפשר להעביר גרסאות קודמות רבות של הפורטל שמבוסס על קובץ tar לפורטל שמבוסס על RPM, כולל הגרסאות 4.16.09 ו-4.17.01, ולא רק את הגרסה 4.17.05. הדרישות היחידות הן בפורטל פועלת גרסת Drupal מגרסה 7 ואילך. כדי לבדוק איזו גרסה של Drupal מותקנת במכשיר, בוחרים באפשרות דוחות > דוחות סטטוס בתפריט Drupal. הגרסה של Drupal מופיעה בשורה הראשונה של הפלט.

השלבים ברמה הכללית שבהם אתם משתמשים כדי לעבור מפורטל מבוסס tar לפורטל שמבוסס על RPM הן:

  • להתקין את גרסת הפורטל המבוססת על RPM 4.18.05 צומת חדש.
  • יוצרים מסד נתונים חדש ב-Postgres בפורטל המבוסס על RPM.
  • מעבירים את מסד הנתונים של הפורטל מהפורטל המבוסס על tar.
  • העתקה של כל קובצי האביזר מהפורטל מבוסס tar לקובץ המבוסס על RPM בפורטל.
  • מעדכנים את רשומות ה-DNS כך שיצביעו על הפורטל החדש המבוסס על RPM.

    שימו לב שהגרסה של הפורטל, שמבוססת על RPM, משתמשת ביציאה 8079 כברירת מחדל, ואילו הגרסה מבוססת tar הגרסה משתמשת ביציאה 80. חשוב לוודא שמשתמשים במספר היציאה הנכון ברשומת ה-DNS. צפייה איך מגדירים את יציאת ה-HTTP שהפורטל משתמש בה בשימוש בשקע אחר.

ספריית ברירת המחדל החדשה להתקנה אחרי ההמרה

אחרי עדכון התקנה שמשתמשת עכשיו ב-NGINX/Postgres, ספריית השורש השתנתה מ:

/opt/apigee/apigee-drupal

אל:

/opt/apigee/apigee-drupal/wwwroot

תהליך המרה לפורטל

כדי להמיר את הפורטל להתקנה שמבוססת על RPM:

  1. מתקינים את גרסת הפורטל 4.18.05 שמבוססת על RPM בצומת אחר מהפורטל שמבוסס על קובץ ה-tar.
  2. בפורטל שמבוסס על RPM, יוצרים מסד נתונים חדש של Postgres. לאחר מכן מבצעים העברה מסד הנתונים מהפורטל מבוסס tar למסד הנתונים החדש הזה:
    1. מתחברים אל psql:
      psql -h localhost -p 5432 -U apigee

      יש להזין את הסיסמה של Postgres כפי שהוגדרה במאפיין PG_PWD בתצורת הפורטל חדש.

    2. יצירת מסד נתונים חדש מסוג Postgred:
      CREATE DATABASE newportaldb;
    3. יציאה מ-psql:
      \q
  3. בפורטל מבוסס tar, מסירים מודולים ישנים שכבר לא בשימוש:

    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';"

  4. בפורטל מבוסס tar, מתקינים ומגדירים את המודול של Migrator Drupal:
    1. cd /tmp 
    2. wget https://ftp.drupal.org/files/projects/dbtng_migrator-7.x-1.4.tar.gz 
    3. gunzip /tmp/dbtng_migrator-7.x-1.4.tar.gz 
    4. tar -xvf /tmp/dbtng_migrator-7.x-1.4.tar --directory /var/www/html/sites/all/modules 
    5. עליך להתחבר לפורטל כאדמין.
    6. בוחרים באפשרות מודולים בתפריט Drupal.
    7. מפעילים את המודול DBTNG Migrator.
    8. שומרים את ההגדרות האישיות.
  5. בפורטל שמבוסס על tar, עורכים את /var/www/html/sites/default/settings.php כדי להוסיף הגדרה שנייה של מסד נתונים שמצביעה על מסד הנתונים החדש שנוצר, בפורטל. התצורה הנוכחית של מסד הנתונים נקראת "ברירת מחדל". צריך לתת שם להגדרה החדשה 'custom', כמו בדוגמה הבאה:
    $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' => '',
        )
      )
    );

    כאשר host ו-port מציינים את כתובת ה-IP והיציאה של שרת Postgres. Postgres משתמש ביציאה 5432 לחיבורים.

  6. בפורטל מבוסס tar, מתקינים את מנהל ההתקן של Postgres:
    1. משתמשים ביומ כדי להתקין את מנהל ההתקן:
      yum install php-pdo_pgsql
    2. עורכים את הקובץ /etc/php.ini ומוסיפים את השורה הבאה בכל מקום בקובץ:
      extension=pgsql.so
    3. מפעילים מחדש את Apache:
      service httpd restart
  7. בפורטל שמבוסס על tar, מעבירים את מסד הנתונים של הפורטלים לשיוך מבוסס-RPM פורטל:
    1. עליך להתחבר לפורטל כאדמין.
    2. בתפריט ה-Drupal בוחרים באפשרות מבנה->Migrator.
    3. בוחרים את מסד הנתונים המקור בפורטל מבוסס-ה-tar, default, ואת מסד הנתונים היעד, custom, על סמך הקובץ settings.php שמוצג למעלה.
    4. לוחצים על העברה. מסד הנתונים מבוסס tar מועבר למסד נתונים מבוסס RPM מסד נתונים.
  8. מעתיקים את הספרייה sites מהשרת מבוסס tar לשרת המבוסס על RPM. הנתיבים שמוצגים בשלבים הבאים מבוססים על נתיבי ברירת מחדל. יש לשנות אותן לפי הצורך ההתקנה שלך.
    1. בפורטל שמבוסס על tar, מקבצים את הספרייה /var/www/html/sites:
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. העתקת /tmp/sites.tar.gz אל /opt/apigee/apigee-drupal/wwwroot/sites בשרת המבוסס על RPM.
    3. פירוק ספריית האתרים, אבל לא יחליפו קבצים חשובים.
      1. מגבים את הקובץ settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. מגבים את הספרייה הקיימת files:
        sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files
          /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. מגבים את ספריית sites הקיימת:
        tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. פותחים את הארכיון zip ואת הארכיון tar של הספרייה sites מהשרת שמבוסס על tar:
        gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
        tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. מוודאים שלקבצים שהועתקו יש בעלות מתאימה:
        chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. משחזרים את הקובץ settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. העברת קבצים פרטיים למיקום החדש:
        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
  9. בפורטל שמבוסס על tar, רק אם שיניתם את הנתיב לרמה הבסיסית (root) של האתר בפורטל מבוסס tar מנתיב ברירת המחדל של /var/www/html: run drush status ובוחנים את הנתיב files ואת הנתיב private files:
    cd /var/www/html
    drush status

    אם קבצים/קבצים פרטיים לא נמצאים בספרייה sites, יש להעתיק אותם אל שרת המבוסס על RPM כפי שמוצג למעלה.

  10. בפורטל שמבוסס על RPM, מעדכנים /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php כדי להגדיר את המאפיינים של מסד הנתונים המוגדר כברירת מחדל:
    vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    אפשר להגדיר את תיאור ברירת המחדל של מסד הנתונים בהגדרות.php:

    $databases = array (
      'default' =>
      array (
        'default' =>
        array (
          'database' => 'newportaldb',
          'username' => 'apigee',
          'password' => 'postgres',
          'host' => 'localhost', 'port' => '5432',
          'driver' => 'pgsql',
          'prefix' => '',
        )
      )
    );

    כאשר database מציין את מסד הנתונים החדש שיצרתם, username ו-password מוגדרים במסד הנתונים המותאם אישית בפורטל מבוסס tar, ו-prefix ריק.

  11. בפורטל שמבוסס על הכנסה לאלף צפיות (RPM), הגרסה של הפורטל שמבוססת על הכנסה לאלף צפיות (RPM) מכילה פחות מודולים של Drupal בהשוואה לגרסה המבוססת על tar. אחרי המעבר לפורטל שמבוסס על RPM, לבדוק אם יש מודולים חסרים ולהתקין אותם לפי הצורך.
    1. מתקינים את missing_module של Drupal שמשמש לזיהוי מודולים חסרים:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. מתחברים לפורטל שמבוסס על RPM כאדמין.
    3. בוחרים דוחות > דוחות סטטוס בתפריט Drupal, ומחפשים מודולים חסרים.
    4. משתמשים בדוח הזה כדי להתקין מודולים חסרים, או משתמשים בפקודות הבאות:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl <moduleA> <moduleB> ...
      drush en <moduleA> <moduleB> ...
    5. אחרי שמפעילים את כל המודולים, צריך לוודא שהקבצים הם בבעלות משתמש ה-apigee:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      למידע נוסף על הרשאות לקבצים: https://www.drupal.org/node/244924.

  12. בפורטל שמבוסס על RPM, מריצים את update.php בדפדפן כדי להסיר שגיאות במודולים חסרים:
    1. מתחברים לפורטל שמבוסס על RPM כאדמין.
    2. בדפדפן, עוברים לכתובת ה-URL הבאה:
      http://portal_IP_or_DNS:8079/update.php

      כאשר portal_IP_or_DNS היא כתובת ה-IP או שם הדומיין של הפורטל שמבוסס על RPM.

    3. פועלים לפי ההוראות שמוצגות במסך.
  13. מעדכנים את רשומות ה-DNS כדי להפנות לפורטל החדש שמבוסס על RPM.

    שימו לב שהגרסה של הפורטל, שמבוססת על RPM, משתמשת ביציאה 8079 כברירת מחדל, ואילו הגרסה מבוססת tar הגרסה משתמשת ביציאה 80. חשוב לוודא שהשתמשתם במספר היציאה הנכון ברשומת ה-DNS. צפייה איך מגדירים את יציאת ה-HTTP שהפורטל משתמש בה כדי לקבל מידע על באמצעות יציאה אחרת.

ההמרה הושלמה.