翼度科技»论坛 云主机 LINUX 查看内容

Typecho搭建和美化

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
概述

Typecho是一款轻量级的开源PHP博客系统,它简单易用,界面整洁,性能高效,主题、插件众多。我使用的是腾讯云轻量服务器,Typecho的应用模版,一键安装环境。构建自己的博客网站,记录生活、分享经验。
购买域名、备案、申请SSL

这样在之后创建完typecho服务器,就会在nginx中直接添加对应域名的https的配置。
若没有域名也没问题,使用 ip+port 的形式访问。
购买云服务器

获取服务器相关账号密码
  1. # 应用管理 -> 管理员密码 -> 复制 -> 登录 -> 粘贴 -> ⏎
  2. # 获取以下账号和密码,保存好
  3. # typecho_username = xxx
  4. # typecho_password = xxx
  5. # mariadb_password = xxx
  6. # 若远程连接MariaDB,报错1130,说明在MariaDB上没有为 Navicat 运行的主机 IP 授予数据库访问权限
  7. # 将navicat提示的报错ip替换下面"IP",将上述记录的数据库密码替换下面"Password"。进入服务器数据库,执行
  8. mysql -uroot -p
  9. GRANT ALL PRIVILEGES ON *.* TO 'root'@'IP' IDENTIFIED BY 'Password' WITH GRANT OPTION;
复制代码
Typecho主题的使用以及美化

以下包括Jasmine主题的基本配置,个人优化。
使用主题
  1. # 参考文档:https://gitee.com/LiaoChunping/Jasmine/wikis/Home
  2. # 将主题下载,并放到下面目录中
  3. cd /usr/local/lighthouse/softwares/typecho/usr/themes
  4. # 解压
  5. unzip jasmine.zip
  6. # 登录后台管理页面 http://xxx.xx.xx.xxx/admin
  7. # 控制台 -> 外观 ,就能看到新增的主题
  8. # 点击 设置外观 Tab, 按下面步骤说明操作
复制代码
设置网站地址栏图标
  1. cd /usr/local/lighthouse/softwares/typecho
  2. # 复制一个 favicon.ico 文件上去,浏览器清理缓存,再刷新查看
复制代码
设置站点logo地址
  1. # png格式,我这里是使用腾讯云的对象存储来保存图片
复制代码
左侧菜单栏

首先需要创建对应独立页面,归档、随机菜单,创建时,需要选择“自定义模版”
  1. [
  2.   {
  3.     "name": "关于",
  4.     "icon": "bi bi-person-circle",
  5.     "url": "/about.html",
  6.     "newTab": false
  7.   },
  8.   {
  9.     "name": "首页",
  10.     "icon": "bi bi-house-door-fill",
  11.     "url": "/",
  12.     "newTab": false
  13.   },
  14.   {
  15.     "name": "归档",
  16.     "icon": "bi bi-archive-fill",
  17.     "url": "/archive.html",
  18.     "newTab": false
  19.   },
  20. {
  21.     "name": "下载",
  22.     "icon": "bi bi-cloud-arrow-down-fill",
  23.     "url": "/download.html",
  24.     "newTab": false
  25.   },
  26.   {
  27.     "name": "随机",
  28.     "icon": "bi bi-cursor-fill",
  29.     "url": "/random.html",
  30.     "newTab": false
  31.   }
  32. ]
复制代码
中间头部分类
  1. # 点击 管理 -> 分类,创建多个分类,依次点击查看地址栏中的"mid"值是多少
  2. 1 || 2 || 3 || 4
复制代码
给左下角添加发送邮件的按钮
  1. # /Jasmine/inc/components/left-sidebar.php,在最下方 ul 中添加一个li
  2. <li >
  3.   
  4.     <i ></i>
  5.   
  6. </li>
  7. # /Jasmine/assets/jasmine/jasmine.js,在下面添加这段代码
  8. // mailToMe
  9. $('#mailToMe').on('click', function () {
  10.   window.location.href = 'mailto:975942219@qq.com'; // 发送邮件
  11. })
复制代码
最下方添加访问量统计
  1. # 下载插件(https://github.com/51la/51la-Analysis-Typecho-Plugin),重命名为LaAnalysis,复制到下面路径中,开启插件
  2. cd /usr/local/lighthouse/softwares/typecho/usr/plugins
  3. # 登录网站 https://v6.51.la/ ,添加应用,复制统计ID中的掩码ID,粘贴到 typecho后台管理 -> 插件 -> 设置 -> MaskId
  4. # 登录网站 https://v6.51.la/,查看应用,点击配置,选择 数据挂件Tab,编辑完挂件样式,复制下面代码
  5. # 找到 footer.php 文件,最下方添加这段代码
  6. cd /usr/local/lighthouse/softwares/typecho/usr/themes/jasmine
  7. <p>
  8.    
  9. </p>
复制代码
最下方添加备案图标
  1. # 找到 footer.php 文件,最下方添加这段代码
  2. <p >
  3.   
  4.   <svg t="1620356167087"  viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7694" width="20" height="20"><path d="M778.24 163.84c-76.8-40.96-165.888-61.44-269.312-61.44s-192.512 20.48-269.312 61.44h-133.12l23.552 337.92c8.192 113.664 67.584 217.088 162.816 280.576l215.04 144.384 215.04-144.384c96.256-63.488 155.648-166.912 163.84-280.576l23.552-337.92H778.24z m47.104 333.824c-7.168 94.208-56.32 181.248-135.168 233.472l-181.248 120.832L327.68 731.136c-78.848-53.248-129.024-139.264-135.168-233.472L173.056 225.28h136.192v-26.624c58.368-23.552 124.928-34.816 199.68-34.816s141.312 12.288 199.68 34.816V225.28H844.8l-19.456 272.384z" fill="#0649D0" p-id="7695"></path><path d="M685.056 328.704v-46.08H455.68c2.048-4.096 6.144-9.216 11.264-15.36 5.12-7.168 9.216-12.288 11.264-15.36L419.84 240.64c-31.744 46.08-75.776 87.04-133.12 123.904 4.096 4.096 10.24 11.264 18.432 21.504l17.408 17.408c23.552-15.36 45.056-31.744 63.488-50.176 26.624 25.6 49.152 43.008 67.584 51.2-46.08 15.36-104.448 27.648-175.104 35.84 2.048 5.12 6.144 13.312 9.216 24.576 4.096 11.264 6.144 19.456 7.168 24.576l39.936-7.168v218.112H389.12V680.96h238.592v19.456h54.272V481.28H348.16c60.416-12.288 114.688-27.648 163.84-46.08 49.152 19.456 118.784 34.816 210.944 46.08 5.12-17.408 10.24-34.816 17.408-51.2-62.464-4.096-116.736-12.288-161.792-24.576 38.912-20.48 74.752-46.08 106.496-76.8z m-150.528 194.56h94.208v41.984h-94.208v-41.984z m0 78.848h94.208v41.984h-94.208v-41.984z m-144.384-78.848h94.208v41.984H390.144v-41.984z m0 78.848h94.208v41.984H390.144v-41.984zM424.96 326.656h182.272c-26.624 22.528-57.344 41.984-94.208 57.344-31.744-15.36-61.44-34.816-88.064-57.344z" fill="#0649D0" p-id="7696"></path></svg>
  5.   <a href="https://beian.miit.gov.cn/" target="_blank"><?php $this->options->icpCode(); ?></a>
  6. </p>
