树洞剪藏#剪藏#树洞剪藏

📖超轻量博客系统typecho——本地手动部署教程

2024 年 12 月 14 日1 分钟
分享Twitter / XTelegram微博
📖超轻量博客系统typecho——本地手动部署教程 封面

同步来源:树洞剪藏 源站剪藏 ID:395 原文地址:https://www.nodeseek.com/post-220136-5

打开原文 · 打开源站剪藏快照


📖超轻量博客系统typecho——本地手动部署教程

NodeSeek beta 日常 技术 情报 测评 交易 拼车 推广

📖超轻量博客系统typecho——本地手动部署教程

Rational Lv 6 楼主 1h 11min ago edited 31min ago in 技术 0

博客地址: youdao.li

RSS源: https://youdao.li/feed/

Typecho 是一个简洁、高效的 PHP 博客系统。为什么选择它?因为它轻量!轻量!轻量!与其选择那些基于 Docker 的部署脚本,不如直接在 Linux 上手动部署,这样不仅能够保持 Typecho 原有的轻量特性,还能避免 Docker 容器带来的额外开销。容器虽然方便,但对于一个本身已经非常轻量的博客系统来说,容器的加入反而显得有些“本末倒置”。当然,如果你对本地环境的隔离要求较严格还是选择docker较为合适。

在这篇教程中,我将展示如何在 Debian 12 系统上,手动安装并优化配置 Typecho,而无需依赖 Docker。通过一步一步的指导,你将学会如何使用 Nginx、MySQL 和 PHP 来搭建一个高效、安全的 Typecho 博客。

  1. 更新系统

apt update apt upgrade -y

  1. 安装 Nginx

apt install nginx -y systemctl start nginx systemctl enable nginx

  1. 安装 MySQL(MariaDB)

apt install mariadb-server -y systemctl start mariadb systemctl enable mariadb

配置 MySQL 安全性

mysql_secure_installation

在执行 mysql_secure_installation 时,会问你几个问题:

Enter current password for root: 直接按回车

Set root password? [Y/n]:输入 Y,然后设置 root 密码

Remove anonymous users? [Y/n]:输入 Y

Disallow root login remotely? [Y/n]:输入 Y

Remove test database? [Y/n]:输入 Y

Reload privilege tables now? [Y/n]:输入 Y

  1. 为 Typecho 创建数据库和用户

mysql -u root -p

使用root身份连接mysql -u表示指定用户名 -p表示需要输入密码

在 MySQL 命令行中执行:

CREATE DATABASE typecho; CREATE USER 'typecho' @ 'localhost' IDENTIFIED BY '设置一个密码' ; GRANT ALL PRIVILEGES ON typecho. * TO 'typecho' @ 'localhost' ; FLUSH PRIVILEGES; exit;

创建名为typecho的数据库,并创建一个typecho用户,指定其此用户仅允许本地访问,且设置一个密码,然后并授予该用户对 typecho 数据库的所有权限。最后刷新一下。

  1. 安装 PHP 及必要扩展

apt install php-fpm php-mysql php-gd php-curl php-mbstring php-xml php-zip -y systemctl start php8.2-fpm systemctl enable php8.2-fpm

  1. 下载和配置 Typecho

cd /var/www/html wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip apt install unzip -y unzip typecho.zip chown -R www-data:www-data /var/www/html chmod -R 755 /var/www/html

将 /var/www/html 及其所有文件和子目录的所有者和所属组设置为 www-data , www-data 是 Apache 或 Nginx Web 服务器通常使用的用户和组。

  1. 配置 Nginx

nano /etc/nginx/sites-available/typecho

方式一:通过域名访问的配置

server { listen 80; server_name examle.com; # 替换为你的域名或服务器IP root /var/www/html; index index.php index.html;

location / { try_files $uri $uri/ /index.php?$args; }

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

location ~ /.ht { deny all; } }

方式二:通过ip+端口访问的配置(便于反代)

server { listen 8080; # 改为你想要的端口号 server_name 你的服务器IP; # 直接填写服务器IP root /var/www/html; index index.php index.html;

location / { try_files $uri $uri / /index.php? $args ; }

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

location ~ /.ht { deny all; } }

  1. 启用站点配置

ln -sf /etc/nginx/sites-available/typecho /etc/nginx/sites-enabled/ rm /etc/nginx/sites-enabled/default nginx -t systemctl restart nginx

  1. 访问网站完成安装

现在你可以通过浏览器访问你的域名或服务器IP,会看到 Typecho 的安装界面。按照以下步骤完成安装:

选择"开始安装"

数据库适配器选择 "MySQL"

数据库地址填写 "localhost"

数据库端口保持默认 "3306"

数据库用户名填写 "typecho"

数据库密码填写你之前设置的密码

数据库名填写 "typecho"

创建管理员账号和密码

注意事项:

确保防火墙允许 80 端口访问:

apt install ufw ufw allow 80/tcp ufw enable

