在本主題中,您將學習以下內容:

  • 如何安裝Plesk(沒有本地Plesk資料庫,但有託管在遠端資料庫伺服器上的資料庫)。
  • Plesk有託管在遠端資料庫伺服器上的資料庫的優缺點。
  • Plesk安裝過程(針對有專用和共用遠端資料庫伺服器的安裝過程)。
  • 如何將遠端Plesk資料庫轉換為本地資料庫。

Plesk需要資料庫伺服器來存儲自己的``psa``資料庫、其元件使用的資料庫、以及託管客戶網站和應用程式創建的資料庫(例如,WordPress資料庫)。Plesk可以使用與Plesk(本地資料庫伺服器)位於同一台伺服器上的資料庫伺服器,或使用位於遠端機(遠端資料庫伺服器)上的資料庫伺服器。

預設情況下,安裝Plesk還會安裝一個本地資料庫伺服器。Plesk使用它來託管自己的``psa``資料庫。即使託管的網站使用遠端資料庫伺服器,亦如此。

但是,您可以不使用本地資料庫就可以安裝Plesk,而在遠端資料庫伺服器上託管Plesk``psa``資料庫。

備註: 目前,您只能將 Plesk for Linux 使用遠端資料庫。

使用託管在遠端資料庫伺服器上的Plesk資料庫,您可以執行以下操作:

  • 外包資料庫伺服器支援。
  • 使用高級的web資料庫管理工具,例如,Amazon RDS提供的工具。
  • 使用不能與Plesk安裝在同一台伺服器上的特定資料庫服務。
  • 如果您有多個Plesk伺服器,則需在一個集中式資料庫伺服器上託管多個Plesk資料庫。
  • 通過將Plesk資料庫託管在一個多節點的資料庫集群上(例如,MariaDB Galera Cluster)上,可以為Plesk創建一個高可用性的基礎架構。Plesk不支援本地安裝MariaDB Galera Cluster。

Plesk使用遠端資料庫的缺點如下:

  • 增加了財務成本(無論是附加的資料庫伺服器還是AWS服務)。
  • 需要更多的時間、精力和專業知識來安裝和維護(與預設的Plesk安裝方式相比)。

在遠端資料庫伺服器上安裝Plesk及其資料庫

前提條件

具體的安裝過程取決於遠端資料庫伺服器的類型:專用或共用。

專用的資料庫伺服器上沒有以前創建的任何資料庫或資料庫使用者。您需要有創建具有所有權限的資料庫管理員使用者的許可權。然後,Plesk安裝程式腳本將會自動創建Plesk``psa``資料庫。

一個共用的資料庫伺服器已經有了一些資料庫和資料庫使用者。您無法創建具有所有權限的資料庫管理使用者。相反,您可以手動創建運行Plesk所需的所有資料庫和資料庫使用者。

(專用的遠端資料庫伺服器)要在遠端資料庫伺服器上安裝Plesk及其資料庫:

備註: 首先,您需要在遠端資料庫伺服器上安裝一個資料庫管理系統。現在,我們建議您使用MySQL:我們已進行了測試並證明該系統是一個可運行的場景。

備註: 下面您可以看到在Ubuntu上運行的遠端資料庫伺服器的分步過程。對於其他Linux發行版本,請參考Oracle文檔,然後直接進入下面過程的第五步。

  1. 登入到遠端資料庫伺服器並安裝MySQL伺服器:

    [mysql_server]$ wget https://repo.mysql.com//mysql-apt-config_0.8.22-1_all.deb
    [mysql_server]$ dpkg -i mysql-apt-config_0.8.22-1_all.deb
    [mysql_server]$ apt update
    [mysql_server]$ apt install mysql-server
    [mysql_server]$ locate my.cnf
    
  2. 將有關本地密碼的資訊添加到 my.cnf

    [mysqld]
    default-authentication-plugin=mysql_native_password
    
  3. 重啟MySQL伺服器以應用以下更改:

    [mysql_server]$ systemctl restart mysql
    
  4. 輸入MySQL伺服器應用程式,並創建一個資料庫超級使用者:

    [mysql_server]$ mysql
    
    # welcome message output
    
    mysql> CREATE USER 'mysql_admin'@'%' IDENTIFIED BY '<password>';
    mysql> GRANT ALL ON *.* TO 'mysql_admin'@'%' WITH GRANT OPTION;
    
  5. 請確保Plesk伺服器可以訪問遠端資料庫伺服器。為此,請檢查遠程資料庫系統的 bind-address 參數值。內容須如下:

    bind-address = 0.0.0.0
    

    bind-address = <IP address of the remote database server the Plesk server will connect to>
    

    欲瞭解更多有關 bind-address 參數的資訊,請參閱 MySQL或`MariaDB <https://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/>`__文檔。

  6. 檢查從Plesk伺服器到遠端MySQL伺服器的連接:

    # try to connect to the MySQL server from the Plesk server
    [another_server]$ mysql --host=mysql_server --user=mysql_admin --password=<password>
    
  7. 創建一個具有所有權限的資料庫管理使用者:

    CREATE USER 'plesk_db_admin'@'%' IDENTIFIED BY '<plesk_db_admin_password>';
    GRANT ALL ON *.* TO 'plesk_db_admin'@'%' WITH GRANT OPTION;
    
  8. 登入到 Plesk 伺服器。

  9. 在Plesk伺服器上,運行Plesk安裝程式腳本,通過 PLESK_DB_DSN_PREFIX環境變數指定資料庫管理使用者(在上一步中創建的):

    PLESK_DB_DSN_PREFIX=mysql://plesk_db_admin:<plesk_db_admin_password>@mysql_server/host1_ ./plesk-installer
    

    備註: 要使用特定的資料庫使用者和/或資料庫名稱,請基於每資料庫使用 DSN 環境變數 而不是與 PLESK_DB_DSN_PREFIX 變數一起使用。例如,要為Plesk指定一個資料庫名稱並將其他所有內容保留為預設值,請指定以下環境變數:

    PLESK_DB_DSN_PREFIX=mysql://plesk_db_admin:<plesk_db_admin_password>@mysql_server/host1_
    PLESK_DB_DSN=mysql://plesk_db_admin:<plesk_db_admin_password>@mysql_server/host1_plesk
    

    在這種情況下,在安裝Plesk後,將創建``host1_plesk``資料庫,而不是``host1_psa``資料庫。

