hexo/posts/1adc954a.html

794 lines
33 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN" data-default-color-scheme=auto>
<head>
<meta charset="UTF-8">
<link rel="apple-touch-icon" sizes="76x76" href="/img/logo.png">
<link rel="icon" href="/img/logo.png">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, shrink-to-fit=no">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">
<meta name="theme-color" content="#2f4154">
<meta name="author" content="浪子">
<meta name="keywords" content="DIY,黑苹果,分享,自由">
<meta name="description" content="想把xiunobbs数据转换成SForum,由于最新版本的SForum没有转换工具支持于是采用Sforum v2.2.2测试 测试环境 Ubuntu 22.0.4 php8.0 mariadb10.6 composer redis nginx or apache 测试程序sforum v2.2.2 xiuno2sforum v2.2.2 PHP安装PPA 源需要使用 PPA 源安装: 12sud">
<meta property="og:type" content="article">
<meta property="og:title" content="测试xiuno2Sforum中遇到的各种问题">
<meta property="og:url" content="https://blog.jkjoy.cn/posts/1adc954a.html">
<meta property="og:site_name" content="提剑追梦">
<meta property="og:description" content="想把xiunobbs数据转换成SForum,由于最新版本的SForum没有转换工具支持于是采用Sforum v2.2.2测试 测试环境 Ubuntu 22.0.4 php8.0 mariadb10.6 composer redis nginx or apache 测试程序sforum v2.2.2 xiuno2sforum v2.2.2 PHP安装PPA 源需要使用 PPA 源安装: 12sud">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2023-10-06T11:55:41.000Z">
<meta property="article:modified_time" content="2024-05-09T01:19:01.621Z">
<meta property="article:author" content="浪子">
<meta property="article:tag" content="SForum">
<meta name="twitter:card" content="summary_large_image">
<meta name="referrer" content="no-referrer-when-downgrade">
<title>测试xiuno2Sforum中遇到的各种问题 - 提剑追梦</title>
<link rel="stylesheet" href="https://lib.baomitu.com/twitter-bootstrap/4.6.1/css/bootstrap.min.css" />
<link rel="stylesheet" href="https://lib.baomitu.com/github-markdown-css/4.0.0/github-markdown.min.css" />
<link rel="stylesheet" href="https://lib.baomitu.com/hint.css/2.7.0/hint.min.css" />
<link rel="stylesheet" href="https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.css" />
<!-- 主题依赖的图标库,不要自行修改 -->
<!-- Do not modify the link that theme dependent icons -->
<link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_hj8rtnfg7um.css">
<link rel="stylesheet" href="//at.alicdn.com/t/c/font_4267870_i7km8ozxnbr.css">
<link rel="stylesheet" href="/css/main.css" />
<link id="highlight-css" rel="stylesheet" href="/css/highlight.css" />
<link id="highlight-css-dark" rel="stylesheet" href="/css/highlight-dark.css" />
<link rel="stylesheet" href="/css/mac.css">
<script id="fluid-configs">
var Fluid = window.Fluid || {};
Fluid.ctx = Object.assign({}, Fluid.ctx)
var CONFIG = {"hostname":"blog.jkjoy.cn","root":"/","version":"1.9.7","typing":{"enable":true,"typeSpeed":70,"cursorChar":"💡","loop":false,"scope":[]},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"left","visible":"hover","icon":" # "},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"code_language":{"enable":true,"default":"TEXT"},"copy_btn":true,"image_caption":{"enable":true},"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"placement":"right","headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":0},"lazyload":{"enable":true,"loading_img":"/img/loading.gif","onlypost":false,"offset_factor":2},"web_analytics":{"enable":false,"follow_dnt":false,"baidu":"9a59c9b2baa8e43c367f559cd7d9b86c","google":{"measurement_id":"G-EL6EBC27ES"},"tencent":{"sid":null,"cid":null},"woyaola":null,"cnzz":null,"leancloud":{"app_id":"qkYaRmrTvy9Og9bRIt4YTIiC-MdYXbMMI","app_key":"BnyRqKMFP7xp6xF0OTU7rC40","server_url":null,"path":"window.location.pathname","ignore_local":false}},"search_path":"/local-search.xml","include_content_in_search":true};
if (CONFIG.web_analytics.follow_dnt) {
var dntVal = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
Fluid.ctx.dnt = dntVal && (dntVal.startsWith('1') || dntVal.startsWith('yes') || dntVal.startsWith('on'));
}
</script>
<script src="/js/utils.js" ></script>
<script src="/js/color-schema.js" ></script>
<meta name="generator" content="Hexo 6.3.0"><link rel="alternate" href="/atom.xml" title="提剑追梦" type="application/atom+xml">
</head>
<body>
<header>
<div class="header-inner" style="height: 70vh;">
<nav id="navbar" class="navbar fixed-top navbar-expand-lg navbar-dark scrolling-navbar">
<div class="container">
<a class="navbar-brand" href="/">
<strong>提剑追梦</strong>
</a>
<button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
data-target="#navbarSupportedContent"
aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
<div class="animated-icon"><span></span><span></span><span></span></div>
</button>
<!-- Collapsible content -->
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<ul class="navbar-nav ml-auto text-center">
<li class="nav-item">
<a class="nav-link" href="/" target="_self">
<i class="iconfont icon-home"></i>
<span>首页</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/archives/" target="_self">
<i class="iconfont icon-archive"></i>
<span>归档</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/categories/" target="_self">
<i class="iconfont icon-categories"></i>
<span>分类</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/tags/" target="_self">
<i class="iconfont icon-tags"></i>
<span>标签</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/links/" target="_self">
<i class="iconfont icon-link1"></i>
<span>友链</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/fcircle/" target="_self">
<i class="iconfont icon-friend"></i>
<span>圈子</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/memos/" target="_self">
<i class="iconfont icon-Chat"></i>
<span>说说</span>
</a>
</li>
<li class="nav-item">
<a class="nav-link" href="/about/" target="_self">
<i class="iconfont icon-aboutme"></i>
<span>关于</span>
</a>
</li>
<li class="nav-item" id="search-btn">
<a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search">
<i class="iconfont icon-search"></i>
</a>
</li>
<li class="nav-item" id="color-toggle-btn">
<a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle">
<i class="iconfont icon-dark" id="color-toggle-icon"></i>
</a>
</li>
</ul>
</div>
</div>
</nav>
<div id="banner" class="banner" parallax=true
style="background: url('/img/default.png') no-repeat center center; background-size: cover;">
<div class="full-bg-img">
<div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
<div class="banner-text text-center fade-in-up">
<div class="h2">
<span id="subtitle" data-typed-text="测试xiuno2Sforum中遇到的各种问题"></span>
</div>
<div class="mt-3">
<span class="post-meta">
<i class="iconfont icon-date-fill" aria-hidden="true"></i>
<time datetime="2023-10-06 11:55" pubdate>
2023年10月6日 中午
</time>
</span>
</div>
<div class="mt-1">
<span class="post-meta mr-2">
<i class="iconfont icon-chart"></i>
405 字
</span>
<span class="post-meta mr-2">
<i class="iconfont icon-clock-fill"></i>
4 分钟
</span>
<span id="busuanzi_container_page_pv" style="display: none">
<i class="iconfont icon-eye" aria-hidden="true"></i>
<span id="busuanzi_value_page_pv"></span>
</span>
</div>
</div>
<div class="scroll-down-bar">
<i class="iconfont icon-arrowdown"></i>
</div>
</div>
</div>
</div>
</div>
</header>
<main>
<div class="container-fluid nopadding-x">
<div class="row nomargin-x">
<div class="side-col d-none d-lg-block col-lg-2">
</div>
<div class="col-lg-8 nopadding-x-md">
<div class="container nopadding-x-md" id="board-ctn">
<div id="board">
<article class="post-content mx-auto">
<h1 id="seo-header">测试xiuno2Sforum中遇到的各种问题</h1>
<p id="updated-time" class="note note-info" style="">
本文最后更新于 2024年5月9日 凌晨
</p>
<div class="markdown-body">
<p>想把<code>xiuno</code>bbs数据转换成<code>SForum</code>,由于最新版本的<code>SForum</code>没有转换工具支持<br>于是采用<code>Sforum</code> v2.2.2测试</p>
<h1 id="测试环境"><a href="#测试环境" class="headerlink" title="测试环境"></a>测试环境</h1><ul>
<li>Ubuntu 22.0.4</li>
<li>php8.0</li>
<li>mariadb10.6</li>
<li>composer</li>
<li>redis</li>
<li>nginx or apache</li>
</ul>
<h2 id="测试程序"><a href="#测试程序" class="headerlink" title="测试程序"></a>测试程序</h2><p>sforum v2.2.2</p>
<p>xiuno2sforum v2.2.2</p>
<h2 id="PHP"><a href="#PHP" class="headerlink" title="PHP"></a>PHP</h2><h3 id="安装PPA-源"><a href="#安装PPA-源" class="headerlink" title="安装PPA 源"></a>安装PPA 源</h3><p>需要使用 PPA 源安装:</p>
<figure class="highlight smali"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><code class="hljs smali">sudo<span class="hljs-built_in"> add-apt-repository </span>ppa:ondrej/php<br>sudo apt-get update<br></code></pre></td></tr></table></figure>
<h4 id="安装php8-0"><a href="#安装php8-0" class="headerlink" title="安装php8.0"></a>安装php8.0</h4><figure class="highlight apache"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs apache"><span class="hljs-attribute">apt</span> install php8.<span class="hljs-number">0</span><br></code></pre></td></tr></table></figure>
<figure class="highlight apache"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs apache"><span class="hljs-attribute">apt</span> install -y php8.<span class="hljs-number">0</span>-dev<br></code></pre></td></tr></table></figure>
<h4 id="安装拓展"><a href="#安装拓展" class="headerlink" title="安装拓展"></a>安装拓展</h4><figure class="highlight apache"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs apache"><span class="hljs-attribute">apt</span> install php8.<span class="hljs-number">0</span>-curl php8.<span class="hljs-number">0</span>-xml php8.<span class="hljs-number">0</span>-gd php8.<span class="hljs-number">0</span>-mbstring php8.<span class="hljs-number">0</span>-redis php8.<span class="hljs-number">0</span>-swoole php8.<span class="hljs-number">0</span>-bcmath<br></code></pre></td></tr></table></figure>
<h3 id="查看php版本"><a href="#查看php版本" class="headerlink" title="查看php版本"></a>查看php版本</h3><figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs ebnf"><span class="hljs-attribute">php -v</span><br></code></pre></td></tr></table></figure>
<p>查看拓展</p>
<figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs ebnf"><span class="hljs-attribute">php -m</span><br></code></pre></td></tr></table></figure>
<h3 id="切换PHP版本"><a href="#切换PHP版本" class="headerlink" title="切换PHP版本"></a>切换PHP版本</h3><figure class="highlight sql"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs sql"><span class="hljs-keyword">update</span><span class="hljs-operator">-</span>alternatives <span class="hljs-comment">--config php</span><br></code></pre></td></tr></table></figure>
<p>切换到</p>
<figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs awk">update-alternatives --set php <span class="hljs-regexp">/usr/</span>bin/php8.<span class="hljs-number">0</span><br></code></pre></td></tr></table></figure>
<h3 id="PHP-扩展-ZipArchive"><a href="#PHP-扩展-ZipArchive" class="headerlink" title="PHP 扩展 ZipArchive"></a>PHP 扩展 ZipArchive</h3><p>上传压缩包提示500错误,打开日志发现是缺少组件</p>
<h4 id="服务器上存在多个php版本手动指定php-config文件"><a href="#服务器上存在多个php版本手动指定php-config文件" class="headerlink" title="服务器上存在多个php版本手动指定php-config文件"></a>服务器上存在多个php版本手动指定php-config文件</h4><figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs awk">.<span class="hljs-regexp">/configure --with-php-config=/</span>www<span class="hljs-regexp">/server/</span>php<span class="hljs-regexp">/73/</span>bin/php-config<br></code></pre></td></tr></table></figure>
<h4 id="安装ZipArchive扩展"><a href="#安装ZipArchive扩展" class="headerlink" title="安装ZipArchive扩展"></a>安装ZipArchive扩展</h4><h5 id="编译ZipArchive"><a href="#编译ZipArchive" class="headerlink" title="编译ZipArchive"></a>编译<code>ZipArchive</code></h5><figure class="highlight stata"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br></pre></td><td class="code"><pre><code class="hljs stata"><span class="hljs-keyword">cd</span> ~<br>wget http:<span class="hljs-comment">//pecl.php.net/get/zip</span><br>tar -zxvf <span class="hljs-keyword">zip</span><br><span class="hljs-keyword">cd</span> <span class="hljs-keyword">zip</span>-x.x.x<br>phpize<br>./configure<br>make<br>make install<br></code></pre></td></tr></table></figure>
<h4 id="成功安装zip之后会返回一个路径"><a href="#成功安装zip之后会返回一个路径" class="headerlink" title="成功安装zip之后会返回一个路径"></a>成功安装zip之后会返回一个路径</h4><p>类似</p>
<figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs awk">Installing shared extensions: <span class="hljs-regexp">/www/</span>server<span class="hljs-regexp">/php/</span><span class="hljs-number">8</span><span class="hljs-regexp">/lib/</span>php<span class="hljs-regexp">/extensions/</span>no-debug-non-zts-<span class="hljs-number">20180731</span>/<br></code></pre></td></tr></table></figure>
<h4 id="加到php-ini中"><a href="#加到php-ini中" class="headerlink" title="加到php.ini中"></a>加到php.ini中</h4><figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs awk">extension=<span class="hljs-regexp">/www/</span>server<span class="hljs-regexp">/php/</span><span class="hljs-number">8</span><span class="hljs-regexp">/lib/</span>php<span class="hljs-regexp">/extensions/</span>no-debug-non-zts-<span class="hljs-number">20180731</span>/zip.so<br></code></pre></td></tr></table></figure>
<p><br><code>php.ini</code>中添加</p>
<figure class="highlight abnf"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs abnf"><span class="hljs-attribute">extension</span><span class="hljs-operator">=</span>zip.so<br></code></pre></td></tr></table></figure>
<h4 id="提示checking-for-libzip-not-found"><a href="#提示checking-for-libzip-not-found" class="headerlink" title="提示checking for libzip... not found"></a>提示<code>checking for libzip... not found</code></h4><h5 id="编译libzip"><a href="#编译libzip" class="headerlink" title="编译libzip"></a>编译<code>libzip</code></h5><figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br></pre></td><td class="code"><pre><code class="hljs awk">wget https:<span class="hljs-regexp">//</span>libzip.org<span class="hljs-regexp">/download/</span>libzip-<span class="hljs-number">1.3</span>.<span class="hljs-number">2</span>.tar.gz<br>tar xvf libzip-<span class="hljs-number">1.3</span>.<span class="hljs-number">2</span>.tar.gz<br>cd libzip-<span class="hljs-number">1.3</span>.<span class="hljs-number">2</span><br>./configure<br>make<br>make install<br>export PKG_CONFIG_PATH=<span class="hljs-string">&quot;/usr/local/lib/pkgconfig/&quot;</span> <br></code></pre></td></tr></table></figure>
<h3 id="在使用插件转换数据中一直报错无法使用的class-medoo"><a href="#在使用插件转换数据中一直报错无法使用的class-medoo" class="headerlink" title="在使用插件转换数据中一直报错无法使用的class medoo"></a>在使用插件转换数据中一直报错无法使用的class medoo</h3><p>所以使用cpmposer安装</p>
<figure class="highlight armasm"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs armasm"><span class="hljs-symbol">composer</span> <span class="hljs-meta">require</span> catfan/Medoo<br></code></pre></td></tr></table></figure>
<h2 id="mariadb"><a href="#mariadb" class="headerlink" title="mariadb"></a>mariadb</h2><h3 id="创建数据库"><a href="#创建数据库" class="headerlink" title="创建数据库"></a>创建数据库</h3><p><a target="_blank" rel="noopener" href="https://www.jkjoy.cn/2023/dfdf0a76.html">Mariadb创建数据库、用户及授权</a></p>
<h3 id="数据导入"><a href="#数据导入" class="headerlink" title="数据导入"></a>数据导入</h3><p>导入sql备份文件</p>
<p>进入数据库</p>
<figure class="highlight css"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs css">mysql -uroot -<span class="hljs-selector-tag">p</span><br></code></pre></td></tr></table></figure>
<p>使用数据库bbs</p>
<figure class="highlight actionscript"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs actionscript"><span class="hljs-keyword">use</span> bbs<br></code></pre></td></tr></table></figure>
<p>导入sql路径</p>
<figure class="highlight gradle"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs gradle"><span class="hljs-keyword">source</span> <span class="hljs-regexp">/root/</span>bbs.sql;<br></code></pre></td></tr></table></figure>
<h2 id="安装-Redis"><a href="#安装-Redis" class="headerlink" title="安装 Redis"></a>安装 Redis</h2><figure class="highlight axapta"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs axapta">apt install redis-<span class="hljs-keyword">server</span><br></code></pre></td></tr></table></figure>
<h2 id="安装-Nginx"><a href="#安装-Nginx" class="headerlink" title="安装 Nginx"></a>安装 Nginx</h2><figure class="highlight cmake"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs cmake">apt <span class="hljs-keyword">install</span> nginx<br></code></pre></td></tr></table></figure>
<h2 id="安装composer"><a href="#安装composer" class="headerlink" title="安装composer"></a>安装composer</h2><figure class="highlight awk"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br></pre></td><td class="code"><pre><code class="hljs awk">apt install git zip unzip<br>curl -sS https:<span class="hljs-regexp">//g</span>etcomposer.org/installer | php<br>mv composer.phar <span class="hljs-regexp">/usr/</span>local<span class="hljs-regexp">/bin/</span>composer<br>chmod +x <span class="hljs-regexp">/usr/</span>local<span class="hljs-regexp">/bin/</span>composer<br></code></pre></td></tr></table></figure>
<h2 id="安装SForum-v2-2-2"><a href="#安装SForum-v2-2-2" class="headerlink" title="安装SForum v2.2.2"></a>安装SForum v2.2.2</h2><figure class="highlight dsconfig"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs dsconfig"><span class="hljs-string">composer</span> <span class="hljs-built_in">create-project</span> <span class="hljs-string">zhuchunshu</span>/<span class="hljs-string">sforum</span>=<span class="hljs-string">v2</span>.<span class="hljs-string">2</span>.<span class="hljs-string">2</span> <span class="hljs-string">sforum</span><br></code></pre></td></tr></table></figure>
<p>进入安装目录,</p>
<figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs bash"><span class="hljs-built_in">cd</span> sforum<br></code></pre></td></tr></table></figure>
<p>按照提示,连续执行命令即可完成安装(启动服务也是此命令):</p>
<figure class="highlight ebnf"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><code class="hljs ebnf"><span class="hljs-attribute">php CodeFec CodeFec</span><br></code></pre></td></tr></table></figure>
</div>
<hr/>
<div>
<div class="post-metas my-3">
<div class="post-meta mr-3 d-flex align-items-center">
<i class="iconfont icon-category"></i>
<span class="category-chains">
<span class="category-chain">
<a href="/categories/%E5%88%86%E4%BA%AB/" class="category-chain-item">分享</a>
</span>
</span>
</div>
<div class="post-meta">
<i class="iconfont icon-tags"></i>
<a href="/tags/SForum/" class="print-no-link">#SForum</a>
</div>
</div>
<div class="post-prevnext my-3">
<article class="post-prev col-6">
<a href="/posts/d29d6713.html" title="快速部署misskey实例">
<i class="iconfont icon-arrowleft"></i>
<span class="hidden-mobile">快速部署misskey实例</span>
<span class="visible-mobile">上一篇</span>
</a>
</article>
<article class="post-next col-6">
<a href="/posts/dfdf0a76.html" title="Mariadb创建数据库、用户及授权">
<span class="hidden-mobile">Mariadb创建数据库、用户及授权</span>
<span class="visible-mobile">下一篇</span>
<i class="iconfont icon-arrowright"></i>
</a>
</article>
</div>
</div>
<article id="comments" lazyload>
<div id="twikoo"></div>
<script type="text/javascript">
Fluid.utils.loadComments('#comments', function() {
Fluid.utils.createScript('https://unpkg.com/twikoo/dist/twikoo.all.min.js', function() {
var options = Object.assign(
{"envId":"https://t.jkjoy.cn","region":null,"path":"window.location.pathname"},
{
el: '#twikoo',
path: 'window.location.pathname',
onCommentLoaded: function() {
Fluid.utils.listenDOMLoaded(function() {
var imgSelector = '#twikoo .tk-content img:not(.tk-owo-emotion)';
Fluid.plugins.imageCaption(imgSelector);
Fluid.plugins.fancyBox(imgSelector);
});
}
}
)
twikoo.init(options)
});
});
</script>
<noscript>Please enable JavaScript to view the comments</noscript>
</article>
</article>
</div>
</div>
</div>
<div class="side-col d-none d-lg-block col-lg-2">
<aside class="sidebar" style="margin-left: -1rem">
<div id="toc">
<p class="toc-header">
<i class="iconfont icon-list"></i>
<span>目录</span>
</p>
<div class="toc-body" id="toc-body"></div>
</div>
</aside>
</div>
</div>
</div>
<a id="scroll-top-button" aria-label="TOP" href="#" role="button">
<i class="iconfont icon-arrowup" aria-hidden="true"></i>
</a>
<div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
<div class="modal-content">
<div class="modal-header text-center">
<h4 class="modal-title w-100 font-weight-bold">搜索</h4>
<button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body mx-3">
<div class="md-form mb-5">
<input type="text" id="local-search-input" class="form-control validate">
<label data-error="x" data-success="v" for="local-search-input">关键词</label>
</div>
<div class="list-group" id="local-search-result"></div>
</div>
</div>
</div>
</div>
</main>
<footer>
<div class="footer-inner">
<div class="footer-content">
<link rel="stylesheet" href="https://cdnjs.sgcd.net/lxgw-wenkai-screen-webfont/lxgwwenkaigbscreen.css" /> <style> body { font-family: "LXGW WenKai Screen", sans-serif; } </style> <a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a> <br> PowerBy 浪子 ©2024
</div>
<div class="statistics">
<span id="busuanzi_container_site_pv" style="display: none">
总访问量
<span id="busuanzi_value_site_pv"></span>
</span>
<span id="busuanzi_container_site_uv" style="display: none">
总访客数
<span id="busuanzi_value_site_uv"></span>
</span>
</div>
<!-- 备案信息 ICP for China -->
<div class="beian">
<span>
<a href="http://beian.miit.gov.cn/" target="_blank" rel="nofollow noopener">
鄂ICP备16022970号-16
</a>
</span>
</div>
</div>
</footer>
<!-- Scripts -->
<script src="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.js" ></script>
<link rel="stylesheet" href="https://lib.baomitu.com/nprogress/0.2.0/nprogress.min.css" />
<script>
NProgress.configure({"showSpinner":false,"trickleSpeed":100})
NProgress.start()
window.addEventListener('load', function() {
NProgress.done();
})
</script>
<script src="https://lib.baomitu.com/jquery/3.6.4/jquery.min.js" ></script>
<script src="https://lib.baomitu.com/twitter-bootstrap/4.6.1/js/bootstrap.min.js" ></script>
<script src="/js/events.js" ></script>
<script src="/js/plugins.js" ></script>
<script src="https://lib.baomitu.com/typed.js/2.0.12/typed.min.js" ></script>
<script>
(function (window, document) {
var typing = Fluid.plugins.typing;
var subtitle = document.getElementById('subtitle');
if (!subtitle || !typing) {
return;
}
var text = subtitle.getAttribute('data-typed-text');
typing(text);
})(window, document);
</script>
<script src="/js/img-lazyload.js" ></script>
<script>
Fluid.utils.createScript('https://lib.baomitu.com/tocbot/4.20.1/tocbot.min.js', function() {
var toc = jQuery('#toc');
if (toc.length === 0 || !window.tocbot) { return; }
var boardCtn = jQuery('#board-ctn');
var boardTop = boardCtn.offset().top;
window.tocbot.init(Object.assign({
tocSelector : '#toc-body',
contentSelector : '.markdown-body',
linkClass : 'tocbot-link',
activeLinkClass : 'tocbot-active-link',
listClass : 'tocbot-list',
isCollapsedClass: 'tocbot-is-collapsed',
collapsibleClass: 'tocbot-is-collapsible',
scrollSmooth : true,
includeTitleTags: true,
headingsOffset : -boardTop,
}, CONFIG.toc));
if (toc.find('.toc-list-item').length > 0) {
toc.css('visibility', 'visible');
}
Fluid.events.registerRefreshCallback(function() {
if ('tocbot' in window) {
tocbot.refresh();
var toc = jQuery('#toc');
if (toc.length === 0 || !tocbot) {
return;
}
if (toc.find('.toc-list-item').length > 0) {
toc.css('visibility', 'visible');
}
}
});
});
</script>
<script src=https://lib.baomitu.com/clipboard.js/2.0.11/clipboard.min.js></script>
<script>Fluid.plugins.codeWidget();</script>
<script>
Fluid.utils.createScript('https://lib.baomitu.com/anchor-js/4.3.1/anchor.min.js', function() {
window.anchors.options = {
placement: CONFIG.anchorjs.placement,
visible : CONFIG.anchorjs.visible
};
if (CONFIG.anchorjs.icon) {
window.anchors.options.icon = CONFIG.anchorjs.icon;
}
var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
var res = [];
for (var item of el) {
res.push('.markdown-body > ' + item.trim());
}
if (CONFIG.anchorjs.placement === 'left') {
window.anchors.options.class = 'anchorjs-link-left';
}
window.anchors.add(res.join(', '));
Fluid.events.registerRefreshCallback(function() {
if ('anchors' in window) {
anchors.removeAll();
var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
var res = [];
for (var item of el) {
res.push('.markdown-body > ' + item.trim());
}
if (CONFIG.anchorjs.placement === 'left') {
anchors.options.class = 'anchorjs-link-left';
}
anchors.add(res.join(', '));
}
});
});
</script>
<script>
Fluid.utils.createScript('https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.js', function() {
Fluid.plugins.fancyBox();
});
</script>
<script>Fluid.plugins.imageCaption();</script>
<script src="/js/local-search.js" ></script>
<script defer src="https://busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js" ></script>
<!-- 主题的启动项,将它保持在最底部 -->
<!-- the boot of the theme, keep it at the bottom -->
<script src="/js/boot.js" ></script>
<noscript>
<div class="noscript-warning">博客在允许 JavaScript 运行的环境下浏览效果更佳</div>
</noscript>
</body>
</html>