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) không cho phép bạn cập nhật phiên bản dựa trên tar của cổng thông tin. Bạn chỉ có thể trực tiếp cập nhật phiên bản cổng thông tin dựa trên RPM đế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 sang phiên bản dựa trên 4.18.05 RPM của cổng thông tin. Trong quá trình này, bạn 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 thông tin của bạn vẫn hoạt động như một cổng thông tin 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ác phiên bản 4.16.09 và 4.17.01 chứ không chỉ riêng 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 đầu ra.

Các bước cấp cao 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 là:

  • Cài đặt phiên bản RPM 4.18.05 dựa trên RPM của cổng thông tin trên 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ổng thông tin.
  • 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.

    Xin lưu ý rằng phiên bản dựa trên RPM của cổng thông tin 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. Xem Đặt cổng HTTP mà cổng sử dụng để biết thông tin khi sử dụng một cổng khác.

Thư mục cài đặt mặc định mới sau lượt 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

đến:

/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 chế độ 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 nút dựa trên tar của bạn cổng thông tin.
  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 di chuyển cơ sở dữ liệu từ cổng thông tin dựa trên tar đến 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 xác định của thuộc tính PG_PWD trong cấu hình cổng thông tin .

    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 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 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. Đăng nhập vào cổng thông tin với tư cách là quản trị viên.
    6. Chọn Modules (Mô-đun) trong trình đơn Drupal.
    7. Bật mô-đun 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 dựa trên RPM cổng thông tin. 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 "custom", như trong ví dụ sau đây:
    $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, di chuyển cơ sở dữ liệu cổng thông tin sang cơ sở dữ liệu dựa trên RPM cổng thông tin:
    1. Đăng nhập vào cổng thông tin với tư cách là quản trị viên.
    2. Chọn Structure (Cấu trúc) –> Misgrator (Trình di chuyển) trong trình đơn Drupal.
    3. Chọn cơ sở dữ liệu gốc của bạn trên cổng thông tin dựa trên tar, default và cơ sở dữ liệu đích, custom, dựa trên tệp settings.php hiển thị ở trên.
    4. Nhấp vào Di chuyển. Cơ sở dữ liệu dựa trên tar được di chuyển sang cơ sở dữ liệu dựa trên RPM cơ sở dữ liệu.
  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. Chiến lược phát hành đĩa đơn đường dẫn hiển thị trong các bước sau được dựa trên đường dẫn mặc định. Sửa đổi chúng nếu cần để 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 sang /opt/apigee/apigee-drupal/wwwroot/sites trên máy chủ dựa trên RPM.
    3. Bỏ nhóm 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 từ 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 rằng các tệp được sao chép có quyền sở hữu thích 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 web thư mục trên cổng thông tin dựa trên tar từ đường dẫn mặc định của /var/www/html: run drush status rồi 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 nằm trong thư mục sites, hãy sao chép các tệp/tệp đó vào thư mục Máy chủ dựa trên RPM như đã hiển thị ở 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 thuộc tính của cơ sở dữ liệu mặc định:
    vi /opt/apigee/apigee-drupal/wwwroot/sites/default/settings.php

    Thiết lập 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 đó database chỉ định cơ sở dữ liệu mới mà bạn đã tạo, usernamepassword được định nghĩa cho cơ sở dữ liệu tuỳ chỉnh trên cổng thông tin dựa trên tar và prefix đang trống.

  11. Trên cổng thông tin dựa trên RPM, phiên bản dựa trên RPM của cổng chứa ít hơn Các mô-đun Drupal so với phiên bản dựa trên tar. Sau khi di chuyển sang cổng dựa trên RPM, bạn phải kiểm tra xem có mô-đun nào bị thiếu 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 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 bất kỳ mô-đun bị thiếu nào.
    4. Hãy sử dụng báo cáo đó để cài đặt các mô-đun bị thiếu hoặc 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 quyền 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 đối với tệp, hãy xem 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 để loại bỏ lỗi trên các mô-đun bị thiếu:
    1. Đăng nhập vào cổng 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 mô hình phân bổ dựa trên RPM cổng thông tin.

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

    Xin lưu ý rằng phiên bản dựa trên RPM của cổng thông tin 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. Xem Đặt cổng HTTP mà cổng thông tin sử dụng để biết thông tin về thông qua một cổng khác.

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