您已經設定了讓Plesk在遠端資料庫伺服器上託管其資料庫所需的所有內容。最後一步是第一次登入到 Plesk

(共用資料庫伺服器)要在遠端資料庫伺服器上安裝Plesk及其資料庫:

備註: 我們假定您已經在遠端資料庫伺服器上設置了一個資料庫管理系統(例如,MySQL/MariaDB)。若沒有,請考慮參考上述專用資料庫伺服器的的設置過程。這裡面包含了設置資料庫管理系統的示例。

  1. 登入到遠端資料庫伺服器並進入MySQL伺服器應用程式:

    mysql
    
  2. 創建具有」資料庫使用者」 表中指定許可權的資料庫和資料庫使用者:

    CREATE DATABASE host1_psa; # Plesk Database
    CREATE USER 'plesk_db_user'@'%' IDENTIFIED BY '<plesk_db_user_password>';
    GRANT ALL ON host1_psa.* TO 'plesk_db_user'@'%' WITH GRANT OPTION;
    
    CREATE DATABASE host1_apsc; # APSC Database
    CREATE USER 'apsc_db_user'@'%' IDENTIFIED BY '<apsc_db_user_password>';
    GRANT ALL ON host1_apsc.* TO 'apsc_db_user'@'%' WITH GRANT OPTION;
    
    CREATE DATABASE host1_roundcubemail; # Roundcube Webmail Database
    CREATE USER 'roundcube_db_user'@'%' IDENTIFIED BY '<roundcube_db_user_password>';
    GRANT ALL ON host1_roundcubemail.* TO 'roundcube_db_user'@'%' WITH GRANT OPTION;
    
    CREATE DATABASE host1_horde; # Horde Webmail Database
    CREATE USER 'horde_db_user'@'%' IDENTIFIED BY '<horde_db_user_password>';
    GRANT ALL ON host1_horde.* TO 'horde_db_user'@'%' WITH GRANT OPTION;
    
  3. 在Plesk伺服器上,運行Plesk安裝程式腳本,通過以下環境變數PLESK_DB_DSNPLESK_DB_APSC_DSNPLESK_DB_ROUNDCUBE_DSN 和/或 PLESK_DB_HORDE_DSN 指定資料庫和資料庫使用者(在上一步中創建的)。

    PLESK_DB_DSN=mysql://plesk_db_user:<plesk_db_user_password>@mysql_server/host1_psa \
    PLESK_DB_APSC_DSN=mysql://apsc_db_user:<apsc_db_user_password>@mysql_server/host1_apsc \
    PLESK_DB_ROUNDCUBE_DSN=mysql://roundcube_db_user:<roundcube_db_user_password>@mysql_server/host1_roundcubemail \
    # and/or PLESK_DB_HORDE_DSN=mysql://horde_db_user:<horde_db_user_password>@mysql_server/host1_horde \
    ./plesk-installer
    
  4. 請確保Plesk伺服器可以訪問遠端資料庫伺服器。為此,請檢查遠程資料庫系統的 bind-address 參數值。內容須如下:

    bind-address = 0.0.0.0
    

    bind-address = <IP address of the remote database server the Plesk server will connect to>
    

    欲瞭解更多有關 bind-address 參數的資訊,請參閱 MySQL或`MariaDB <https://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/>`__文檔。

