简介

WordPress的多站点功用是一种独特的方法,能够在一个当地保管和办理一组网站,关于需求在一个主机下运转多个WordPress网站的项目或职位来说对错常有用的。多站点供给了从一个WordPress装置中创立多个WordPress网站的才能,每个网站都有一个单独的主题、一套插件和内容集合(通常是帖子和页面)。这一功用有助于削减保护和更新多个WordPress装置的开支,一起答应你保管或许互不相关的多个网站。

在本教程中,你将在Ubuntu 20.04 Droplet上运用子域树立一个WordPress多站点。你将创立的WordPress网站将有一个子域的网址,如**wp-site.yourdomain.com,但你的子域地址能够映射到一个外部域,如wp-site.net**,这样每个网站对拜访你的多站点套件地址的用户来说看起来是独立的。

前提条件

本教程要求你有WordPress多站点的基本知识。以下文章或许有助于加深你对多站点的理解。

  • WordPress网络办理屏幕
  • WordPress多站点的基础知识

第一步 – 装置WordPress

在这个教程中,你需求拜访一个在Ubuntu 20.04上运转LEMP栈的WordPress Droplet。你能够经过以下方法在Droplet上创立一个WordPress装置。

  • 运用WordPress一键装置来创立一个装置有WordPress的Droplet
  • 创立一个Ubuntu 20.04 Droplet并装置LEMP栈,然后装置WordPress。

你也能够运用主机供货商上的WordPress装置来遵循本教程,但请记住,本教程的进程将反映DigitalOcean Droplet上的WordPress多站点设置。

在装置WordPress之前,你需求为你的多站点装置中的每个预定的WordPress站点设置DNS记载。在本教程中,创立以下域名。

  • 网站1。

    域名: examplewp.com(主域名)

    这是在装置WordPress时创立的站点。

  • 站点2。

    外部域名:shoppingsite.com

    **子域名:**shoppingsite.example.com

  • 站点3。

    外部域名: companysite.org

    域名:companysite.example.com

第一个域名是主域名,WordPress将经过它被引用。请确保为一切三个域名设置DNS,使其指向保管WordPress的Droplet的IP地址。

在装置时,假如你挑选运用带有LEMP堆栈的Droplet,请确保依照说明来设置你的数据库和用户。关于DigitalOcean的WordPress一键式装置,这现已为您装备好了。

在你的Droplet上装置WordPress后,让咱们把文件一切权分配给用户www-data 。这对媒体上传和中心/插件/主题更新在WordPress中的作业至关重要。

经过指令行登录到您的Droplet,然后履行以下指令,用您的WordPress装置的完整路径替换突出显现的路径。

chown -R www-data:www-data /var/www/wordpress/

这个指令将颁发www-data 用户读写权限,以便进行媒体上传和必要的更新。

鄙人一步,咱们将进一步装备主域,然后从那里装备咱们的多站点装置。

第2步 – 设置DNS通配符记载

让咱们持续为主域增加一个DNS通配符记载。增加通配符记载答应在任何时候将更多的WordPress网站增加到你的多站点装置中,而不需求单个A记载。或许,你能够挑选为每个子域增加一个新的A记载。

登录到您的DigitalOcean控制面板,导航到网络部分。修改主域名,为这个域名创立一个指向Droplet的IP地址的通配符A记载。通配符记载是经过在主机名输入框中输入星号(*)来创立的,如以下截图所示。

如何在Ubuntu 20.04上用Nginx和LEMP建立WordPress多站点

假如您将域名的DNS保管在一个主机供给商上,请运用注册商的网站设置通配符记载。

设置通配符记载后,对任何random-sub-domain.examplewp.com ,DNS查询应回来您的Droplet的IP地址。

第3步 – 启用多站点和创立其他站点

在这一节中,让咱们现在启用咱们的WordPress多站点并创立进程1中说到的两个额外站点。

要开端这个进程,必须在wp-config.php 文件中界说一个PHP常量,以启用网络设置页面。

你能够在登录到你的WordPress Droplet时经过指令行修改wp-config.php 文件。用你挑选的指令行修改器翻开该文件。这里,咱们将运用nano

nano /var/www/wordpress/wp-config.php

注释/* That's all, stop editing! Happy blogging. */ 或类似的文本之前增加以下代码。

/var/www/wordpress/wp-config.php

    /* Multisite settings */
    define( 'WP_ALLOW_MULTISITE', true );

保存并封闭该文件。假如你运用的是nano ,你能够用CTRL+X ,然后YENTER 来承认。

接下来,登录WordPress办理面板,导航到工具->网络设置。挑选子域选项,依据需求修改网络标题,然后点击装置

如何在Ubuntu 20.04上用Nginx和LEMP建立WordPress多站点

你将看到在wp-config.php.htaccess 文件中增加两个代码块。因为咱们运用的是Nginx,咱们不需求运用建议的.htaccess ,所以你能够暂时疏忽它。

仿制wp-config.php 的代码,它看起来类似于下面的内容。

    define('MULTISITE', true);
    define('SUBDOMAIN_INSTALL', true);
    define('DOMAIN_CURRENT_SITE', 'examplewp.com');
    define('PATH_CURRENT_SITE', '/');
    define('SITE_ID_CURRENT_SITE', 1);
    define('BLOG_ID_CURRENT_SITE', 1);

