WordPress 安装使用

By | 2021年12月31日

1 安装

1.1 blog-compose.yml

version: '3.6'
services:
  mysql:
    image: mysql:5
    ports:
      - "3306:3306"
    volumes:
      - "mysql-data:/var/lib/mysql"
      - "mysql-conf:/etc/mysql"
 #    - "mysql-log:/var/log/mysql"
    environment:
      MYSQL_ROOT_PASSWORD: 123456
#    networks:
#      - blognet
    deploy:
      placement:
        constraints:
          - node.role == manager

  wordpress:
    image: wordpress
    ports:
      - "80:80"
    volumes:
      - "wordpress:/var/www/html"
    environment:
      WORDPRESS_DB_PASSWORD: 123456
    depends_on:
      - mysql
#    networks:
#      - blognet
    deploy:
      placement:
        constraints:
          - node.role == manager
volumes:
  wordpress:
  mysql-data:
  mysql-conf:
#  mysql-log:

# 经测试 swarm 方式部署 wordpress 和 mysql,不需要设置 networks,因为Docker在单台host上默认使用的就是 bridge network。
#networks:
#  blognet:
#    driver: overlay
#    attachable: true

下面开始部署服务:

$ docker stack deploy -c /home/ec2-user/blog-compose.yml blog

服务起来后,直接在浏览器中输入:http://192.168.1.220:80 就可以访问wordpress页面了。

1.2 备份

对于备份,我们只需要备份 volumns 下的 wordpress和 mysql数据目录就可以了。下面提供个 linux shell 备份脚本,仅仅是打包所有文件。

blog_backup.sh

#!/bin/bash 
curdate=$(date +%Y%m%d%H%M) 
backupDir=/home/ec2-user/blog-backup

# 注意:CentOS7安装7zip时,必须先安装 epel 源,否则无资源
#yum install epel-release
#yum install p7zip p7zip-plugins unzip
# 解压命令
#unzip xxx.zip

#将 attachments 目录下的内容打包到 attachments.zip,这里 -r 表示递归压缩子目录下所有文件,必须加上。(直接用 centos自带的 tar打包如果打包的文件名中有中文,打包后的名称是乱码) 
sudo 7za a ${backupDir}/blog_${curdate}.zip /var/lib/docker/volumes/blog_* 
sudo chown ec2-user:ec2-user ${backupDir}/blog_${curdate}.zip

1.3 还原

对于还原,我”瞎忙活”了一天,经测试其实备份的mysql和wordpress文件没任何问题,弄清楚几点几点就OK:

  1. 有时候执行swarm blog-compose.yml启动时,mysql服务若启动的慢,wordpress服务会先起来,导致连不上mysql,结果网站无法访问。查看日志docker service logs -f xxx可以看到这点。如果一开始就执行docker service ls,也可以看到是wordpress服务先起来的,mysql等一会儿才起来。有的朋友可能会问,我们不是在compose文件里设置了depends_on吗?没错,但我想说,这个设置仅针对docker容器层面的,管不到docker容器里的应用。解决办法是执行 docker container rm -f xxx,以便让wordpress自动再重启
  2. 有时候mysql、wordpress容器的启动都没问题,但是chrome就是打不开,需要清理下缓存,我就遇到过多次了。
  3.  有时候清理chrome缓存都不管用,老是重定向,把8080 端口吃掉了(即改用80了)。解决办法是:url后面加 “wp-admin/”就好了,如:http://192.168.1.230:8000/wp-admin/

2 插件与配置

2.1 主题

  • GeneratePress
  • StartWP

2.2 文章设置

  • 字体格式:默认
  • 一、二、三级标题字体分别是:24px、20px、16px

2.3 插件

