前言

轻量高效

仅仅 7 张数据表,加上不足 400KB 的代码,就实现了完整的插件与模板机制。超低的 CPU 和内存使用率,足以发挥主机的最高性能

先进稳定

原生支持 Markdown 排版语法,易读更易写。支持 BAE/GAE/SAE 等各类云主机,即使面对突如其来的高访问量,也能轻松应对。

简洁友好

精心打磨过的操作界面,依然是你熟悉的面孔,更多了一份成熟与贴心。每一个像素的剪裁,都只为离完美更进一步。

  1. Typecho需要的组件:
  2. PHP5.1 以上
  3. 支持Mysql, PostgreSQL, SQLite 中的任意一种并在PHP中安装了相关扩展
  4. CURL或Socket支持
  5. mbstring或iconv扩展支持

安装PHP

更新源

首先安装一个管理源的工具包

1
apt-get install software-properties-common

添加Ondřej Surý的PHP源

1
add-apt-repository ppa:ondrej/php

更新源

1
apt-get update

安装PHP7.4

安装PHP7.4和相关依赖

1
apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring

启动PHP

1
service php7.4-fpm start

配置PHP7.4

1
vim /etc/php/7.4/fpm/pool.d/www.conf

36行找到 listen 项,把``/run/php/php7.4-fpm.sock改为127.0.0.1:9000`,并保存文件

01-修改端口-20230312-549

重启PHP

1
service php7.4-fpm reload

检测PHP是否成功启动

1
lsof -i:9000

0-检测php是否成功启动-20230312-812

安装MySQL

我这里的mysql使用docker-compose安装,你需要安装docker和docker-compose

如果你还没安装可以参考我的这篇文章:https://blog.hikki.site/2802e5c6.html

准备工作

新建几个文件夹来存储MYSQL数据库的相关数据。

  • mydir:自定义的文件夹,用于宿主机和容器数据交换(可无视)
  • db:数据库的存放数据地方,比如新建后的数据库、数据库表存放的地方
  • conf:存储mysql数据库的配置文件
  • init:用户初始化数据库,将你一些旧的数据库的sql文件放到文件夹下,mysql容器会自动帮你导入到数据库中。

我将mysql数据库容器放置在/home/docker/mysql/下,新建文件夹存储数据。

1
2
sudo cd /home/docker/mysql
sudo mkdir -p {mydir,mydir,conf,init}

设置配置

conf文件夹下新建一个my.cnf文件,用于设置数据库的编码格式。

1
sudo vim ./conf/my.cnf

将以下内容写入到my.cnf

1
2
3
4
5
6
7
8
9
10
11
[mysqld]
user=mysql
default-storage-engine=INNODB
character-set-server=utf8
character-set-client-handshake=FALSE
collation-server=utf8_unicode_ci
init_connect='SET NAMES utf8'
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

编写docker-compose.yml

前面的准备工作基本差不多了,现在来编写我们需要的容器,根据自己的需求来编写。我这里使用了3206的端口,不使用3306端口,是为了安全性,错开常见的端口,加强服务器安全性。

/home/docker/mysql/目录下,新建一个docker-compose.yml文件

1
sudo vim docker-compose.yml

将以下内容写入到docker-compose.yml文件中

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
version: '3'
services:
mysql5.6:
restart: always
image: mysql:5.6
container_name: mysql-5.6
volumes:
- ./mydir:/mydir
- ./mydir:/var/lib/mysql
- ./conf/my.cnf:/etc/my.cnf
- ./init:/docker-entrypoint-initdb.d # 数据库还原目录 可将需要还原的sql文件放在这里
environment:
MYSQL_ROOT_PASSWORD: 123456
TZ: Asia/Shanghai
ports:
# 使用宿主机的3206端口映射到容器的3306端口
# 宿主机:容器
- 3206:3306
  • version:docker-compose的版本号(可自定义,首次启动版本号不能大于x.1)
  • mysql5.6:容器服务名称(可自定义)
  • restart:容器启动方式,这里选用启动总是重启
  • image:选择需要的镜像版本,我这里选择mysql的5.6版本
  • container_name:容器名称
  • volumes:需要挂载的目录,我这里挂载了四个目录,具体每个目录的作用看文章开头
  • MYSQL_ROOT_PASSWORD:数据库的超级管理员密码
  • TZ:数据库时区
  • ports:端口映射,也就是在外网访问3206的端口,服务器自动将3206的端口映射到docker容器的3306端口。

开放服务器端口

如果你是使用服务器的话,你还需要去服务器商那边开启安全组,开放对应端口3206。

我这里使用的是Ubuntu系统,Ubuntu默认使用的是UFW防火墙,因为我刚刚给mysql容器设置的3206的端口,这里需要开放3206端口,如果你在docker-compose.yml文件修改了映射端口,那在这里也需要修改开放端口。

1
sudo ufw allow 3206 comment "mysql数据库"

你如果是CentOS系统,可以执行以下命令开放3206端口

1
sudo firewall-cmd --zone=public --add-port=3206/tcp --permanent

启动mysql容器

/home/docker/mysql/目录下,执行以下命令,启动mysql容器。

1
2
3
sudo docker-compose up -d   # 执行该命令后,出现下如下情况说明启动成功了
root@/home/docker/mysql/# docker-compose up -d
Creating mysql-5.6 ... done

如果在执行这步出错了,排除错误后,你应该先要进入该文件夹,关闭该容器,再重新启动。

关闭该容器指令:sudo docker-compose down

进入容器并创建数据库

02-进入mysql容器-20230312-929

进入容器

1
docker exec -it mysql-5.6 /bin/bash

进入mysql

1
mysql -u root -p

创建数据库

1
CREATE DATABASE typecho_blog;

安装Typecho

创建存放typecho源码目录

1
mkdir -p /home/typecho && cd /home/typecho

下载最新版本typecho

也可以到官网下载

1
wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip

解压文件

1
unzip typecho.zip

我这里还没安装unzip工具,需要安装一下

03-安装unzip并解压-20230312-790

赋予该文件夹权限

1
chmod -R 777 /home/typecho

设置Nginx代理

以下是Nginx与PHP连接的一个示例配置,完成配置之后,重启nginx并在浏览器访问你自己的域名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
server {
listen 80;
server_name test.cn.com;
root /home/typecho;
index index.php;

location ~ .*\.php(\/.*)*$ {
root /home/typecho/;
fastcgi_split_path_info ^(.+?.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}

设置Typecho连接数据库

浏览器打开服务器IP地址:192.168.2.6

04-Typecho安装程序20230312-899

设置数据库连接

05-Typecho安装程序-20230312-545

初始化管理员

06-初始化管理员-20230312-540

安装成功

07-安装成功-20230312-769

更换Joe 主题

下载主题

08-下载主题-20230312-643

一般主题包都是压缩包,将压缩包下载解压到Typecho/usr/themes/文件夹下,然后到Typecho Web网站后台:控制台-->外观->启动主题

进入/usr/themes

1
cd /home/typecho/usr/themes

下载主题:

1
https://github.com/HaoOuBa/Joe.git

我这里下载主题默认是文件夹,不需要解压了。

更换主题

控制台-->外观->启动

09-更换主题-20230312-908

文章参考:ubuntu手动搭建typecho博客

本文章来源于我的博客:https://blog.hikki.site