接下来,翻开wp-config.php 文件。

nano /var/www/wordpress/wp-config.php

包含你刚刚仿制的代码片段,把它放在写有/* That's all, stop editing! Happy blogging. */ (或建议不要写鄙人面的变体文本)的注释之前。完成后保存该文件。

退出WordPress办理面板,然后再次登录。从左上角的办理工具栏,导航到我的网站>网络办理>网站

如何在Ubuntu 20.04上用Nginx和LEMP建立WordPress多站点

点击 “增加新“按钮,翻开 “增加新网站“表格。下面的截图显现了咱们的比如中购物网站所填写的细节。输入的网站地址将构成这个网站的子域。

如何在Ubuntu 20.04上用Nginx和LEMP建立WordPress多站点

点击增加网站,创立的网站将经过http://shoppingsite.examplewp.com

重复这些进程来创立第二个站点(在咱们的比如中是companysite.examplewp.com )。

以下三个WordPress站点现在能够有自己的内容、主题和活泼的插件集。

  • examplewp.com
  • shoppingsite.examplewp.com
  • companysite.examplewp.com

第4步 – 设置域名映射

在这一步,让咱们经过下载和启用WordPress MU域名映射插件,使多站点为每个WordPress站点运用一个单独的域名。这个第三方插件答应WordPress多站点的用户将他们的博客/网站映射到另一个域名。

要下载这个插件,请拜访**”我的网站”->”网络办理”->”插件**”,在你的主域名上挑选**”增加新**”,找到WordPress MU域名映射插件。

如何在Ubuntu 20.04上用Nginx和LEMP建立WordPress多站点

装置该插件,然后点击WordPress MU域名映射插件下面的网络激活链接。进入设置->域名映射,对域名选项做如下修改。

  • 撤销勾选远程登录
  • 勾选永久重定向
  • 撤销勾选重定向办理页面到网站的原始域名

如何在Ubuntu 20.04上用Nginx和LEMP建立WordPress多站点

完成后点击保存。这些设置将一切对子域(如companysite.examplewp.com )的请求重定向到它们各自的外部域(如companysite.org ),包含办理页面(/wp-admin )。

鄙人一步,让咱们依据每个网站的ID为其映射一个域名。有许多方法能够找到一个网站的ID,但为了更简略办理,你将创立一个简略的WordPress必用插件,在网站页面上显现一个额外的ID列。

经过SSH登录到你的WordPress Droplet,创立一个mu-plugins目录。

mkdir /var/www/wordpress/wp-content/mu-plugins

在这个目录中创立一个PHP文件。

nano /var/www/wordpress/wp-content/mu-plugins/wpms_blogid.php

接下来,将以下内容仿制到你的wpms_blogid.php 文件。

/var/www/wordpress/wp-content/mu-plugins/wpms_blogid.php

    <?php
    add_filter( 'wpmu_blogs_columns', 'do_get_id' );
    add_action( 'manage_sites_custom_column', 'do_add_columns', 10, 2 );
    add_action( 'manage_blogs_custom_column', 'do_add_columns', 10, 2 );
    function do_add_columns( $column_name, $blog_id ) {
        if ( 'blog_id' === $column_name )
            echo $blog_id;
        return $column_name;
    }
    function do_get_id( $columns ) {
        $columns['blog_id'] = 'ID';
        return $columns;
    }

网站->一切网站部分现在应该显现一个额外的ID列。

如何在Ubuntu 20.04上用Nginx和LEMP建立WordPress多站点

记下每个网站的ID值,然后进入设置->域名页面。输入网站的ID和网站的外部域名。例如,因为companysite 的ID是3,在这个页面上,网站ID应该是3,而域名应该是companysite.org

如何在Ubuntu 20.04上用Nginx和LEMP建立WordPress多站点

假如你期望将网站的URL设置为www.companysite.org ,你能够增加一个 “www “前缀。对其他域名重复这些进程。点击页面底部的 “保存“。

现在每个网站都将有自己的域名,而不是一个子域;即在浏览器中输入http://companysite.org ,将翻开我的在线公司网站。你现在能够经过拜访你的其他被映射的域名来检查这一点。你应该看到网站标题在页面的左上角发生了改变。

现在,每个网站都能够经过它自己的WordPress办理面板单独保护。

- `http://examplewp.com/wp-admin/`
- `http://shoppingsite.com/wp-admin/`
- `http://companysite.org/wp-admin/`

对中心/插件/主题的更新和插件/主题的装置应该从主域的网络办理页面进行。

- `http://examplewp.com/wp-admin/network/`

定论

在本教程中,你学到了怎么在运转于Ubuntu 20.04和Nginx(LEMP栈)的WordPress网站上设置多站点功用。多站点功用使你能够在你的droplet上的一个WordPress装置中保管多个WordPress网站。你还学会了怎么设置域名映射,它答应你的每个子站点经过一个自界说域名抵达。

关于装置WordPress多站点功用的另一个进程,请拜访咱们的教程,在Apache上设置WordPress多站点。