建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

Docker系列 WordPress系列 WP Mail SMTP插件(腾讯云服务器docker部署WordPress)

GG网络技术分享 2025-03-18 16:13 0


Docker系列 WordPress系列 WP Mail SMTP插件

前言

在《Docker系列 WordPress系列 安全插件》一章中,我们安装了一些网站安全有关的插件。在本章,我再向大家介绍一个比较实用的插件——WP Mail SMTP。这个插件可以用于解决网站自动发送邮件的应用场景,比如想监控博客的评论及回复。WP Mail SMTP插件通过改进和更改WordPress站点的电子邮件发送方式,重新配置了wp_mail()函数,以使用正确的SMTP主机凭据或是内置的SMTP邮件提供程序。

安装

安装方法也特别简单,和其它插件并无二致。安装完成后记得启用,可按需要设置自动更新。

初始化

首次使用时需要进行一些配置。按Let's Get Started。

WP Mail SMTP支持许多邮箱。我准备使用国内常用的QQ邮箱。所以选择其它SMTP。点击Save and Continue。

对于SMTP服务,你需要提前在QQ邮箱里的设置——帐户——POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务处开启服务,像这样:

在WP Mail SMTP的步骤中,QQ邮箱的设置类似于下图。发件人名字和邮箱按需修改。注意,这个密码是生成授权码,而不是你的QQ登陆密码。用户名是不需要加@qq.com的,下图是错误示范。这个生成授权码可以忘记,因为你可以生成多个授权码。设置完成后继续按Save and Continue。

下面有一个页面,提示你要选择哪些服务。默认全部选中,我也没有修改:

下一个页面是一个推广功能,我们可以使用Skip this Step。

下一个页面是Pro版本的授权。如果你有就输入license,没有就直接Skip this Step。

后面有个验证页面,会发送测试邮件到你的邮箱。没成功也没关系。只要在WP Mail SMTP的设置页面将参数调为下图的样式即可成功:

其它设置

我们还要进行一些其它设置,不过它们不是在WP Mail SMTP里。

在左侧栏的设置——讨论中,我们可以如下图般设置。当然,你可以按自己的喜好。这里值得一说的是这个Pingback。一般,如果有某个页面引用了你的链接,它会发一个邮件给你。由于我写文章时经常会引用自己的博文,所以这个功能比较烦人,我就关掉了。

小结

安装完WP Mail SMTP后,如果有人在你的博文里发评论,你会第一时间收到邮件;如果你回复他的评论,读者也会在他的邮箱里收到你的通知。

腾讯云服务器docker部署WordPress

很多人其实是想有个自己的网站的,网站程序有流行的免费WordPress,差的只是一台服务器。

偶然看到腾讯云服务器的优惠活动,首次购买3年只需要280元,1核CPU,1G内存,对于个人建站之类的完全足够了,超值,立马买了,强烈推荐

有了服务器,也有免费好用的WordPress,但是对于不懂编程没有经验的人来说,要顺利安装部署WordPress任然是个很大的挑战。这里跟大家介绍一种最简单的方式在服务器上安装WordPress——docker。

docker简介

关于docker大家可自行搜索。简单而言就是通过它可以最大程度的复用功能,而不是程序。

比如说MySQL数据库,普通的使用方式就是,你需要在一台电脑上,安装MySQL这个程序,还要安装它需要的依赖程序,安装后你需要启动,配置开机启动等,虽然说MySQL本身这个程序是可复用的,但真正让它跑起来还是需要做很多工作的。

然而通过docker运行MySQL就简单很多了。

我们可以把普通运行MySQL的整个完整过程包装好,打成一个镜像,这个镜像里包括了所有运行MySQL的一切东西,你只需要拿到这个镜像,通过docker运行一个容器就好了,非常方便简单快捷。

详细的安装WordPress步骤

安装docker

运行MySQL容器

运行Nginx容器

运行WordPress容器

安装docker

为顺利安装,请用root账号登录服务器

用阿里云的镜像,这样安装会快一些

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

yum install -y docker-ce

启动并加入开机自动启动

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装docker

yum install -y docker-ce

启动并加入开机自动启动

systemctl start docker

systemctl enable docker

验证是否安装成功

docker version

能看到一些相关版本信息就说明成功了。

运行MySQL容器(mysql 8)

