MENU

Typecho安装指南(一定要记得常备份啊😭)

September 27, 2023 • 极意阅读设置

(23-09-28 Update:更新php8)

因为误操作不小心把服务器弄崩了......其实只是手贱更新了下而已......爆哭T_T

先更新到能用版本,更新到了php8.2和最新版本的typecho,添加了自动更新ssl功能。

(20-03-19 Update:全篇优化)

  教你搭建属于自己的Typecho小博客~

  操作系统为Debian 10,LNMP搭建,使用Cerbot免费签证的SSL牌照~
  最近因为迁移站点,所以按以前写的备忘重新搭建了一遍,事实证明每次留下操作代码实在是一个极好的习惯,几分钟就弄好了,于是顺带分享一下~

  (由于目前还没有图床,虽然目前已经有了图床,但我仍然觉得在网上找资料的时候会学到很多,所以并不打算太罗嗦,以下代码亲测可以使用,如有问题请自行谷歌或者留言,本文重在提供一种可行方案,而非百科式教学,诸如VPS/域名等前置条件便不在本文范围内)

 
 

— 为什么选择Typecho —

  因为好看啊!
  开源极简漂亮,原生支持Markdown,还要啥自行车?

 
 

— LNMP环境构建 —

0.使用Cerbot签证免费的SSL证书(域名以本站为例)

sudo apt install certbot
sudo certbot certonly --standalone --agree-tos -d www.higgs.xyz -d higgs.xyz

签好的SSL存放在

/etc/letsencrypt/live/你的域名/fullchain.pem
/etc/letsencrypt/live/你的域名/privkey.pem

1.运行Nginx

sudo apt -y install nginx# sudo ufw allow 'Nginx HTTP'
sudo systemctl start nginx
sudo systemctl enable nginx
# 此时可以通过ip登陆访问

2.安装Mysql数据库

sudo apt -y install mariadb-server
sudo mysql_secure_installation
# 这里会提示你设置密码,重设完密码后最后四个问题选择YnYY
sudo systemctl restart mariadb.service
sudo systemctl enable mariadb.service
sudo mysql -u root -p
# 设置root用户使用密码登陆

  下面使用数据库命令操作

#--------------------------------------------
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的数据库root密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit
#--------------------------------------------
# 新建Typecho数据库
sudo mysql -u root -p
#--------------------------------------------
CREATE DATABASE `typecho` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
exit
#--------------------------------------------
# 最后别忘了重启数据库
sudo systemctl restart mariadb.service

3.安装PHP-8.2

sudo apt -y install php8.2 php8.2-common php8.2-cli php8.2-cgi php8.2-fpm php8.2-gd php8.2-mysql php8.2-sqlite3 php8.2-pgsql php8.2-opcache php8.2-mbstring php8.2-curl php8.2-xml php8.2-xmlrpc php8.2-zip php8.2-intl php8.2-bz2

 
 

— 搭建Typecho —

 

4.安装站点文件

# 创建站点文件夹
sudo mkdir -p /opt/wwwroot/typecho
cd /opt/wwwroot/typecho
# 下载Typecho最新版压缩包并解压
sudo wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip
sudo unzip typecho.zip
# 更改用户权限
sudo chmod -R 755 /opt/wwwroot/typecho
sudo chown -R www-data:www-data /opt/wwwroot/typecho
# 编辑Nginx配置
sudo nano /etc/nginx/conf.d/typecho.conf

5.Nginx配置文件(对应域名请自行更改)

# 此配置强制跳转https,请确保ssl已配置正确
server {
        listen 80;
        server_name  www.higgs.xyz higgs.xyz;
        add_header Strict-Transport-Security max-age=15768000;
        return 301 https://www.higgs.xyz;
}

server {
        listen 443 ssl http2;
        ssl_certificate /etc/letsencrypt/live/www.higgs.xyz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.higgs.xyz/privkey.pem;
        ssl_protocols    TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

        root /opt/wwwroot/typecho;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name higgs.xyz;

        gzip on;
        include /etc/nginx/default.d/*.conf;
        location / {
                if (-f $request_filename/index.html){
                        rewrite (.*) $1/index.html break;
                }
                if (-f $request_filename/index.php){
                        rewrite (.*) $1/index.php;
                }
                if (!-f $request_filename){
                        rewrite (.*) /index.php;
                }
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

测试是否配置成功

nginx -t
# 若显示OK字样,说明配置成功,重启Nginx
sudo systemctl restart nginx

此时打开你的域名,应该进入Typecho安装页面,并且左上显示绿色小锁(即SSL配置成功)

将数据库选择为Mysql,编码选为utf8mb4,填入数据库密码,即安装成功~

到这里Typecho网站便搭建完成,你的小博客搭好啦!

添加自动更新网站证书功能:

sudo apt-get install python3-certbot-nginx
sudo certbot certonly --nginx
Last Modified: February 18, 2024