如果遇到权限问题,可以检查:

chmod -R 755 /var/www/html chown -R www-data:www-data /var/www/html

如果网站打不开,可以查看日志:

tail -f /var/log/nginx/error.log

记得定期备份数据:

mysqldump -u root -p typecho > typecho_backup.sql

配置Https

首先安装 certbot 和 Nginx 插件:

apt install certbot python3-certbot-nginx -y

申请证书:

certbot --nginx -d examle.com

执行过程中会:

询问你的邮箱地址(用于证书过期提醒)

是否同意服务条款(输入 Y)

是否愿意分享邮箱(可以输入 N)

是否自动将 HTTP 跳转到 HTTPS(输入 2,选择自动跳转)

检查证书自动续期是否配置正确:

systemctl status certbot.timer

手动测试续期命令(不会真的续期,只是测试):

certbot renew --dry-run

查看 Nginx 配置文件,确认 certbot 是否正确修改了配置:

cat /etc/nginx/sites-available/typecho

你应该能看到类似这样的配置:

server { server_name examle.com; root /var/www/html; index index.php index.html;

location / { try_files $uri $uri/ /index.php?$args; }

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

location ~ /.ht { deny all; }

listen 443 ssl; ssl_certificate /etc/letsencrypt/live/examle.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/examle.com/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; }