Akismet Anti-Spam 过滤垃圾评论,中招过所以一定要用,可以配置免费使用
Limit Login Attempts Reloaded 登录次数限制
WordPress Captcha Plugin by Captcha Bank 验证码、黑白名单,实际测试图片出不来目前用了他的算术验证
Google Captcha (reCAPTCHA) by BestWebSoft 防垃圾邮件等,我用v2版本可以,支持注册内网IP,但一直报错”You have entered an incorrect reCAPTCHA value”所以没用
Yoast SEO SEO 优化
Table of Contents Plus 目录索引
Enlighter 常用主题 MooTools、Classic、Atomic
Advanced Ads 管理和优化广告
TinyMCE Advanced 对Wordpress自带编辑器TinyMCE的增强插件,但是其插件设置中添加了支持Markdown的选项
WP Statistics 分析和统计工具
WP Editor.md Markdown文档编辑器

3 使用域名

3.1 使用自己购买的域名

3.2 使用花生壳免费提供的动态域名

在centos7上安装好花生壳的linux版后,我发现不能使用之前已有的账号登录,也就不能使用之前固定的花生壳域名。花生壳会随机给你生成一个SN码,用这个SN码来登录花生壳后台,并设置内网穿透。这种方式重启花生壳服务,域名可能会发生变化,这不是我想要的,因此我们放弃使用这种免费的方式。

花生壳 3.0 for Linux 相关安装使用文档:http://service.oray.com/question/4287.html

linux版花生壳安装好后,出来下面信息,然后用SN码和默认密码从官网登录:

+--------------------------------------------------------+
| Oray PeanutHull Linux 3.0 |
+--------------------------------------------------------+
| SN: ORAYc0e4e8a01ce8 Default password: admin |
+--------------------------------------------------------+
| Usage: phddns(start|status|stop|restart|reset|version) |
+--------------------------------------------------------+
| Remote Management Address http://b.oray.com |
+--------------------------------------------------------+

4 更换新域名、替换URL的方法

4.1 第一步:修改MySql里的URL

格式:UPDATE '表名' SET '字段' = REPLACE( '字段', '待替换内容', '替换值' );
下面是更新脚本例子:

#由于我是映射到域名上的,使用了80端口,因此下面的更新可以不在乎端口,只要更新地址。
UPDATE wp_options SET option_value = REPLACE(option_value,'http://192.168.1.202','http://blog.blueappleblog.com');
# 文章中的图片、附件都是绝对路径,迁移后会不起作用,这里更新后就没问题了
UPDATE wp_posts SET post_content = REPLACE(post_content,'http://192.168.1.202','http://blog.blueappleblog.com');
UPDATE wp_posts SET guid = REPLACE(guid,'http://192.168.1.202','http://blog.blueappleblog.com');
UPDATE wp_posts SET pinged = REPLACE(pinged,'http://192.168.1.202','http://blog.blueappleblog.com');
UPDATE wp_comments SET comment_author_url = REPLACE(comment_author_url,'http://192.168.1.202','http://blog.blueappleblog.com');

说明:
表 wp_posts 里面的 post_content (文章内容)
表 wp_posts 里面的guid(WordPress默认链接结构)
表 wp_posts 里面的pinged (ping内容)
表 wp_comments 里面的comment_author_url (留言作者URL地址 )

4.2 第二步:修改 wp-config.php

wp-config.php中,添加下面内容:

define('RELOCATE',true);

登录后台,将自动更新 SITEURL,因此只要手动修改 HOME 地址即可。具体位置“设置->常规”。保存成功后一定要删除上面添加的内容。

5 在WPS上部署遇到的问题

5.1 安装插件,需要填写 FTP 信息

解决办法:编辑 wp-config.php,在 “define(‘WP_DEBUG’, false);” 的下面添加一行
define(‘FS_METHOD’, “direct”);

5.2 解决了FTP的问题,接着又跳出“无法创建目录”的错误

解决办法:直接去 wordpress 根目录添加所有权限 chmod -R 777 blog_wordpres

发表评论

您的电子邮箱地址不会被公开。