Chuyển đổi cổng dựa trên tar sang cổng dựa trên RPM

Bản phát hành 4.18.05 của cổng Dịch vụ dành cho nhà phát triển Apigee (hay đơn giản là cổng thông tin) không cho phép bạn cập nhật phiên bản trước đó dựa trên tar của cổng thông tin. Bạn chỉ có thể cập nhật trực tiếp phiên bản dựa trên RPM lên phiên bản 4.18.05.

Tuy nhiên, bạn có thể chuyển đổi phiên bản dựa trên tar của cổng thông tin thành phiên bản dựa trên 4.18,05 RPM của cổng. Trong quá trình này, bạn sẽ di chuyển MySQL/MariaDB của cổng thông tin hiện có sang cơ sở dữ liệu Postgres. Sau khi chuyển đổi, cổng của bạn vẫn là cổng dựa trên RPM.

Bạn có thể di chuyển nhiều phiên bản trước của cổng thông tin dựa trên tar sang cổng dựa trên RPM, bao gồm các phiên bản 4.16.09 và 4.17.01, chứ không chỉ phiên bản 4.17.05. Yêu cầu duy nhất là cổng thông tin đang chạy Drupal 7 trở lên. Để kiểm tra phiên bản Drupal của bạn, hãy chọn Báo cáo > Báo cáo trạng thái trong trình đơn Drupal. Phiên bản Drupal xuất hiện ở hàng đầu tiên của kết quả.

Sau đây là các bước tổng quát mà bạn sử dụng để di chuyển từ cổng thông tin dựa trên tar sang cổng thông tin dựa trên RPM:

  • Cài đặt phiên bản 4.18.05 dựa trên RPM của cổng thông tin trên một nút mới.
  • Tạo cơ sở dữ liệu Postgres mới trên cổng thông tin dựa trên RPM.
  • Di chuyển cơ sở dữ liệu cổng thông tin từ cổng thông tin dựa trên tar.
  • Sao chép tất cả tệp phụ kiện từ cổng thông tin dựa trên tar sang cổng dựa trên RPM.
  • Cập nhật các mục nhập DNS để trỏ đến cổng thông tin mới dựa trên RPM.

    Lưu ý rằng phiên bản dựa trên RPM sử dụng cổng 8079 theo mặc định, trong khi phiên bản dựa trên tar sử dụng cổng 80. Đảm bảo bạn sử dụng đúng số cổng trong mục nhập DNS của mình. Xem phần Đặt cổng HTTP mà cổng sử dụng để biết thông tin về cách sử dụng một cổng khác.

Thư mục cài đặt mặc định mới sau khi chuyển đổi

Sau khi cập nhật bản cài đặt hiện sử dụng NGINX/Postgres, thư mục gốc đã thay đổi từ:

/opt/apigee/apigee-drupal

thành:

/opt/apigee/apigee-drupal/wwwroot

Quy trình chuyển đổi cổng thông tin