server { if ($host = examle.com) { return 301 https://$host$request_uri; }

listen 80; server_name examle.com; return 404; }

重启 Nginx 使配置生效:

nginx -t systemctl restart nginx

确认防火墙允许 HTTPS 流量:

ufw allow 443/tcp

现在你可以通过以下方式验证配置:

在浏览器访问 http://examle.com - 应该会自动跳转到 https

访问 https://examle.com - 应该能看到安全锁标志

查看证书详情,确认是 Let's Encrypt 颁发的

自动续期说明:

证书有效期为 90 天

certbot 会自动在证书过期前 30 天尝试续期

续期是自动的,不需要人工干预

如果续期失败,你会收到邮件通知

可能遇到的问题及解决方案:

如果申请证书失败,检查:

  • 域名是否正确解析到服务器IP
  • 80和443端口是否开放
  • 防火墙设置是否正确

如果网站打不开,检查日志:

tail -f /var/log/nginx/error.log

查看证书状态:

certbot certificates

如果需要手动更新证书:

certbot renew

⚡️HomePage | 域名出售

5 0 8 引用 回复

1 2 3 4 5

poi 1h 8min ago

2

不错不错,我都一键就完事了,比如BT一键。

TG | pm | 收建站机 | 混迹于loc,交易看loc信誉

1 0 引用 回复

CDkey51 1h 10min ago 1

技术贴,点赞👍

0 0 引用 回复

qige 活跃 1h 7min ago 3

好长

我都是虚拟主机装

个人小站 Blog | A大有名论坛 | iKun论坛

其他 椰子 | Telegram(偶尔使用) | 出售域名 buildon.app (视频解析) | WhatsApp

0 0 引用 回复

aessy 1h 7min ago 4

我选docker compose一键梭哈

垃圾小鸡,毁我青春!

国家一级抬杠运动员!伦敦奥运抬杠项目金牌得主!

0 0 引用 回复

YOUKOVO 1h 6min ago 5

cy

0 0 引用 回复

koalalove 1h 6min ago 6

但就程序来说确实轻量

站内私信✉️ | Telegram✈️

0 0 引用 回复

Rational 楼主 1h 6min ago 7

@poi #2

能轻量尽量轻量哈哈 这样也省去了宝塔的额外开销了

⚡️HomePage | 域名出售

0 0 引用 回复

qning 1h 6min ago 8

ty佬友,前来帮顶 https://qninq.cn/

2024重新开始搞博客| 倾城于你 | 以针会友 | 国内公益图床

0 0 引用 回复

keo 1h 6min ago 9

bd

0 0 引用 回复

docker 1h 5min ago 10

求一键集成脚本

站内私信 | tg联系✈️ 丨 cc/cloudcone 最新机器转移码教程 丨 v0探针

0 0 引用 回复

Rational 楼主 1h 17min ago #11

@qning #8

你这整的挺好的呀 感觉用typecho的好大一部分人都是冲着handsome来的

⚡️HomePage | 域名出售

Rational 楼主 1h 15min ago #12

@docker #10

本人是不太建议过于依赖一键脚本的 这样后期出现什么bug就束手无策了

玩鸡鸡的过程中也学学简单的命令行操作

⚡️HomePage | 域名出售

smit 1h 15min ago #13

感谢分享

dajie000 活跃 1h 14min ago #14

还是觉得docker方便些

站内私信 | 联系TG | 收售小鸡欢迎选购

Rational 楼主 1h 14min ago #15

@aessy #4

各有利弊吧 梭哈方便点 但会臃肿一些

⚡️HomePage | 域名出售

poi 1h 13min ago edited 1h 13min ago #16

@Rational #7

手动太麻烦了,指不定还弄不起来,感觉还是上面板省心点。哪里不会点哪里,不准备搞个mysql版本

TG | pm | 收建站机 | 混迹于loc,交易看loc信誉

Rational 楼主 1h 12min ago edited 1h 11min ago #17

@poi #16

都可以的 多一个选择

也是因为前几天有个朋友想部署 但他担心面板的安全性问题 所以最后帮他手动部署了

顺便就写了个教程篇

⚡️HomePage | 域名出售

muxui 1h 6min ago #18

✈️TG | ✉️私信

reror 1h 4min ago #19

可以补充一下sqlite的版本,更轻量

BuluBiu 1h 4min ago #20

好帖, 可惜打算转hugo了 https://hugo.aliya.us.kg/

((••)) || Whois || 导航网站 || 美团图床 || 自建博客 || 留言板 || 金将军!忠诚!

DocksToBox 1h 4min ago #21

求docker

Gang5187 1h 3min ago #22

哇,真是非常好的技术贴,鸡腿奉上,终于可以学习手搓了。

TG联系我 | 站内PM

Rational 楼主 1h 2min ago #23

@reror #19

最初自己的博客就是用的MariaDB 就懒得换了 确实sqlite会更轻量

⚡️HomePage | 域名出售

Siamese7 58min ago edited 58min ago #24

@Rational #0 docker部署东西和轻量不轻量没关系。主要是防止项目污染本地环境

TG联系

王龙 56min ago #25

看见这域名, 差点就注册了meidao.li

Rational 楼主 51min ago #26

@Siamese7 #24

⚡️HomePage | 域名出售

应无所住 50min ago #27

有道理?

200MB

Rational 楼主 49min ago edited 49min ago #28

@王龙 #25

哈哈哈 ecouu.com 也能访问

⚡️HomePage | 域名出售

sasha 48min ago #29

你博客图片挂了

*****出域名 china.mk 趣域站内 push *****

Rational 楼主 47min ago #30

@sasha #29

哪一篇文章呢 有没有可能是CF抽风了(源站在海外)

⚡️HomePage | 域名出售

sasha 41min ago #31

@Rational #30 我就在墙外,所有封面图全挂了

*****出域名 china.mk 趣域站内 push *****

Rational 楼主 39min ago edited 38min ago #32

@sasha #31

这就奇怪了 问了好几个人都能正常加载

我也没开地域限制呀🤔

⚡️HomePage | 域名出售

sasha 36min ago #33

@Rational #32 你是不是开了cf验证

*****出域名 china.mk 趣域站内 push *****

Rational 楼主 33min ago edited 26min ago #34

@sasha #33

我靠 才想起来图床是在另一个域名上 配置了waf

你该不会正好在允许地域之外吧😂

⚡️HomePage | 域名出售

Rational 楼主 32min ago #35

@sasha #33

我把地域限制关了 现在呢

⚡️HomePage | 域名出售

Aicnal 31min ago #36

@aessy #4

有无 compose 分享一下?

本人在此平台发表的任何言论,均非本人观点

sasha 31min ago #37

@Rational #35 现在可以打开了

右击图片,在新标签中打开,cf验证一闪而过,所以我猜是cf验证的事

*****出域名 china.mk 趣域站内 push *****

Rational 楼主 30min ago edited 30min ago #38

@sasha #37

okok 忘了把俄罗斯加进来了

⚡️HomePage | 域名出售

Copper 27min ago #39

顶爆,有时间试一下

探针

oraclecloud 18min ago #40

直接用mkdocs,丑是丑了点

PM✉️ | TG✈️

Agmes 14min ago edited 11min ago #41

blog UI很好看哦,给你🍗。

另外这么久了还能见你在此站活跃着,很难得。

Cancanneed 10min ago #42

mark.

1 2 3 4 5

内容 预览 对照

支持 markdown语法

鼓励友善发言,禁止人身攻击

xxxxxxxxxx

1

1 ​

AC娘

洋葱头

小黄鸡

发布评论

88

等级 Lv 4 鸡腿 2015 关注 0 回复 0 我 0

主题帖 11 评论数 301 粉丝 2 收藏 211 私信 0 发帖

快捷功能区 推荐阅读 管理记录 幸运抽奖 邀请好友 合作商家 友站链接

所有版块 日常 技术 情报 测评 交易 曝光 拼车 生活 贴图 推广 内版 Dev 无意义 沙盒

📈用户数目📈

目前论坛共有23828位seeker

🎉欢迎新用户🎉

yinjianbaigu

road

大宝宝

Lunar-

xing

WuJi

toryln

mxmilu

相关网站 LowEndTalk LowEndSpirit HostLoc ServerHunter

站内导航 关于本站 隐私协议 RSS订阅 sitemap

商业推广 商家申请规则 Premium Provider 合作商家展示

其他平台 电报频道 电报群组

联系我们

Copyright © 2022 - 2024 All rights Reserved set 限制解除

相关文章