复制代码
添加文章浏览次数统计
  1. # 参考文档 https://www.cnblogs.com/outsrkem/p/12182275.html
  2. # 控制台 -> 编辑当前外观 -> 找到 functions.php 文件,添加代码
  3. /**
  4. * 文章添加浏览次数统计
  5. */
  6. function Postviews($archive) {
  7.     $db = Typecho_Db::get();
  8.     $cid = $archive->cid;
  9.     if (!array_key_exists('views', $db->fetchRow($db->select()->from('typecho_contents')))) {
  10.         $db->query('ALTER TABLE `'.$db->getPrefix().'typecho_contents` ADD `views` INT(10) DEFAULT 0;');
  11.     }
  12.     $exist = $db->fetchRow($db->select('views')->from('typecho_contents')->where('cid = ?', $cid))['views'];
  13.     if ($archive->is('single')) {
  14.         $cookie = Typecho_Cookie::get('contents_views');
  15.         $cookie = $cookie ? explode(',', $cookie) : array();
  16.         if (!in_array($cid, $cookie)) {
  17.             $db->query($db->update('typecho_contents')
  18.                 ->rows(array('views' => (int)$exist+1))
  19.                 ->where('cid = ?', $cid));
  20.             $exist = (int)$exist+1;
  21.             array_push($cookie, $cid);
  22.             $cookie = implode(',', $cookie);
  23.             Typecho_Cookie::set('contents_views', $cookie);
  24.         }
  25.     }
  26.     echo $exist == 0 ? ' 暂无阅读' :$exist.' 人浏览';
  27. }
  28. # 调用方式。我是用的 Jasmine 主题,所以文章浏览页面是 middle-single.php,添加代码(大约在35行左右)
  29. # 这个页面是必加的,否则不能实现计数功能。其他页面还需调用则添加同样代码
  30. # 查看所有文章概况时,也可添加上 (default-item.php)
  31. <?php Postviews($this); ?>
复制代码
添加友链功能
  1. # 添加友链独立页面 link.html,粘贴如下代码
  2. <table>
  3.    
  4.       
  5.          
  6.             
  7.                <img  src="https://cdn.jsdelivr.net/gh/hvnobug/assets/common/avatar.png" />
  8.                
  9.                   
  10.                      <a target="_blank" href="https://blog.hvnobug.com/">Emil’s blog</a>
  11.                   
  12.                   这是一个分享IT技术的小站。
  13.                
  14.             
  15.             
  16.                <img  src="https://blog-images-1301001018.cos.ap-beijing.myqcloud.com/favicon.png" />
  17.                
  18.                   
  19.                      <a target="_blank" href="https://yingwiki.top">越行勤's Blog</a>
  20.                   
  21.                   努力学习的小菜鸟
  22.                
  23.             
  24.          
  25.       
  26.    
  27. </table>
  28. # 主图外观中,左边菜单栏添加如下代码
  29. {
  30.     "name": "友链",
  31.     "icon": "bi bi-people-fill",
  32.     "url": "/link.html",
  33.     "newTab": false
  34.   }
  35. # 主图外观中,自定义样式添加如下代码
  36. .links-content {
  37.     margin-top: 1rem
  38. }
  39. .link-navigation::after {
  40.     content: " ";
  41.     display: block;
  42.     clear: both
  43. }
  44. .card {
  45.     width: 45%;
  46.     font-size: 1rem;
  47.     padding: 10px 30px;
  48.     border-radius: 4px;
  49.     transition-duration: 0.15s;
  50.     margin-bottom: 1rem;
  51.     display: flex;
  52.     border-style:none;
  53. }
  54. .card:nth-child(odd) {
  55.     float: left
  56. }
  57. .card:nth-child(even) {
  58.     /* float: right */
  59. }
  60. .card:hover {
  61.     transform: scale(1.1);
  62.     box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04)
  63. }
  64. .card a {
  65.     border: none
  66. }
  67. .card .ava {
  68.     width: 3rem !important;
  69.     height: 3rem !important;
  70.     margin: 0 !important;
  71.     margin-right: 1em !important;
  72.     border-radius: 4px
  73. }
  74. .card .card-header {
  75.     font-style: italic;
  76.     overflow: hidden;
  77.     width: 100%
  78. }
  79. .card .card-header a {
  80.     font-style: normal;
  81.     color: #2bbc8a;
  82.     font-weight: bold;
  83.     text-decoration: none
  84. }
  85. .card .card-header a:hover {
  86.     color: #d480aa;
  87.     text-decoration: none
  88. }
  89. .card .card-header .info {
  90.     font-style: normal;
  91.     color: #a3a3a3;
  92.     font-size: 14px;
  93.     min-width: 0;
  94.     overflow: hidden;
  95.     white-space: nowrap
  96. }
复制代码
  1. # 以后每次添加友链复制一份,手动修改内容
  2. # 名称 {name}
  3. # 链接 {link}
  4. # 头像 https://www.cnblogs.com/{avatarurl}
  5. # 简介 {description}
  6.    <img  src="https://www.cnblogs.com/{avatarurl}" />
  7.    
  8.       
  9.          <a target="_blank" href="https://www.cnblogs.com/{link}">{name}</a>
  10.       
  11.       {description}
  12.    
复制代码
手动配置SSL,并使用域名访问

如果在安装Typecho应用模版前,没有购买域名、备案、申请SSL,通过以下内容,手动配置。

  • 添加域名(hupifeng.cn),申请对应域名的证书,右侧下载Nginx证书
  • 将 hupifeng.cn_bundle.crt,hupifeng.cn.key 两个文件拷贝到此目录/local/lighthouse/softwares/nginx/certificates)
  • 查看 /usr/local/lighthouse/softwares/nginx/conf/include 路径下 hupifeng.cn.conf(如果没有对应域名的配置文件,手动添加)
  1. # https hupifeng.cn.conf 的配置
  2. # "hupifeng.cn"相关的五个地方需要手动修改成自己的域名
  3. server {
  4.   listen 443 ssl;
  5.   server_name hupifeng.cn;
  6.   server_tokens off;
  7.   keepalive_timeout 10;
  8.   ssl_certificate /usr/local/lighthouse/softwares/nginx/certificates/hupifeng.cn_bundle.crt;
  9.   ssl_certificate_key /usr/local/lighthouse/softwares/nginx/certificates/hupifeng.cn.key;
  10.   ssl_session_timeout 5m;
  11.   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  12.   ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
  13.   ssl_prefer_server_ciphers on;
  14.   index index.php index.html;
  15.   root /usr/local/lighthouse/softwares/typecho;
  16.   if (!-e $request_filename) {
  17.     rewrite ^(.*)$ /index.php$1 last;
  18.   }
  19.   location ~ .*\.php(\/.*)*$ {
  20.     include fastcgi.conf;
  21.     fastcgi_pass 127.0.0.1:9000;
  22.   }
  23.   # 禁 止 访 问 的 文 件 或 目 录
  24.   location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md) {
  25.     return 404;
  26.   }
  27.   location ~ \.well-known {
  28.     allow all;
  29.   }
  30.   access_log "logs//hupifeng.cn.log";
  31.   error_log "logs//hupifeng.cn.error.log";
  32. }
复制代码
设置 HTTP 请求自动跳转 HTTPS
  1. # 作用,下次打开http链接会自动转到https
  2. # 在 hupifeng.cn.conf 文件后继续追加如下内容
  3. server {
  4.     listen 80;
  5.     #请 填 写 绑 定 证 书 的 域 名
  6.     server_name hupifeng.cn;
  7.     #把 http的 域 名 请 求 转 成 https
  8.     return 301 https://$host$request_uri;
  9. }
复制代码
启用、重启nginx
  1. # 查看Nginx进程运行状态
  2. ps -ef | grep nginx
复制代码
  1. # 开启、停止、重启
  2. cd /usr/local/lighthouse/softwares/nginx/sbin
  3. ./nginx
  4. ./nginx -s stop
  5. ./nginx -s reload
复制代码
  1. # 或者一条命令重启
  2. /usr/local/lighthouse/softwares/nginx/sbin/nginx -s reload
复制代码
来源:https://www.cnblogs.com/DotNeter-Hpf/p/17420874.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具