MENU

Typecho搭建指南(LNMP)

March 15, 2019 • 极意阅读设置

(20-03-19 Update:全篇优化)

  教你搭建属于自己的Typecho小博客~

  操作系统为Debian 10,LNMP搭建,使用Cerbot免费签证的SSL牌照~
  最近因为迁移站点,所以按以前写的备忘重新搭建了一遍,事实证明每次留下操作代码实在是一个极好的习惯,几分钟就弄好了,于是顺带分享一下~

  (由于目前还没有图床,虽然目前已经有了图床,但我仍然觉得在网上找资料的时候会学到很多,所以并不打算太罗嗦,以下代码亲测可以使用,如有问题请自行谷歌或者留言,本文重在提供一种可行方案,而非百科式教学,诸如VPS/域名等前置条件便不在本文范围内)

 
 

— 为什么选择Typecho —

 
 

  因为好看啊!
  开源极简漂亮,原生支持Markdown,还要啥自行车?

 
 

— LNMP环境构建 —

 

0.使用Cerbot签证免费的SSL证书(域名以本站为例)

sudo apt install certbot
sudo certbot certonly --standalone --agree-tos -d www.higgs.xyz -d higgs.xyz --server https://api.buypass.com/acme/directory

签好的SSL存放在

/etc/letsencrypt/live/www.higgs.xyz/fullchain.pem
/etc/letsencrypt/live/www.higgs.xyz/privkey.pem

1.安装Nginx

sudo apt -y install nginx
# sudo ufw allow 'Nginx HTTP'
sudo systemctl start nginx
sudo systemctl enable nginx
# 此时可以通过ip登陆访问

2.安装Mysql数据库

sudo apt -y install mariadb-server
sudo mysql_secure_installation
# 这里会提示你设置密码,重设完密码后最后四个问题选择YnYY
sudo systemctl restart mariadb.service
sudo systemctl enable mariadb.service
sudo mysql -u root -p
# 设置root用户使用密码登陆

  下面使用数据库命令操作

#--------------------------------------------
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的数据库root密码' WITH GRANT OPTION;
FLUSH PRIVILEGES;
quit
#--------------------------------------------
# 新建Typecho数据库
mysql -u root -p
#--------------------------------------------
CREATE DATABASE `typecho` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
exit
#--------------------------------------------
# 最后别忘了重启数据库
sudo systemctl restart mariadb.service

3.安装PHP-7.3

sudo apt -y install php7.3 php7.3-common php7.3-cli php7.3-cgi php7.3-fpm php7.3-gd php7.3-mysql php7.3-sqlite3 php7.3-pgsql php7.3-opcache php7.3-mbstring php7.3-curl php7.3-xml php7.3-xmlrpc php7.3-zip php7.3-intl php7.3-json php7.3-bz2

 
 

— 搭建Typecho —

 

4.安装站点文件

