Contents

Debian11下搭建Typecho博客

上次搭动态页面的博客还是大概一年前的事了,这次又搭才发现已经忘得差不多了,很多步骤和配置又得重新查,想着还是做个记录,毕竟我这么折腾的人,说不定啥时候就又重新装了。由于是搭建完成后的记录,所以难免有疏漏,仅供部分参考。

环境安装

1
sudo apt install mariadb nginx php php-fpm php-curl php-mbstring php-mysql

Typecho文件部署

上传Typecho

本地执行

1
scp -r ./Downloads/typecho user@ip:/home/user/Downloads

user和ip替换为自己的用户名和ip地址

部署

复制到/var/www文件夹

1
sudo cp -r ~/Downloads/typecho /var/www

修改文件夹权限

1
sudo chown -R www-data:www-data /var/www/

数据库设置

1
sudo mysql

为typecho创建新的数据库和用户

1
2
3
4
CREATE DATABASE typecho;
CREATE USER 'typecho'@'%' IDENTIFIED BY 'password';
grant all on typecho.* to 'typecho'@'%' with grant option;
FLUSH PRIVILEGES;

php设置

1
sudo vim /etc/php/7.4/fpm/php.in

修改以下内容,以支持更大的文件上传

1
2
3
post_max_size=512M
upload_max_filesize=512M
max_execution_time=0

nginx设置

修改nignx.conf

1
sudo vim /etc/nginx/nginx.conf

http{}字段内添加以下内容,以支持更大的文件上传

1
client_max_body_size 512m;

修改用户,将第一行的用户改为www-data

1
user www-data;

添加配置文件

1
sudo vim /etc/nginx/conf.d/typecho.conf

写入

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
server{
	listen 80;
	server_name	origincat.com www.origincat.com;
	rewrite ^(.*) https://$server_name$1 permanent;
}

server{
	listen 443 ssl;
	server_name	origincat.com www.origincat.com;
	
	ssl_certificate	/etc/nginx/conf.d/cert/origincat.com_bundle.crt;
	ssl_certificate_key	/etc/nginx/conf.d/cert/origincat.com.key;
	ssl_session_timeout	5m;
	ssl_protocols	TLSv1.2	TLSv1.3;
	ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
	ssl_prefer_server_ciphers on;
	
	index index.html index.php;
	
	root /var/www/typecho;
	
	if (!-e $request_filename) {
		rewrite ^(.*)$ /index.php$1 last;
	}
	
	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;
		}
	}
	
	location  ~ \.php$ {
		root /var/www/typecho;
		include /etc/nginx/snippets/fastcgi-php.conf;
		fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
	}
	
	error_page  404 /404.html;
}

启动

关闭apache2,避免占用80端口(没有可忽略)

1
2
sudo systemctl stop apache2
sudo systemctl disable apache2

启动nginx并设置为开机启动

1
2
sudo systemctl start nginx
sudo systemctl enable nginx

设置内网穿透

下载并安装

1
2
3
wget -O frpc <下载地址>
sudo mv frpc /usr/local/bin
sudo chmod 775 /usr/local/bin/frpc

编写配置文件

1
2
sudo mkdir -p /usr/local/etc/natfrp
sudo vim /usr/local/etc/natfrp/frpc.ini

注册为系统服务

1
vi /etc/systemd/system/frpc.service

写入

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[Unit]
Description=SakuraFrp Service
After=network.target

[Service]
Type=idle
User=nobody
Restart=on-failure
RestartSec=60s
ExecStart=/usr/local/bin/frpc
WorkingDirectory=/usr/local/etc/natfrp

[Install]
WantedBy=multi-user.target

设置为开机启动

1
sudo systemctl enable frpc.service

结语

服务器上需要布置的基本就这么多,还有上传主题和插件之类的参考上传Typecho文件夹的操作。