Docker 部署安装 Typecho 步骤流程

15/03/201920:40:00
评论
152

安装docker

docker官网很详细,安装教程见 https://docs.docker.com/install/,选择具体的平台一步一步进行安装即可

不过由于大家都懂的原因,国内的云服务器如果不采用镜像的话,从docker官方仓库拉取仓库那是相当地。。。慢,更改一下docker镜像仓库。把docker国内官方镜像 https://registry.docker-cn.com 加入配置即可,这里以Ubuntu为例,假设按照官方教程安装后,只需要修改/etc/docker/daemon.json文件并添加上registry-mirrors键值,如下:

{
  "registry-mirrors": ["https://registry.docker-cn.com"]
}

安装docker-compose

因为typecho需要nginx(或者apache,caddy等webserver),php和mysql才能运行,因此我们需要至少3个镜像,为了方便管理,我们这里采用docker-compose来进行管理,由于docker-compose在Ubuntu下默认并未安装,因此需要安装docker-compose,官方安装教程见https://docs.docker.com/compose/install/

构建php镜像

由于官方的PHP镜像中没有安装pdo_mysql扩展,因此我们需要自行构建一个带有pdo_mysql的PHP镜像,使用Dockerfile如下进行构建:

FROM php:7.2.3-fpm
MAINTANER scofield<mail@pjf.name>

RUN apt-get update
RUN docker-php-ext-install pdo_mysql

执行命令docker build -t scofieldpeng/php:7.2.3-fpm进行构建,构建完毕后执行docker images|grep scofieldpeng/php:7.2.3-fpm如果不为空即为构建成功

启动和运行typecho

一切就绪后,我们准备下面文件:

# app文件夹下
- docker-compose.yml
- mysql(mysql文件夹,用来存放mysql数据,方便后期导出)
- mysql.env(mysql镜像的环境)
- typecho.conf(nginx配置文件)
- typecho(typecho的安装文件,github下下载即可,注意最新的正式版有安装问题,直接从master分支下拉取)

其中mysql.env文件内容为:

# MySQL的root用户默认密码,这里自行更改
MYSQL_ROOT_PASSWORD=123456
# MySQL镜像创建时自动创建的数据库名称
MYSQL_DATABASE=typecho
# MySQL镜像创建时自动创建的用户名
MYSQL_USER=typecho
# MySQL镜像创建时自动创建的用户密码
MYSQL_PASSWORD=123456

typecho.conf的内容为:

server {
    listen 0.0.0.0:80;
    server_name xxx(这里写自己博客的域名,例如pjf.name);
    root /app;
    index index.php;

    access_log  /var/log/nginx/typecho_access.log  main;
    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-fpm:9000;
    }
}

然后是docker-compose.yml文件的内容:

version: '2'
services:
  nginx:
    image: nginx:1.13.9-alpine
    ports:
      - "80:80"
    restart: always
    volumes:
      - ./typecho:/app
      - ./typecho.conf:/etc/nginx/conf.d/default.conf
      - logs:/var/log/nginx
    links:
      - php-fpm
    depends_on:
      - php-fpm
  php-fpm:
    image: scofieldpeng/php:7.2.3-fpm
    restart: always
    volumes:
      - ./typecho:/app
    links:
      - db
    depends_on:
      - db
  db:
    image: mysql:5.7.21
    restart: always
    ports:
      - 127.0.0.1:13306:3306
    volumes:
      - ./mysql:/var/lib/mysql
      - logs:/var/logs/mysql
    env_file:
      - mysql.env
volumes:
  logs:

然后执行docker-compose up -d,然后浏览器输入域名或者服务器IP即可进行访问

Docker迁移

如果要迁移,直接将整个文件夹迁移到新的服务器,然后执行docker-compose up -d即可快速进行迁移

本文转载自:https://pjf.name/blogs/install-typecho-by-docker.html

Typecho 响应式博客主题 Echo 未分类

Typecho 响应式博客主题 Echo

Echo主题简介一套基于layui框架的Typecho主题Echo,主题名取自博客域名(www.echo.so)。主题极简美观,并进行了响应式布局,使博客在手机和平板电脑上也有更好的浏览阅读体验。主题...
Typecho 漂亮的单栏主题 Aria 未分类

Typecho 漂亮的单栏主题 Aria

主题简介书写属于自己的篇章,一款简洁漂亮的单栏Typecho博客主题Aria,具体样式大家可以看底部下载部分的作者演示站,总的来说算是一个功能比较完整的主题了,最主要是作者更新的相对来说比较勤。主题预...
Typecho 简约大图封面主题 Cola 未分类

Typecho 简约大图封面主题 Cola

主题简介这是由网友@可乐投稿的作品,主题采用了大图封面的单栏设计,整体看上去比较干净,不过该主题可以优化的细节之处还有很多,比如:1.评论样式有点粗糙 2.配色有点不够统一,特别是按钮触发的部分 3....
Typecho程序伪静态规则大全 开发日志

Typecho程序伪静态规则大全

Typecho程序的伪静态规则不同于wp直接默认可用,需要我们手工加载到空间中才可以生效。这里TypechoTips整理了一些不同的主机环境中的伪静态规则,希望对大家有所帮助!1、Linux Apac...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: