前言
Typecho是最近比较火的博客系统,见到的第一眼就被它的简洁吸引。打算折腾一下了。Joe主题又是我非常喜欢的一款主题。下面记录一下从零开始搭建博客的整个过程。完成后和本站相同的效果。
我的同款主题博客 IT技术家园: https://www.itbunan.xyz
准备资源
要搭建自己的博客,需要一台vps,一个域名。因为开始,博客也没有什么人访问。完全可以使用阿里云 或者 腾讯云 最低配版的主机。域名便宜的几块钱一年时间。如果不想做备案的话,可以选择香港节点,这样就免去了备案,网络速度也很快。
云主机
- 阿里云主机
购买链接
- 腾讯云主机推荐
购买链接
域名
注册阿里云或腾讯云后,直接通过控制台“域名入口购买即可”。购买域名后,将域名解析到刚刚买的vps外网IP上(做实验也可以通过绑定hosts实现)。
系统初始化
云主机购买完成后,通过ssh远程登录。然后进行一些初始化配置。安装必要的软件,方便后期的管理维护。
- 设置yum源
- 安装必要的软件包
- 修改系统限制
- 增加操作系统记录历史命令条数
- 系统内核优化
- 关闭selinux
- 设置时区,同步系统时间
- 配置欢迎语
具体的配置内容见我的另一篇文章: docker和docker-compose一键安装脚本
安装完成后验证
部署服务
我们采用 lnmp 架构运行Typecho程序,下面基于docker部署nginx + mysql + php
编辑docker-compose.yml文件
version: "2"
services:
web:
image: nginx:latest
ports:
- "80:80"
restart: always
volumes:
- ./app:/www/web
- ./services/nginx/conf:/etc/nginx
- /var/log/lnmp/nginx:/www/web_logs
networks:
- lnmp-net
depends_on:
- php
php:
build:
context: ./services/php/docker/
restart: always
volumes:
- ./app:/www/web
- ./services/php/etc/php74.ini:/usr/local/etc/php/conf.d/php.ini
- /var/log/lnmp/php/:/logs/
networks:
- lnmp-net
mariadb:
image: mariadb:10.3.28
ports:
- "3306:3306"
volumes:
- /etc/localtime:/etc/localtime:ro
- ./services/mariadb/my.cnf:/etc/mysql/my.cnf
- ./data/mariadb:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: mariadb@123
TIME_ZONE: Asia/Shanghai
restart: always
networks:
- lnmp-net
networks:
lnmp-net:
driver: bridge
编辑nginx配置文件
位置:services/nginx/conf/conf.d/default.conf
内容:
server {
listen 80;
server_name www.itbunan.xyz;
root /www/web/typecho/;
server_tokens off;
index index.php index.html index.htm;
access_log /www/web_logs/access.log wwwlogs;
error_log /www/web_logs/error.log notice;
if (-f $request_filename/index.html){
rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
rewrite (.*) $1/index.php;
}
if (!-e $request_filename){
rewrite (.*) /index.php;
}
location ~ \.php$ {
fastcgi_pass php:9000;
fastcgi_index index.php;
include fcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 12h;
}
}
配置php.ini
位置: services/php/etc/php74.ini
内容:
zend_extension=opcache.so
opcache.enable=0
opcache.enable_cli=0
#cert
openssl.cafile=/usr/lib/ssl/cert.pem
#上传文件限制
file_uploads = On
memory_limit = 256M
upload_max_filesize = 32M
post_max_size = 32M
max_execution_time = 360
启动服务
docker-compose up -d
php功能测试
mkdir -p app/typecho && echo '<?php phpinfo(); ?>' > app/typecho/index.php
显示如下,则服务配置正常:
安装博客
创建数据库
CREATE DATABASE `typecho` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
安装Typecho
通过 typecho下载页面 下载最新的Typecho源码,解压后上传到项目"app/typecho"目录下。
通过浏览器访问 http://www.itbunan.xyz,会自动跳转到安装页面安装。
安装Joe主题
将Joe下载到"app/typecho/usr/themes"目录下,然后通过后台启用。
git clone https://github.com/HaoOuBa/Joe.git
启用后:
FAQ
首页文章数量
首页文章数量默认5条,改成10条
use myblog;
update typecho_options set value = 10 where name = 'pageSize';
递归改变目录权限
find . -type d -exec chmod 755 {} \;
find . -type f -exec chmod 644 {} \;
最新评论在前
上传图片失败
chown 1000:tape usr/uploads/
不用面板怎么添加HTTPS。请问可以分享吗?
修改nginx的配置,具体参考https://www.itbunan.xyz/xtfw/315.html
支持
支持博主,一定多分享