# 创建站点文件夹
sudo mkdir -p /opt/wwwroot
cd /opt/wwwroot
# 下载Typecho压缩包并解压(这里选择的是开发版,需要稳定版请更换链接)
sudo wget https://typecho.org/build.tar.gz
sudo tar xvzf build.tar.gz 
sudo mkdir -p /opt/wwwroot/typecho
sudo mv build/* ./typecho
# 更改用户权限
sudo chmod -R 755 /opt/wwwroot/typecho
sudo chown -R www-data:www-data /opt/wwwroot/typecho
# 编辑Nginx配置
sudo nano /etc/nginx/conf.d/typecho.conf

5.Nginx配置文件(对应域名请自行更改)

# 此配置强制跳转https,请确保ssl已配置正确
server {
        listen 80;
        server_name  www.higgs.xyz higgs.xyz;
        add_header Strict-Transport-Security max-age=15768000;
        return 301 https://www.higgs.xyz;
}

server {
        listen 443 ssl http2;
        ssl on;
        ssl_certificate /etc/letsencrypt/live/www.higgs.xyz/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.higgs.xyz/privkey.pem;
        ssl_protocols    TLSv1 TLSv1.1 TLSv1.2 TLSv1.3;

        root /opt/wwwroot/typecho;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name higgs.xyz;
        
        gzip on;
        include /etc/nginx/default.d/*.conf;
        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;
                }
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}

测试是否配置成功

nginx -t
# 若显示OK字样,说明配置成功,重启Nginx
sudo systemctl restart nginx

此时打开你的域名,应该进入Typecho安装页面,并且左上显示绿色小锁(即SSL配置成功)

将数据库选择为Mysql,编码选为utf8mb4,填入数据库密码,即安装成功~
Typecho

到这里Typecho网站便搭建完成,你的小博客搭好啦!

 

顺便我还保留了最初不太成熟的历史版本,如果你是小白,也可以参见下文。

操作系统为Ubuntu 18.04,LNMP搭建,CloudFlare的SSL牌照

 
 

— LNMP环境构建(旧) —

   

1.安装Nginx

sudo apt install nginx -y
# sudo ufw allow 'Nginx HTTP'
sudo systemctl start nginx
sudo systemctl enable nginx
# 此时可以通过ip登陆访问

2.安装Mysql数据库

sudo apt install mysql-server mysql-client -y
sudo mysql_secure_installation
# 这里会提示你设置密码
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql
# 设置root用户使用密码登陆

  下面使用数据库命令操作

#--------------------------------------------
SELECT user,authentication_string,plugin,host FROM mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '刚才设置的root密码';
SELECT user,authentication_string,plugin,host FROM mysql.user;
exit
#--------------------------------------------
# 新建Typecho数据库
mysql -u root -p
#--------------------------------------------
CREATE DATABASE `typecho` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
exit
#--------------------------------------------

3.安装PHP-7.2

sudo apt-get install -y software-properties-common
sudo add-apt-repository universe
sudo apt install php-fpm php-mysql php-mbstring -y
sudo nano /etc/nginx/sites-available/你的网站.com
#------------将以下内容填入--------------------
server {
        listen 80;
        root /var/www/html;
        index index.php index.html index.htm index.nginx-debian.html;
        server_name 你的网站.com;

        location / {
                try_files $uri $uri/ =404;
        }

        location ~ \.php$ {
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
        }

        location ~ /\.ht {
                deny all;
        }
}
#--------------------------------------------
sudo ln -s /etc/nginx/sites-available/你的网站.com /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default
sudo nginx -t
# 这里显示成功方可继续
sudo systemctl reload nginx
sudo nano /var/www/html/info.php
#------------将以下内容填入--------------------
<?php
phpinfo();
#--------------------------------------------
# 此时可访问你的域名/info.php查看配置信息(日后记得删除)
systemctl reload nginx

  此时Typecho网站便搭建完成,你的小博客搭好啦

 

— 搭建Typecho (旧)—

 

  下载解压如下:

cd /var/www/html
sudo wget -c http://typecho.org/downloads/1.1-17.10.30-release.tar.gz
sudo tar xvzf 1.1-17.10.30-release.tar.gz
mv build/* .
sudo chmod -R 777 /var/www/html
# sudo rm 1.1-17.10.30-release.tar.gz
# sudo rm -rf build

  此时登陆你的域名或者IP即可看到安装界面,按提示操作,记得记住账号密码

  这里注意安装完成后可能出现进入后台显示404的问题,修改下Nginx配置即可:

# typecho Nginx 404 error
sudo nano /etc/nginx/sites-available/你的网站.com
#------------将以下内容填入--------------------
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;
}
#--------------------------------------------
# 添加位置如下
# server{
#     ...
#     location / {
#         ...
#         //这里添加
#         ...
#         try_files $uri $uri/ =404;
#         ...
#     }
# }

 

— 安装SSL证书 (旧)—

 

  这里我用的是CloudFlare的免费10年SSL,虽然主要是为了免费CDN加速
  注册和获取SSL文件请自行谷歌,这里只提供如何修改Nginx配置文件

# Cloudflare SSL
#1 下载 pem&key 传输至vps对应位置 /etc/ssl/certs/&/private/
#2 选择cloudflare crypto full(strict)
# 修改Nginx配置文件 
sudo nano /etc/nginx/sites-available/你的网站.com
#------------将内容修改如下--------------------
server {
        listen 80;
        server_name  www.你的网站.com;
        add_header Strict-Transport-Security max-age=15768000;
        return 301 https://www.你的网站.com;
}

server {
        listen 443 ssl http2;
        ssl on;
        ssl_certificate /etc/ssl/certs/你的网站.pem;
        ssl_certificate_key /etc/ssl/private/你的网站.key;
#--------------------------------------------
sudo nginx -t
# 显示成功便大功告成,重载Nginx服务
sudo systemctl reload nginx

  稍等片刻后,网站地址栏的左面便显示为绿色小锁啦

Last Modified: March 21, 2020