您已經設定了讓Plesk在遠端資料庫伺服器上託管其資料庫所需的所有內容。最後一步是第一次登入到 Plesk

正在將Plesk遠端資料庫轉換為本地資料庫

如果您用遠端資料庫安裝了Plesk,然後改變了主意,您可以將Plesk遠端資料庫轉換為本地資料庫,從而獲取預設的Plesk安裝設定。

備註: 目前還不支援反向轉換。您無法將本地Plesk資料庫轉換為遠端資料庫。

前提條件

  • 託管Plesk資料庫的遠端資料庫伺服器。
  • 安裝Plesk的Linux伺服器。我們將稱之為Plesk伺服器。

將Plesk遠端資料庫轉換為本地資料庫:

  1. 從遠端資料庫伺服器複製以下資料庫的轉儲:psaapscroundcubemail 和/或 horde

    plesk db dump host1_apsc host1_psa host1_roundcubemail > dump_from_host1.sql
    
  2. 從資料庫名稱中移除首碼(若有):

    sed -i 's/host1_apsc/apsc/g' dump_from_host1.sql
    sed -i 's/host1_psa/psa/g' dump_from_host1.sql
    sed -i 's/host1_roundcubemail/roundcubemail/g' dump_from_host1.sql
    sed -i 's/host1_horde/horde/g' dump_from_host1.sql
    
  3. 登入到Plesk伺服器,並重命名包含遠端資料庫的配置資料的 /etc/psa/private/dsn.ini 文件。這將禁用Plesk伺服器上的遠端資料庫支援:

    mv /etc/psa/private/dsn.ini /etc/psa/private/dsn.ini.backup
    
  4. 創建一個資料庫管理使用者:

    PSA_PASSWORD=<new_admin_password> plesk sbin ch_admin_passwd
    
  5. 將複製的轉儲部署到Plesk伺服器:

    plesk db < dump_from_host1.sql
    
  6. 檢查資料庫中的問題,並使用 plesk repair db 實用程式將其修復(若有):

    plesk repair db
    

您已經完成了轉換,並且您的Plesk現在在本地機上託管其資料庫。您現在可以登入到您的Plesk了。

參考

資料庫使用者

image db users

環境變數

按首碼表示的所有資料庫的DSN環境變數

環境變數 值的格式 描述
PLESK_DB_DSN_PREFIX mysql://{plesk_db_admin}:{password}@{remote_db_host}/{db_prefix}

若希望安裝程式通過將指定的``db_prefix``首碼添加到其名稱中來創建所需的所有資料庫,請指定此變數。

備註:

若``db_prefix`` 為空,將會使用預設的資料庫名稱:psaapscroundcubemail 和/或 horde

每資料庫的 DSN 環境變數

環境變數 值的格式 描述
PLESK_DB_DSN mysql://{plesk_db_user}:{password}@{remote_db_host}/{plesk_db_name}

如果您希望安裝程式將 plesk_db_name 用作Plesk資料庫名稱,請指定此變數。必須提前添加該資料庫,或者 plesk_db_user``必須具有創建 ``plesk_db_name 資料庫的許可權(例如指定 plesk_db_admin)。

備註:

如果``plesk_db_name``保留為空,則將使用默認的``psa``名稱。

PLESK_DB_APSC_DSN mysql://{apsc_db_user}:{password}@{remote_db_host}/{apsc_db_name}

如果您希望安裝程式將 apsc_db_name 用作 APSC 資料庫名稱,請指定此變數。必須提前添加該資料庫,或者 apsc_db_user``必須具有創建 ``apsc_db_name 資料庫的許可權(例如指定 plesk_db_admin)。

備註:

如果``apsc_db_name``保留為空,則將使用默認的``apsc``名稱。

PLESK_DB_ROUNDCUBE_DSN mysql://{roundcube_db_user}:{password}@{remote_db_host}/{roundcube_db_name}

如果您希望安裝程式將 roundcube_db_name 用作 Roundcube 資料庫名稱,請指定此變數。必須提前添加該資料庫,或者 roundcube_db_user 必須具有創建 roundcube_db_name 資料庫的許可權(例如指定 plesk_db_admin)。

備註:

如果 roundcube_db_name 保留為空,則將使用默認的 roundcubemail 名稱。

PLESK_DB_HORDE_DSN mysql://{horde_db_user}:{password}@{remote_db_host}/{horde_db_name}

如果您希望安裝程式將 horde_db_name 用作 Horde 資料庫名稱,請指定此變數。必須提前添加該資料庫,或者 horde_db_user 必須具有創建 horde_db_name 資料庫的許可權(例如指定 plesk_db_admin)。

備註:

如果``horde_db_name``保留為空,則將使用默認的``horde``名稱。