由于本网站此前使用的是 CentOS7 ,折腾起来诸多不便,于是将其更换为 Ubuntu 18.04,实现以下功能:Apache2 多站点配置文件、开启 HTTP/2 协议 ……

目录:
一、Apache2 安装
二、PHP 7.4 安装
三、MariaDB 安装
四、WordPress 安装
五、开启 HTTP/2


一、Apache2 安装

apt-get install apache2

若出现 AH00111: Config variable ${APACHE_RUN_DIR} is not defined 等一系列相关错误,只需:

source /etc/apache2/envvars

二、PHP 7.4 安装

由于默认的源目前只有 PHP 7.2,而 WordPress 的推荐 PHP 版本是 7.4,因此需要添加第三方源:

apt-get install software-properties-common
add-apt-repository ppa:ondrej/php
apt-get update
apt-get install php7.4

同时安装 WordPress 所需 PHP 模块:

apt-get install php-imagick php7.4-curl php7.4-gd php7.4-mbstring php7.4-xml php7.4-zip

三、MariaDB 安装

apt-get install mariadb-server

参考:如何搭建一个网站 —— 以本站为例 完成数据库配置

或者点此查看详细步骤

初始化 MariaDB:

mysql_secure_installation

第一个问题直接回车,之后设置密码,其他选项可直接回车(保持默认)

进入数据库程序:

mysql -u root -p密码 (p与密码之间无空格)

为 WordPress 创建数据库:

--创建数据库
CREATE DATABASE wordpress;
--创建数据库用户名和密码:
CREATE USER wordpressuser@localhost IDENTIFIED BY 'wordpress_password';
--设置访问权限:
GRANT ALL PRIVILEGES ON wordpress.* TO wordpressuser@localhost IDENTIFIED BY 'wordpress_password';
--刷新数据库设置:
FLUSH PRIVILEGES;
--退出:
exit

Ps:wordpressuser 和 wordpress_password 可以自定义,但注意后续设置访问权限时要同步修改,如:

CREATE USER kyle@localhost IDENTIFIED BY '123456';
GRANT ALL PRIVILEGES ON wordpress.* TO kyle@localhost IDENTIFIED BY '123456';

重启相关服务:

systemctl restart apache2
systemctl restart mariadb

四、WordPress 安装

本文以在 /home/wordpress 安装为例:

cd /home      #进入 home 目录
wget https://wordpress.org/latest.tar.gz
tar -zvfx latest.tar.gz
chown -R www-data /home/wordpress    #此条命令与 CentOS 不同

在 /etc/apache2/sites-available 中新建文件 wordpress.conf 并输入以下内容:

<VirtualHost *:80>
  ServerName kylechoy.top
  ServerAlias kylechoy.top
  ServerAdmin 此处填写管理员邮箱
  DocumentRoot /home/wordpress
  <Directory /home/wordpress>
    Options Indexes FollowSymLinks
    AllowOverride all
    Order deny,allow
    Allow from all
    Require all granted
  </Directory>
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

保存后执行:

a2dissite 000-default    #关闭默认站点
a2ensite wordpress    #开启文件名为 wordpress.conf 的站点

并根据提示重启 Apache2。

Ps:a2ensite、a2dissite 分别对应开启、关闭站点配置文件。

之后便可访问域名配置 WordPress。

五、开启 HTTP/2

HTTP/2 是下一代 HTTP 协议,能大幅度提升网页性能,仅支持在 HTTPS 站点使用。

首先开启 Apache2 的 HTTP2 模块:

a2enmod http2

之后需要将 MPM 从 prelock 改为 event(可通过 apache2 -V 查看当前模式):

systemctl stop apache2
apt-get install php7.4-fpm
a2enmod proxy_fcgi setenvif
a2enconf php7.4-fpm
a2dismod php7.4
a2dismod mpm_prefork
a2enmod mpm_event

之后在 apache2 站点配置文件(已开启 SSL)中添加:

Protocols h2 http/1.1

重启 Apache2 服务即可发现已使用 HTTP/2 协议打开网页(只支持 HTTPS 协议)。

参考资料:修复 Apache2 mpm prefork 与 HTTP/2 不兼容问题