在本机的/etc/mysql新建my.cnf文件,加入MySQL配置

[mysqld]datadir         = /var/lib/mysql/datasocket          = /var/lib/mysql/mysql.sock#8.0默认的认证方式不再是这个了,修改这个客户端才能正常连接default_authentication_plugin= mysql_native_passwordsecure-file-priv= NULLsort_buffer_size = 2Mjoin_buffer_size = 3Mmax_connections=300tmp_table_size = 5Minnodb_buffer_pool_size = 64M# 服务端使用的字符集默认为UTF8character-set-server=utf8mb4[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[client]# 设置客户端默认字符集default-character-set=utf8

执行以下命令

mkdir /var/lib/mysqlchown -R polkitd:input /var/lib/mysqldocker run --name mysql -p 3306:3306 --restart=always -e MYSQL_ROOT_PASSWORD=root -v /var/lib/mysql/:/var/lib/mysql/ -v /var/lib/mysql-files:/var/lib/mysql-files/ -v /etc/mysql/my.cnf:/etc/mysql/my.cnf -d mysql

这样就启动了一个用户和密码都为root的MySQL容器了。

默认下云服务都有安装MySQL客户端,没有就自己安装一个。

我们用MySQL客户端可以连接MySQL服务。

mysql -uroot -proot

运行Nginx容器

实际上,这步不是必须。但对于一台独立的云服务器,后续可能会部署多个网站或服务,而对于个人大多是使用同一个域名,这样通过Nginx的反向代理就很方便,因此强烈建议安装Nginx。

在/etc/nginx新建nginx.conf文件,内容如下:

ser  nginx;

worker_processes 1;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

http {

include /etc/nginx/mime.types;

default_type application/octet-stream;

log_format main \'$remote_addr - $remote_user [$time_local] \"$request\" \' \'$status $body_bytes_sent \"$http_referer\" \'

\'\"$http_user_agent\" \"$http_x_forwarded_for\"\';

access_log /var/log/nginx/access.log main;

sendfile on;

#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

server {

listen 80;

server_name xxx;#这里改成你的域名 #proxy to WordPress docker

location / {

proxy_pass http://127.0.0.1:1080/; #这里反向代理到WordPress端口 #必须加这句,否则首页会重定向到127.0.0.1

proxy_set_header Host $host;

}

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

}

##https配置,如不需要https,去掉下面这个server部分

server {

listen 443 ssl; # 1.1版本后这样写 server_name xxx; #填写绑定证书的域名 ssl_certificate /etc/nginx/key/bumishi.cn.pem; #证书所在的文件 ssl_certificate_key /etc/nginx/key/bumishi.cn.key; #证书key所在的文件

ssl_session_timeout 5m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置

ssl_prefer_server_ciphers on;

location / {

#这里反向代理到WordPress端口

proxy_pass http://127.0.0.1:1080/;

}

}

}

以host网络模式运行Nginx容器:

docker run --name nginx --network=host --restart=always -v /var/log/nginx/:/var/log/nginx/ -v /etc/nginx/key/:/etc/nginx/key -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf -d nginx

如果没有HTTPS证书,不需要HTTPS,nginx.conf配置文件中去除相应HTTPS的配置:

docker run --name nginx --network=host --restart=always -v /var/log/nginx/:/var/log/nginx/ -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf -d nginx

运行WordPress容器

docker run -d --name wordpress --restart=always -e WORDPRESS_DB_HOST=172.17.0.10:3306 -e WORDPRESS_DB_PASSWORD=root -e WORDPRESS_DB_USER=root -e WORDPRESS_DB_NAME=wordpress -e WORDPRESS_CONFIG_EXTRA=\"define(\'WP_HOME\',\'http://bumishi.cn\'); define(\'WP_SITEURL\',\'http://bumishi.cn\');\" -p 1080:80 wordpress

将以上命令中的几处修改成适合自己的信息:

WORDPRESS_DB_HOST=172.17.0.10:3306将IP地址换成云服务器的内网地址

WORDPRESS_CONFIG_EXTRA=\"define(\'WP_HOME\',\'http://bumishi.cn\'); define(\'WP_SITEURL\',\'http://bumishi.cn\');\"将域名替换成你自己的域名。

如果一切正常,那么网站就可以访问了。

标签:

提交需求或反馈

Demand feedback