Cách chuyển đổi cổng thông tin sang lượt cài đặt dựa trên RPM:

  1. Cài đặt phiên bản 4.18.05 dựa trên RPM của cổng thông tin trên một nút khác với cổng thông tin dựa trên tar.
  2. Trên cổng thông tin dựa trên RPM, hãy tạo một cơ sở dữ liệu Postgres mới. Sau đó, bạn sẽ di chuyển cơ sở dữ liệu từ cổng thông tin dựa trên tar sang cơ sở dữ liệu mới này:
    1. Đăng nhập vào psql:
      psql -h localhost -p 5432 -U apigee

      Nhập mật khẩu Postgres của bạn theo quy định của tài sản PG_PWD trong tệp cấu hình cổng.

    2. Tạo cơ sở dữ liệu Postgred mới:
      CREATE DATABASE newportaldb;
    3. Thoát psql:
      \q
  3. Trên cổng thông tin dựa trên tar, hãy xoá các mô-đun cũ không còn được sử dụng:

    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. Trên cổng thông tin dựa trên tar, hãy cài đặt và định cấu hình mô-đun Di chuyển 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. Đăng nhập vào cổng với tư cách quản trị viên.
    6. Chọn Mô-đun trong trình đơn Drupal.
    7. Bật mô-đun DBTNG Migrator (Trình di chuyển DBTNG).
    8. Lưu cấu hình.
  5. Trên cổng thông tin dựa trên tar, hãy chỉnh sửa /var/www/html/sites/default/settings.php để thêm cấu hình cơ sở dữ liệu thứ hai trỏ đến cơ sở dữ liệu mới tạo trên cổng thông tin dựa trên RPM. Cấu hình cơ sở dữ liệu hiện tại có tên là "mặc định". Đặt tên cho cấu hình mới là "custom" (tuỳ chỉnh) như trong ví dụ sau:
    $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' => '',
        )
      )
    );

    Trong đó hostport chỉ định địa chỉ IP và cổng của máy chủ Postgres. Postgres sử dụng cổng 5432 cho các kết nối.

  6. Trên cổng thông tin dựa trên tar, hãy cài đặt trình điều khiển Postgres:
    1. Sử dụng Yum để cài đặt trình điều khiển:
      yum install php-pdo_pgsql
    2. Chỉnh sửa /etc/php.ini để thêm dòng sau vào vị trí bất kỳ trong tệp:
      extension=pgsql.so
    3. Khởi động lại Apache:
      service httpd restart
  7. Trên cổng thông tin dựa trên tar, hãy di chuyển cơ sở dữ liệu cổng sang cổng dựa trên RPM:
    1. Đăng nhập vào cổng với tư cách quản trị viên.
    2. Chọn Cấu trúc->Trình di chuyển trong trình đơn Drupal.
    3. Chọn cơ sở dữ liệu gốc trên cổng thông tin dựa trên tar là default và cơ sở dữ liệu đích là custom dựa trên tệp settings.php nêu trên.
    4. Nhấp vào Di chuyển. Cơ sở dữ liệu dựa trên tar sẽ được di chuyển sang cơ sở dữ liệu dựa trên RPM.
  8. Sao chép thư mục sites từ máy chủ dựa trên tar sang máy chủ dựa trên RPM. Các đường dẫn hiển thị trong các bước sau đây dựa trên đường dẫn mặc định. Hãy sửa đổi các tuỳ chọn đó nếu cần cho quá trình cài đặt của bạn.
    1. Trên cổng thông tin dựa trên tar, hãy gói thư mục /var/www/html/sites:
      cd /var/www/html/sites
      tar -cvzf /tmp/sites.tar.gz .
    2. Sao chép /tmp/sites.tar.gz vào /opt/apigee/apigee-drupal/wwwroot/sites trên máy chủ dựa trên RPM.
    3. Bỏ gói thư mục trang web nhưng không ghi đè các tệp quan trọng.
      1. Sao lưu tệp settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
      2. Sao lưu thư mục files hiện có:
        sudo mv /opt/apigee/apigee-drupal/wwwroot/sites/default/files
          /opt/apigee/apigee-drupal/wwwroot/sites/default/files_old
      3. Sao lưu thư mục sites hiện có:
        tar -cvzf /tmp/sites_old.tar.gz /opt/apigee/apigee-drupal/wwwroot/sites
      4. Giải nén và giải nén thư mục sites khỏi máy chủ dựa trên tar:
        gunzip /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar.gz
        tar -xvf /opt/apigee/apigee-drupal/wwwroot/sites/sites.tar
      5. Đảm bảo các tệp được sao chép có quyền sở hữu phù hợp:
        chown -R apigee:apigee /opt/apigee/apigee-drupal/wwwroot/sites/
      6. Khôi phục tệp settings.php:
        sudo cp /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.bak.php
          /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php
      7. Di chuyển các tệp riêng tư sang vị trí mới:
        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. Trên cổng thông tin dựa trên tar, chỉ khi bạn thay đổi đường dẫn đến thư mục gốc của web trên cổng thông tin dựa trên tar từ đường dẫn mặc định của /var/www/html: hãy chạy drush status và xem đường dẫn files và đường dẫn private files:
    cd /var/www/html
    drush status

    Nếu các tệp/tệp riêng tư không có trong thư mục sites, hãy sao chép các tệp đó vào máy chủ dựa trên RPM như minh hoạ ở trên.

  10. Trên cổng thông tin dựa trên RPM, hãy cập nhật /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php để đặt các thuộc tính của cơ sở dữ liệu mặc định:
    vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Đặt nội dung mô tả cơ sở dữ liệu mặc định trong settings.php:

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

    Trong trường hợp database chỉ định cơ sở dữ liệu mới mà bạn đã tạo, usernamepassword sẽ được xác định cho cơ sở dữ liệu tuỳ chỉnh trên cổng thông tin dựa trên tar và prefix sẽ trống.

  11. Trên cổng dựa trên RPM, phiên bản dựa trên RPM chứa ít mô-đun Drupal hơn so với phiên bản dựa trên tar. Sau khi chuyển sang cổng thông tin dựa trên RPM, bạn phải kiểm tra xem có mô-đun bị thiếu nào không và cài đặt chúng nếu cần.
    1. Cài đặt missing_module của Drupal dùng để phát hiện các mô-đun bị thiếu:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl missing_module
      drush en missing_module
    2. Đăng nhập vào cổng thông tin dựa trên RPM với tư cách là quản trị viên.
    3. Chọn Báo cáo > Báo cáo trạng thái trong trình đơn Drupal và kiểm tra xem có mô-đun nào bị thiếu không.
    4. Hãy sử dụng báo cáo đó để cài đặt mọi mô-đun bị thiếu hoặc sử dụng các lệnh sau:
      cd /opt/apigee/apigee-drupal/wwwroot
      drush dl <moduleA> <moduleB> ...
      drush en <moduleA> <moduleB> ...
    5. Sau khi bạn bật tất cả các mô-đun, hãy đảm bảo các tệp đó thuộc sở hữu của người dùng API:
      chown -LR apigee:apigee /opt/apigee/apigee-drupal/wwwroot

      Để biết thêm thông tin về quyền truy cập tệp, hãy truy cập vào https://www.drupal.org/node/244924.

  12. Trên cổng thông tin dựa trên RPM, hãy chạy update.php trong trình duyệt để xoá mọi lỗi trên các mô-đun bị thiếu:
    1. Đăng nhập vào cổng thông tin dựa trên RPM với tư cách là quản trị viên.
    2. Trong trình duyệt, hãy chuyển đến URL sau:
      http://portal_IP_or_DNS:8079/update.php

      Trong đó portal_IP_or_DNS là địa chỉ IP hoặc tên miền của cổng thông tin dựa trên RPM.

    3. Làm theo lời nhắc trên màn hình.
  13. Cập nhật các mục DNS để trỏ đến cổng thông tin mới dựa trên RPM.

    Lưu ý rằng phiên bản dựa trên RPM sử dụng cổng 8079 theo mặc định, trong khi phiên bản dựa trên tar sử dụng cổng 80. Đảm bảo bạn sử dụng đúng số cổng trong mục nhập DNS của mình. Xem phần Đặt cổng HTTP mà cổng sử dụng để biết thông tin về cách sử dụng một cổng khác.

Quá trình chuyển đổi đã hoàn tất.