安装 Typecho 的坎坷之旅

安装 Typecho 的坎坷之旅
胖胖前言
按照家里原来的网络架构,Typecho 应该跑在一台独立的服务器上,再由连着外网的 Nginx 做 SSL 加密和反向代理。但装了 Handsome 主题的 Typecho,页面里有些组件会单独向服务器发请求,结果从公网用 HTTPS 访问时,浏览器控制台报 Mixed Content:HTTPS 页面里混进了 HTTP 请求。
前后调了三天也没解决。就算想办法让这些组件请求公网域名,也没法控制它们请求哪个端口(家宽的 443 端口不通,其他服务走的都是 88 端口)。最后干脆直接把 Typecho 装在反代服务器上。
下面的步骤不包括反向代理的配置,也不建议给装了第三方主题的 Typecho 套反向代理。
2024 年 11 月 30 日更新:现在已经通过一台有公网端口的服务器,内网穿透到家里的反代服务器。如果你有公网 IP,并且 80 和 443 端口可用,就可以像反代普通网站一样反代 Typecho,用什么插件和主题都没问题。
整个安装过程基于 Ubuntu 24.04 LTS,其他系统请酌情参考。
安装依赖
Typecho 需要 PHP,以及 MySQL、PostgreSQL、SQLite 中的一种数据库。
更新系统
1 | sudo apt update |
安装 PHP
Typecho 需要 PHP 和几个扩展:
1 | sudo apt install -y php-fpm php-mysql php-curl php-mbstring |
安装 MySQL
1 | sudo apt install -y mysql-server |
安装 Nginx
排除冲突
Nginx 要用 80 端口,可能和其他 Web 服务器冲突,安装前先确认没有别的服务占着 80 端口。
先检查系统里有没有预装 Apache2,执行 apache2 -v。如果看到类似下面的输出,就按后面的步骤卸载;没有的话直接跳到“正式安装 Nginx”。
1 | Server version: Apache/2.4.41 (Ubuntu) |
停止并禁用 Apache2:
1 | sudo systemctl stop apache2 |
彻底卸载 Apache2 及相关包:
1 | sudo apt purge apache2 apache2-utils apache2-bin |
再执行一次 apache2 -v,提示 command not found 就说明卸干净了。
正式安装 Nginx
1 | sudo apt install -y nginx |
配置数据库
用超级用户直接进入 MySQL:
1 | sudo mysql |
这种进入数据库的方式并不安全。对安全有要求的话,先运行 sudo mysql_secure_installation,按提示加固 MySQL。
在 MySQL 提示符下执行:
1 | CREATE DATABASE typecho_db; |
把 typecho_db 换成你想用的数据库名,typecho_user 和 your_password 换成给 Typecho 用的数据库账号和密码。
部署 Typecho
下载 Typecho 和主题
从 Typecho 官网下载最新的正式版压缩包。现在的 Web 根目录是 /var/www/html,为了方便管理,给 Typecho 单独建一个目录:
1 | sudo mkdir /var/www/html/typecho |
把压缩包上传到服务器,解压到这个目录,确认 install.php 或 index.php 就在 /var/www/html/typecho 下面。
压缩包是 .zip 格式的话,可能需要先装 unzip。
从友人C的博客购买并下载 Handsome 主题,解压到 /var/www/html/typecho/usr/themes,配套的插件放到 /var/www/html/typecho/usr/plugins。
不确定要不要买的话,可以先在这里看看这款主题的效果,之后再决定。
设置权限,让 Web 服务器能读这些文件:
1 | sudo chown -R www-data:www-data /var/www/html/typecho |
配置 Nginx
给 Typecho 新建一个站点配置:
1 | sudo vim /etc/nginx/sites-available/typecho |
写入:
1 | server { |
注意第 17 行 fastcgi_pass 的路径,里面的 PHP 版本号要和你装的一致(可以用 ls /var/run/php/ 查看)。域名、证书、公网 IP 请自行解决,不在本文讨论范围内。
启用配置并重启 Nginx:
1 | sudo ln -s /etc/nginx/sites-available/typecho /etc/nginx/sites-enabled/ |
访问 Typecho
这时访问“域名:端口”,应该就能进入 Typecho 的安装界面了。按前面的配置填好数据库信息,再新建管理员账号就能用了。
结语
Typecho 本身装起来并不复杂,大部分时间都花在折腾反向代理上了。踩的坑主要是 MySQL 的权限和 PHP 的版本:直接 apt install php 不会装上 PHP-FPM 和 MySQL 扩展。
这是本博客的第一篇文章,希望我能一直保持记录的热情。







-863b9c5323fbe3a333ba6b5da0bd8ebd.png)



