在本主题中,您将学习以下内容:

  • 如何安装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``名称。