Typecho 博客框架部署

_

# 前言

以前在一些大佬口中得知很多大神都有自己的博客,也觉得很神奇、厉害。

我是一个.Net的开发者,最初也是想使用Vue+mysql+.Net/Node.Js来开发自己的博客。

在一次开发的过程,发现要解决的事情非常多,并且前端方面时常遇到很多不好解决的问题。

最近在公司研究Frp的时候,感觉自己的服务器网速不行,又无法使用XTPC,导致远程掉帧。

在搜索解决方案时,看到有人分享了一个线上免费Frp。Sakura Frp | Frp文章 |

打开发现,很熟悉的页面,飞机场既视感。

好奇作者的其他技术内容,点开了博客,找寻一番,发现博客是使用 Typecho。

其查了一些资料,似乎很好部署,支持皮肤更换,功能插件支持,还有一定的社区。

于是决定,自己也要搞一个

## 一、准备工作

[Typecho 官网](http://typecho.org/)

其技术是PHP,服务端直接在官方即可下载,记文使用的是正式版1.1

此前,先来准备部署需要的东西:

Win 可以使用 IIS

Linux 可以使用 Apache2

> sudo apt-get install libapache2-mod-php

这里就不详细说明安装过程了。需要注意的是,IIS的话需要安装CGI,安装时需要留意一下

因为我的服务器上还有运行其他内容运行在80端口,我比较习惯使用Nginx来反代

[Nginx 官网](http://nginx.org/en/download.html)

Win系统可以直接下载解压包,免安装

Linux可以通过命令行直接一键安装 这里都不展开详说了

数据库我直接使用习惯的mysql

Win 平台不细说,装就是了

Linux需要为PHP装扩展

> sudo apt-get install php-mysql

## 二.Win部署

到这一步,我们应该装好了Mysql,解压了PHP,安装了IIS,也放好了Nginx

路径:E:PHP 为PHP程序存放的位置(php-cgi.exe所在位置)

### 1.我们先调整下PHP的配置

先给php.ini-production去除后缀,改名为 php.int

在配置中找到下面内容,将其改为自己PHP目录中的ext文件夹,并取消前面';'注释

```

extension_dir =

extension_dir ="E:PHPext" ;示例

session.save_path =

session.save_path = "E:PHPextse" ;示例

```

找到下面的插件内容,把前面的注释去除掉,我们启用这些插件

### 2.接着我们来配置IIS

右击网站,选择添加网站.我们填入网站名称,对应Typecho 的路径,和端口即可(不推荐使用80端口)

接来下为IIS添加映射,模块我们选择FastCgiModule,执行文件就选择PHP目录下的php-cgi.exe

添加完后.我们的网站就能打开了.

在浏览器访http://127.0.0.1:端口/index.php

即可打开安装页面.

### 3.准备安装

在打开页面后,填写相关信息.因为我使用的是MySql,所以选择 Pdo驱动Mysql

这里的数据库名,我们在Mysql中也创建一个同名的数据库

```sql

create database typecho;

```

创建好数据库后,就可以下一步了,"确认,开始安装".

若数据库没有创建,则可能会报错'对不起,无法连接数据库,请先检查数据库配置再继续进行安装'

至此,我们的Typecho就已经安装完毕了.

如果你的IIS直接对外开放,可以通过 IP:端口/index.php来使用.

但一般我们都会注册一个域名,DNS到服务器上来访问,这里就不展开介绍了.

### 4.使用Nginx来反代!

因为工作中经常使用Nginx,并且自己的服务器有地方需要使用80端口,我这边就使用Nginx来反代我们的Typecho

打开配置文件 nginxconfnginx.conf

填入以下内容

```conf

server {

listen 访问端口;

server_name 你的域名;

location / {

proxy_set_header Host $host;//把域名带上,避免外网访问时,导致页面有些链接变成了本地IP

proxy_set_header X-real-ip $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_pass 反代本地地址;//这里填入我们的本地IIS访问地址即可

}

}

```

## 三、新手坑

因为我使用了最新的PHP7.4,部分函数已经过时不支持,如:

错误都是语法问题,PHP的语法可以在网上找到,一般都是函数过时需要替换,参数为空.

```

PHP Deprecated: Function get_magic_quotes_gpc() is deprecated in ** on line 208

Undefined variable: _SESSION

Trying to access array offset on value of type null

```

.Net Core 3.1 Json序列号 时间、emoji格式相关问题 2021-08-18
Frp和SakuraFrp使用经历 2021-08-20