docker安装typecho

日期 2019-07-16 typecho,docker 作者 aoe 共1评论

Docker安装typecho

安装docker
docker官网很详细,安装教程见https://docs.docker.com/install/,选择具体的平台一步一步进行安装即可.
因为网络原因,修改docker镜像仓库。把docker国内官方镜像https://registry.docker-cn.com加入配置即可,按照官方教程安装后,只需要修改/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/

typecho运行一般是用lnmp环境,所以先拉取我们所需要的镜像的lnp+mysql镜像,其中lnp包含了web server和php环境,mysql单独容器运行

docker pull richarvey/nginx-php-fpm:latest
docker pull  mysql:5.7

启动和运行typecho
一切就绪后,我们准备下面文件:

建立/home/typecho文件夹,

cd /home/typecho;wget http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
tar xzf 1.1-17.10.30-release.tar.gz
move build typycho

然后编写nginx配置文件
/home/typecho/typecho.conf的内容为:

server {
    listen 0.0.0.0:80;
    server_name xxx   #这里写自己博客的域名,例如112114.xyz;
    root /var/www/html;
    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  unix:/var/run/php-fpm.sock;
    }
}

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

version: '3'
services:
  mysql:
    restart: always
    image: docker.io/mysql:5.7
    network_mode: bridge
    volumes:
    - /home/mysql/:/var/lib/mysql/
    environment:
    - MYSQL_ROOT_PASSWORD=root
    ports:
    - "127.0.0.1:3306:3306"
  
  docker-lnp:
    container_name: myblog
    image: richarvey/nginx-php-fpm:latest
    restart: always
    network_mode: bridge
    ports:
    - "80:80"
    volumes:
    - /home/typecho/typecho:/var/www/html
    - /home/typecho/typecho.conf:/etc/nginx/sites-enabled/typecho.conf
    depends_on:
    - mysql

执行docker-compose up -d,登陆到mysql容器,建立typecho库:

docker exec -it mysql bash
mysql -uroot -p
CREATE DATABASE `typecho` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 
GRANT ALL ON typecho.* TO [email protected]% IDENTIFIED BY 'typecho';

至此,部署完毕,浏览器输入域名或者服务器IP即可进行安装步骤.

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

仅有一条评论
  1. aoe

    不得不说docker用起来真香!


人生在世,错别字在所难免,无需纠正。