安装Typecho的坎坷之旅

安装Typecho的坎坷之旅
胖胖前言
按照家中之前的网络架构,Typecho应由独立的服务器运行,并由接通外网的Nginx进行SSL加密与反向代理。然而配置了Handsome主题的Typecho页面包含需要单独向服务器发送请求的组件,这使得在用公网访问Typecho时,在浏览器后台会出现Mixed Content报错,即在通过HTTPS加载的界面上出现了尝试发出HTTP的请求的组件。
在经历了历时三天的各种调试后依然无法解决这个问题,因为即便设法使组件向公网域名发送请求,也无法限制其向指定的端口发送。(家宽的443端口不通,其他服务都是访问88端口)最终决定直接在反代服务器上部署Nginx。
以下的步骤中不会包含如何配置反向代理,同时也不建议对安装了第三方主题的Typecho使用反向代理。
2024年11月30日更新:目前已经通过带有公共端口的服务器内网穿透至家庭反代服务器。如果拥有公网IP且80端口和443端口可用,则可以像反代普通网站一样反代Typecho,无论你使用了哪些插件或主题。
整个安装过程基于Ubuntu 24.04 LTS,如果你使用其他操作系统,请酌情参考。
安装依赖
Typecho 需要 PHP 和 MySQL/PostgreSQL/SQLite 数据库支持,接下来我们将逐步安装需要的依赖。
更新系统
首先,更新系统包列表并升级所有包:
1 | sudo apt update |
安装PHP
Typecho 需要 PHP 和 以及其必要扩展的支持。
安装PHP及其必要扩展:
1 | sudo apt install -y php-fpm php-mysql php-curl php-mbstring |
安装MySQL
安装MySQL:
1 | sudo apt install -y mysql-server |
安装Nginx
冲突排除
Nginx需要使用80端口,这可能与其他的Web服务器冲突,请确保安装之前没有其他服务占用80端口。
为了避免安装时出现错误,我们需要提前检查系统中有没有预装Apache2。首先,使用apache2 -v检查系统中是否安装了 Apache2,如果你看到了类似如下的输出,请继续接下来的操作,否则请直接跳转至安装Nginx的部分。
1 | Server version: Apache/2.4.41 (Ubuntu) |
停止 Apache2 服务:
1 | sudo systemctl stop apache2 |
禁用 Apache2 服务:
1 | sudo systemctl disable apache2 |
完全移除 Apache2 及其相关包:
1 | sudo apt purge apache2 apache2-utils apache2-bin apache2.2-common |
这时再次使用apache2 -v检查,如果你看到 command not found 的提示,说明 Apache2 已经被成功移除。
完成上述步骤后,我们可以继续按照前述步骤安装并配置 Nginx 以及其他所需组件。
正式安装Nginx
安装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使用的数据库名,对应的,将typecho_user和your_password替换为你希望Typcho使用的数据库账户和密码。
部署Typecho
下载Typecho及其主题
从Typecho官网下载最新的正式版压缩包,并将其解压至Web根目录。我们目前的环境下,Web根目录为/var/www/html为了方便管理,我们最好为Typecho新建一个文件夹:
1 | sudo mkdir /var/www/html/typecho |
将下载的压缩包上传至服务器并解压至刚刚新建的目录,解压完成后,确保install.php或index.php处于该路径下。
如果压缩包为.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 配置一个新的 Nginx 站点:
1 | sudo vim /etc/nginx/sites-available/typecho |
在文件中添加以下配置:
1 | server { |
请务必注意第17行的路径,不同版本的PHP路径中的版本号会有变化。域名、证书、公网IP请自行解决,不在本文讨论范围。
启用新的配置并重启Nginx:
1 | sudo ln -s /etc/nginx/sites-available/typecho /etc/nginx/sites-enabled/ |
访问Typecho
此时访问你的域名+端口,理论上应该可以进入Typecho的初始化界面了。按照之前的配置正确填写数据库信息,并新建管理员账号就可以使用了。
结语
Typecho的安装本身并不复杂,我的大部分时间都花在了尝试进行反向代理上。中间踩过的坑主要集中在MySQL的权限问题和PHP的版本问题。如果直接使用apt安装PHP,不会安装PHP-fpm以及MySQL的扩展。
这是本博客的第一篇文章,希望我能一直保持记录的热情。








-863b9c5323fbe3a333ba6b5da0bd8ebd.png)


