前言
之前博客搭建在阿里云的机器上,现在快过期了,加上原机器带宽太小,就不打算续费了,现在就需要将 Typecho 博客迁移到新机器上。以前使用的是宝塔面板搭建的,现在不想把机器环境搞得乱七八糟,因此选择使用 Docker 来搭建 Typecho。
安装Docker
使用一键脚本安装Docker
1
| curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun && systemctl start docker && systemctl enable docker
|
如果提示 curl 命令不存在,就需要先安装 curl
1 2 3 4 5
| yum -y install curl
apt -y install curl
|
配置镜像加速
如果你机器是国内的机器,那么需要配置镜像加速
阿里云镜像获取地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors

修改 /etc/docker/daemon.json
,文件不存在就创建一个
1 2 3 4 5
| { "registry-mirrors": [ "你的加速地址" ] }
|
安装数据库
这里选择的是 Mariadb,可自行选择数据库镜像,这里配置参数就不做解释了,懂的都懂
1 2 3
| docker run -d -v /home/mysql:/var/lib/mysql \ -p 3306:3306 -e MYSQL_ROOT_PASSWORD=密码 \ --privileged=true --restart=always --name mariadb mariadb
|
安装 PHP
安装官方的 php:7.2-fpm 镜像后,还需要进入容器安装 mysql pdo
才能使用 Mysql
数据库,比较麻烦,这里我自己在 php:7.2-fpm 的基础上构建了个带 mysql pdo
的镜像,可以选择性使用。
1 2
| docker run -d -v /home/nginx/html:/var/www/html \ -p 8080:8080 --link mariadb:mariadb --name php dqjdda/php
|
安装 Nginx
1 2 3 4 5 6 7 8 9 10 11
| docker run -d \ --link php:php \ --name nginx --restart always \ -p 80:80 -p 443:443 \ -e "TZ=Asia/Shanghai" \ -v /home/nginx/nginx.conf:/etc/nginx/nginx.conf \ -v /home/nginx/conf.d:/etc/nginx/conf.d \ -v /home/nginx/logs:/var/log/nginx \ -v /home/nginx/cert:/etc/nginx/cert \ -v /home/nginx/html:/var/www/html \ nginx
|
配置 Nginx
/home/nginx/conf.d
用于放配置文件
/home/nginx/logs
存放日志
/home/nginx/cert
存放证书
/home/nginx/html
存放网页
在 /home/nginx/conf.d
目录创建文件 blog.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| server {
listen 443 ssl http2; server_name izlzl.com; gzip on;
ssl_session_cache shared:SSL:10m; ssl_session_timeout 1d;
ssl_certificate /etc/nginx/cert/ydyno.com/ydyno.com_chain.crt; ssl_certificate_key /etc/nginx/cert/ydyno.com/ydyno.com_key.key;
root /var/www/html/ydyno; index index.php;
if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; } location ~ .*\.php(\/.*)*$ { include fastcgi_params; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_index index.php; fastcgi_pass php:9000; }
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ { expires 5d; }
location ~ /\. { log_not_found off; deny all; } }
server { listen 80; server_name izlzl.com ydyno.com; return 301 https://www.ydyno.com$request_uri; }
|
迁移博客
直接将老服务器的博客目录移动到 /var/www/html/ydyno
,然后将数据库导出,然后导入到新库即可