debian_hexo_wordpress

最近拿到了 Github 的学生优惠包 , 其中包含 DigitalOcean 100 美刀消费卷 , 一下就有了回到 VPS 的充足理由 . 虽然两年前用过阿里云服务器 , 但其实和这次的迁移工作差别蛮大 . 由于过程遇到的问题比较多 , 便决定整理这份笔记 , 以充实个人知识库 .

以下按照 : < 开通 DO 服务器 – 系统安全性设置 – Web 环境搭建 – WordPress 安装 – 数据迁移 > 的顺序叙述


1. 开通 DO 服务器

1.1 选哪个节点

这个要看你的个人使用情况 . 如果主要用于自己写点东西 , 搭个科学上网工具之类的 , 就选与你 ping 值最低的节点即可 . DO 服务器测速网址是 : http://speedtest-sfo1.digitalocean.com/

1.2 选哪个操作系统

新手建议趁此机会了解一下 Linux 各个发行版之间的异同 . 我选择了 Debian


2. 安全性设置

安全性能非常重要 , 并且如果 VPS 被黑成肉鸡 , DO 发现后会直接作封停处理 .

2.1 改 SSH 端口

Debian 下的 SSH 配置文件位于 : etc/ssh/sshdconfig 和 sshdconfig , 用 vi 编辑器修改这两个文件中的 port 字段为不常见的端口号 , 保存后重启 SSH 服务 , 重启命令 : /etc/init.d/ssh restart ( 不同版本系统的重启命令不同 , 这里是 Debian8.1 版本 )

2.2 禁止 Root 账户远程登入

用 root 登入后 , 先新建一个账户 , 否则可能会无法远程连接服务器 . 新建账户命令 :  useradd username , 为用户设置密码 : passwd username . 然后再次用 vi 编辑 etc/ssh/sshd_config 文件 , 修改 PermitRootLogin 的值为 no . 重启 SSH 服务后用新建账户登入 , 登入后如需 root 权限 , 使用 su root 命令提权即可 .

2.3 VI 简单操作

刚接触 vi 的用户可能会很困惑 , 对其操作方式感觉较难上手 . 就 vi 本身而言 , 关键在于要知道 vi 有命令模式和编辑模式之分 . 默认进入的是命令模式 , 这个模式下用户可以键入命令 , 来实现插入/替换等一系列操作 , 如果键入的是编辑类命令 , vi 就会进入编辑模式 , 用户可以在此模式下编辑文本 . 编辑好了之后 , 按 Esc 退回命令模式 . 以下是一些常用命令 :
a 在光标后插入字符 ;
r 替换字符 ;
dd 删除行 ;
o 插入行 ;
delete 删除光标后的字符 ;
:q 退出 ;
:q! 强制退出 ( 不保存 ) ;
:wq 保存并退出 ;
:set nu 显示行号 ;
/输入需要查找的字符 向下查找匹配字符串 ;
?输入需要查找的字符 向上查找匹配字符串 ;
进入查找状态后 , 按 n 向同一方向继续查找 , 按 N 则向反方向查找 .


3. Web 环境搭建

我使用 LNMP 一键包进行快速部署 , 这个过程很简单 , 但仍然有一些问题 :

3.1 MySQL 无法登入

报错信息 : 访问被拒绝 , 1045 错误 . 我这里可能是由于在密码中使用符号而导致的 . MySQL 密码如果要用符号 , 必须在设置密码的前后添加引号 . 而我没有这么做 , MySQL 直接将带符号密码无视 , 给 root 设置了空密码 . 所以我们先用空密码登录 , 再执行以下语句为 root 设置密码 :
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpwd');
其中 newpwd 用你要设的密码替换

3.2 phpMyAdmin  允许空密码登录

phpMyAdmin 是一种可以通过网页可视化方式管理 MySQL 的工具 , 由于我遇到了上面的问题 , 只能先用空密码登录 root , 而 phpMyAdmin 默认不允许空密码登录 , 所以需要通过以下方式设置 :
编辑 phpmyadmin 目录下的 config.inc.php 文件 , 找到 $cfg['Servers'][$i]['AllowNoPassword'] = false; 语句 , false 改为 true . 设了密码后记得改回 false .


4. 安装 WordPress

4.1 后台提示输入 FTP 信息

我这边是因为 WordPress 所在目录是用 root 创建 , 导致 WordPress 因自身权限不够而在更新主题/插件时提示输入 FTP 信息 . 解决方法是给目录改权限 , 执行以下命令 , 其中目录可能要替换成你自己的 .
chown -R www /home/wwwroot
chgrp -R www /home/wwwroot

4.2 后台提示没有这个文件

在编辑主题文件时遇到此问题 . 原因是我的 PHP 默认禁用了目录扫描函数 : scandir . 解决方法 : 在 php.ini 文件中将此函数名从禁用函数项中移除 .


5. 数据迁移

5.1 内容迁移

将你在 Hexo 中的内容输出成 RSS , 再通过 WordPress 后台的 RSS 导入工具来完成内容转移 . 另外如果内容较少 , 可以直接一篇一篇的重新发表一遍 , 这样不会出现格式错误 , 不过要记得更改文章的发布时间 .

5.2 评论迁移

之前一样 , 我用多说搞定 . 需要注意的是这次 Thread Key 要改成文章的 postid , postid 可以从编辑文章页面获取 , 也可以通过查看文章网页源码得到 . 见下 :

postid_1文章编辑页面

postid_0文章网页源码

- - - - - -

6. 实用 Linux/Debian 命令

dpkg-reconfigure tzdata 用来改时区 , 会进入半图形化设置界面
vi /var/log/auth.log 查看系统授权日志
mkdir 创建目录 ( 文件夹 )
mv /home/music/1.mp3 /home/abc 剪切文件
mv /home/soft /home/abc 剪切文件夹
mv /home/photo/* /home/abc 剪切目录下的文件夹和文件
mv /home/wwwroot/index.html /home/wwwroot/404.html 文件重命名
mv /home/wwwroot/test /home/wwwroot/1 目录重命名
cp 复制 ( 加 r 参数可以递归 , 解决 omitting directory XX 问题 )
rm 删除
wget 下载
tar 打包和解包工具 ( 常用参数 : zxf )
free 查内存
ls 列出文件和目录 ( 常用参数 : -la )
若执行 ls 命令不显示颜色 , 请在 /etc/bash.bashrc 中加入一行 alias ls='ls --color=auto' , 重新连接 ssh
date 查看当前时间和日期