如何在 Apache 上部署多个 WordPress 网站(一个服务器如何部署多个网站)

WordPress 是世界上最流行的内容管理系统(CMS),通过本文我们来介绍一下,如何在 Ubuntu 18.04 系统的主机服务器上配置运行多个 WordPress 网站。

如何在 Apache 上部署多个 WordPress 网站(一个服务器如何部署多个网站)
如何在 Apache 上部署多个 WordPress 网站(一个服务器如何部署多个网站)

安装 LAMP

更新服务器系统软件:

apt-get update && apt-get upgrade

WordPress 可以部署在 LAMP 堆栈上。LAMP(Linux、Apache、MySQL、PHP)堆栈是一种通用、免费且开源的 Web 堆栈,用于在 Linux 环境中托管 Web 内容。

可以使用 Tasksel 工具安装 LAMP 堆栈:

sudo tasksel install lamp-server

如果还没有安装 Tasksel ,可以执行下面命令安装:

$ sudo apt-get install tasksel

使用 Tasksel 工具的一般语法为:

$ sudo tasksel install task_name
$ sudo tasksel remove task_name
$ sudo tasksel command_line_options

创建网站数据库和用户

对于每个 WordPress 网站来说,都需要一个独立的 MySQL 数据库。下面显示了配置两个 WordPress 网站的示例。将example1example2 替换为实际的网站名称。

领域数据库用户名密码
example1.comdatabase1_wordpressexample1_wpuser密码
example2.comdatabase2_wordpressexample2_wpuser密码

以 root 用户身份登录 MySQL 命令行:

sudo mysql -u root

创建每个 WordPress 网站的数据库:

CREATE DATABASE database1_wordpress; CREATE DATABASE database2_wordpress;

创建数据库用户,用实际的用户名和密码替换用户名和密码:

CREATE USER 'example1_wpuser' IDENTIFIED BY 'password1'; CREATE USER 'example2_wpuser' IDENTIFIED BY 'password2';

授予用户对其各自数据库的权限:

GRANT ALL PRIVILEGES ON database1_wordpress.* TO 'example1_wpuser'; GRANT ALL PRIVILEGES ON database1_wordpress.* TO 'example2_wpuser';

退出 MySQL:

quit

安装多个 WordPress 网站

分别为每个 WordPress 网站创建目录:/var/www/html/example1.com//var/www/html/example2.com/

sudo mkdir -p /var/www/html/{example1.com,example2.com}/public_html

创建一个 src目录来保存 WordPress 压缩包和文件:

sudo mkdir /var/www/html/src/

下载最新版本的 WordPress ,并将其解压到 src 文件夹中:

cd /var/www/html/src/ sudo wget http://wordpress.org/latest.tar.gz

将 WordPress 文件复制到网站的 public_html 文件夹中:

sudo cp -R /var/www/html/src/wordpress/* /var/www/html/example1.com/public_html/ sudo cp -R /var/www/html/src/wordpress/* /var/www/html/example2.com/public_html/

授予 Apache 对 WordPress 网站目录的所有权:

sudo chown -R www-data:www-data /var/www/html/{example1.com,example2.com}/

配置 Apache 虚拟主机

在 /etc/apache2/sites-available/ 目录下,创建第一个虚拟主机配置文件 example1.com,并将以下代码复制到文件中。

/etc/apache2/sites-available/example1.conf

<VirtualHost *:80>
    # The primary domain for this host
    ServerName example1.com
    # Optionally have other subdomains also managed by this Virtual Host
    ServerAlias example1.com *.example1.com
    DocumentRoot /var/www/html/example1.com/public_html
    <Directory /var/www/html/example1.com/public_html>
        Require all granted
        # Allow local .htaccess to override Apache configuration settings
        AllowOverride all
    </Directory>
    # Enable RewriteEngine
    RewriteEngine on
    RewriteOptions inherit

    # Block .svn, .git
    RewriteRule .(svn|git)(/)?$ - [F]

    # Catchall redirect to www.example1.com
    RewriteCond %{HTTP_HOST}   !^www.example1.com [NC]
    RewriteCond %{HTTP_HOST}   !^$
    RewriteRule ^/(.*)         https://www.example1.com/$1 [L,R]

    # Recommended: XSS protection
    <IfModule mod_headers.c>
        Header set X-XSS-Protection "1; mode=block"
        Header always append X-Frame-Options SAMEORIGIN
    </IfModule>
</VirtualHost>

通过以下命令启用站点配置。这将在 /etc/apache2/sites-enabled/ 目录创建一个指向 example1.com 配置文件的符号链接:

sudo a2ensite example1.conf

为第二个 WordPress 网站创建另一个虚拟主机配置文件 example2.com,并将以下代码复制到文件中。

/etc/apache2/sites-available/example2.conf

<VirtualHost *:80>
  # The primary domain for this host
  ServerName example2.com
  # Optionally have other subdomains also managed by this Virtual Host
  ServerAlias example2.com *.example2.com
  DocumentRoot /var/www/html/example2.com/public_html
  <Directory /var/www/html/example2.com/public_html>
      Require all granted
      # Allow local .htaccess to override Apache configuration settings
      AllowOverride all
  </Directory>
  # Enable RewriteEngine
  RewriteEngine on
  RewriteOptions inherit

  # Block .svn, .git
  RewriteRule .(svn|git)(/)?$ - [F]

  # Catchall redirect to www.example2.com
  RewriteCond %{HTTP_HOST}   !^www.example2.com [NC]
  RewriteCond %{HTTP_HOST}   !^$
  RewriteRule ^/(.*)         https://www.example2.com/$1 [L,R]

  # Recommended: XSS protection
  <IfModule mod_headers.c>
      Header set X-XSS-Protection "1; mode=block"
      Header always append X-Frame-Options SAMEORIGIN
  </IfModule>
</VirtualHost>

同样,通过如下命令启用站点配置文件:

 sudo a2ensite example2.conf 

如果 rewrite_module 模块未启用,需要在重新加载 Apache 之前启用它以使配置生效。要检查启用了哪些 Apache 模块,请运行以下命令:

sudo apache2ctl -M 

验证 rewrite_module 是否在列表中。如果没有看到该模块,请使用以下命令启用它:

 sudo a2enmod rewrite

重新加载 Apache 使配置生效:

 sudo systemctl reload apache2

安装 WordPress

通过浏览器访问域名或IPV4地址开始 WordPress 安装:

http://192.168.1.1

http://192.168.1.1

会打开 WordPress 的安装设置页面:

如何在 Apache 上部署多个 Wordpress 网站(一个服务器如何部署多个网站)
安装 WordPress

按照页面指示进行操作,直至完成安装。

原创文章,作者:牛奇网,如若转载,请注明出处:https://www.niuqi360.com/linux/configure-apache-to-run-multiple-wordpress-sites/

发表评论

登录后才能评论