Typecho搭建教程
侧边栏壁纸
  • 累计撰写 17 篇文章
  • 累计收到 520 条评论

Typecho搭建教程

syqman
2022-06-01 / 1 评论 / 120 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2022年06月08日,已超过686天没有更新,若内容或图片失效,请留言反馈。
前言

一直想要搭一个博客其实很久了,用来记录自己玩过的一些东西,刚好这两天闲下来,选择了一个相对简单的博客程序typecho来搭建: typecho官网 。本文记录了一下搭建过程。

1. 准备工作

一台vps,配置不能太低,不然搭建typecho环境的时候容易死机。我这边选择了甲骨文春川的amd免费机,配置1c1g,这配置其实有点低,搭建的时候死了两次。 表情 如果打算长期用的话,建议选个好点的vps。

2.部署环境

要安装博客系统,首先要安装相应的环境,这里官网的安装环境要求是:

PHP 7.2 以上
MySQL, PostgreSQL, SQLite 任意一种数据库支持,并在 PHP 中安装了相关扩展
CURL 扩展支持
mbstring 或 iconv 扩展支持

这里我选择用LNMP 一键安装包 安装所需的环境 。
具体安装过程参考 LNMP 安装步骤
由于LNMP一键脚本是编译安装,配置不好的小鸡安装完成要等很久,我这里就等了1个多小时 表情。 好处是编译安装所需的环境都是最新版,出问题很少,且LNMP内置了typecho等一些常用博客的规则,适合小白。
安装完成后需要添加虚拟主机,并开启 HTTPS,具体参考 LNMP 虚拟主机配置步骤
由于这里开启了 SSL,需要开启 301 重定向。

vim /usr/local/nginx/conf/vhost/域名.conf

在监听 80 端口的 server 项中增加:

if ($scheme = http) {
    return 301 https://$server_name$request_uri;
}

如果出现 404 页面,需设置 php-pathinfo,把上述文件中的:

include enable-php.conf;

替换为:

include enable-php-pathinfo.conf;

最后重启 Nginx 服务:

/etc/init.d/nginx restart

接着访问域名,如果能够正常访问则表示安装成功。
完整的nginx配置应该是如下:

server
    {
        listen 80;
        #listen [::]:80;
        server_name blog.yourhostname.com ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/blog.yourhostname.com;
        if ($scheme = http) {
        return 301 https://$server_name$request_uri;
        }
        include rewrite/typecho.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php-pathinfo.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log off;
    }

server
    {
        listen 443 ssl http2;
        #listen [::]:443 ssl http2;
        server_name blog.yourhostname.com ;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/blog.yourhostname.com;

        ssl_certificate /root/certs/blog.yourhostname.com/cert.crt;
        ssl_certificate_key /root/certs/blog.yourhostname.com/private.key;
        ssl_session_timeout 5m;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;
        ssl_prefer_server_ciphers on;
        ssl_ciphers "TLS13-AES-256-GCM-SHA384:TLS13-CHACHA20-POLY1305-SHA256:TLS13-AES-128-GCM-SHA256:TLS13-AES-128-CCM-8-SHA256:TLS13-AES-128-CCM-SHA256:EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_session_cache builtin:1000 shared:SSL:10m;
        # openssl dhparam -out /usr/local/nginx/conf/ssl/dhparam.pem 2048
        ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;

        include rewrite/typecho.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php-pathinfo.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /.well-known {
            allow all;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log off;
    }

修改 MySQL 默认字符集

由于 MySQL 默认为 utf8 编码,此编码在 MySQL 中默认为 3 字节,不能显示 3 字节以上的字符,如 emoji 表情等,所以需要改成 utf8mb4 编码,该编码为 MySQL 特有编码。
编辑 MySQL 配置文件:

vim /etc/my.cnf

在其中子项里修改或增加:

[client]
default-character-set = utf8mb4

[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

[mysql]
default-character-set = utf8mb4

[mysqld_safe]
default-character-set = utf8mb4

重启 MySQL 服务:

/etc/init.d/mysql restart

3.安装typecho

lnmp默认设置的网站目录在 /home/wwwroot/域名 ,依次执行:

cd /home/wwwroot/域名
wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip
unzip typecho.zip
rm -rf typecho.zip

接着访问域名,按照提示安装即可。

安全性

/home/wwwroot/域名 目录下,找到typecho的配置文件 config.inc.php ,找到:

define('__TYPECHO_ADMIN_DIR__', '/admin/');

把 /admin/ 这个参数中的 admin 字符串改为其它的即可,然后把同目录下的 admin 文件夹重命名为相同的。

全站开启 HTTPS
在 Typecho 配置文件config.inc.php中追加:

define('__TYPECHO_SECURE__',true);

开启Gzip压缩加速网站
在 Typecho 目录下index.php中首行添加:

ob_start('ob_gzhandler');

修改 phpmyadmin 默认目录

lnmp 默认安装的 phpmyadmin 目录位于 /home/wwwroot/default/phpmyadmin/ ,通常情况下登录 http://your-vpsip/phpmyadmin/ 即可进入数据库登录界面,为防止别有用心的人侵入你的数据库后台,你需要重新改个别人不容易猜到的名字:

cd /home/wwwroot/default
mv phpmyadmin helloworld

重启下 nginx :

nginx -s reload

重新登录 http://your-vpsip/helloworld 即可以进入你的数据库后台。

4.其他配置

主题

至此,Typecho 博客系统基本已经搭好,可以正常使用了,但是自带的主题太丑,可以自己更换喜欢的主题,推荐一个 Typecho主题模板站
举个例子,我选择的是 JOE主题 ,将主题 下载 ,解压,重命名为JOE,上传到/home/wwwroot/域名/home/wwwroot/你的域名/usr/themes下,刷新博客主页,进入后台,选择外观

l3vokztv.png
选择JOE主题,点启用
l3vomml6.png
刷新下博客主页,即完成了主题的替换,当然每个主题还有相应的一些外观设置项,这里就不赘述,自行研究。

插件

typecho还支持一些很有意思的插件,比如可以装 SmartSpam 用来过滤一些垃圾评论,还可以装 Mailer 用来收发邮件评论。
方法也很简单,下载对应插件,上传到/home/wwwroot/域名/home/wwwroot/你的域名/usr/themes/plugins,进入后台-插件,启用对应的插件。

数据库密码修改

若修改了数据库密码,则 Typecho 也需要修改,在 Typecho 配置文件 config.inc.php 中,找到:

'password' => 'passwd'

passwd 这个参数改为修改后的数据库密码即可。

0

评论 (1)

取消
  1. 头像
    大学渣
    MacOS · Google Chrome

    棒棒哒!

    回复