המרת פורטל מבוסס טאר לפורטל מבוסס על 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, ספריית הבסיס השתנתה from:

/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. מחלצים את הספרייה 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 או שם הדומיין של ההכנסה לאלף צפיות בפורטל.

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

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

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