<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="https://v1sta.xyz/wp-content/plugins/pretty-rss-feeds/xslt/pretty-feed.xsl" type="text/xsl" media="screen" ?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:media="http://search.yahoo.com/mrss/">

<channel>
	<title>2026年2月15日 &#8211; 景の域</title>
	<atom:link href="https://v1sta.xyz/2026/02/15/feed/" rel="self" type="application/rss+xml" />
	<link>https://v1sta.xyz</link>
	<description>远景的幻想空间</description>
	<lastBuildDate>Sun, 15 Feb 2026 10:52:42 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.2</generator>

<image>
	<url>https://v1sta.xyz/wp-content/uploads/2026/03/V1sta-Orb-Output512-2-60x60.png</url>
	<title>2026年2月15日 &#8211; 景の域</title>
	<link>https://v1sta.xyz</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>BookStack 搭建</title>
		<link>https://v1sta.xyz/tech/install-bookstack-with-webinoly/</link>
					<comments>https://v1sta.xyz/tech/install-bookstack-with-webinoly/#respond</comments>
		
		<dc:creator><![CDATA[域主 V1STA]]></dc:creator>
		<pubDate>Sun, 15 Feb 2026 10:44:47 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[Bookstack]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webinoly]]></category>
		<guid isPermaLink="false">https://v1sta.xyz/?p=3194</guid>

					<description><![CDATA[BookStack 是一个基于PHP Laravel的文档网站应用程序，主要特点是采用了Material De &#8230; <a href="https://v1sta.xyz/tech/install-bookstack-with-webinoly/" class="more-link">继续阅读<span class="screen-reader-text">BookStack 搭建</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p><a href="https://www.bookstackapp.com/">BookStack</a> 是一个基于PHP Laravel的文档网站应用程序，主要特点是采用了Material Design的UI外观，具有书籍（单行手册）与书架（收藏专栏）两种文档的管理概念，以及便于编辑的在线编辑器界面。</p>
<p>本文以Webinoly提供的LNMP环境，记录安装BookStack的过程。</p>
<p><span id="more-3194"></span></p>
<p>目前，安装BookStack要求的配置是：</p>
<ul>
<li><strong>命令行访问权限</strong> 并安装 <code>gnupg git unzip curl</code> 软件包</li>
<li><strong>PHP 版本</strong>&gt;= 8.2
<ul>
<li>需要在命令行执行php命令的权限</li>
<li>要求开启的PHP扩展：<code>gd, dom, iconv, mbstring, mysqlnd, openssl, pdo, pdo_mysql, tokenizer, xml, zip</code></li>
<li>可选扩展：<code>ldap</code> <em>（用于 LDAP 身份验证）</em>，<code>exif</code> <em>（用于图像处理）</em></li>
<li>对于PHP MySQL数据库驱动，首选 <code>nd</code> (Native Driver) 扩展，否则使用默认 <code>mysql</code> 驱动扩展。</li>
</ul>
</li>
<li><strong>MySQL 版本</strong>&gt;= 8.0 或<strong>MariaDB 版本</strong>&gt;= 10.6
<ul>
<li>用于存储 BookStack 内容和数据</li>
<li>建议单独创建拥有所有权限的单个数据库</li>
</ul>
</li>
<li><strong>Git</strong> 用于下载与更新</li>
<li><strong><a href="https://getcomposer.org/">Composer 版本</a></strong>&gt;= v2.2.0 用于安装和管理依赖项</li>
<li><strong>兼容 PHP 的 Web 服务器</strong> 例如 Nginx</li>
</ul>
<h2>创建网站</h2>
<p>先通过Webinoly的site命令创建PHP网站、及其对应目录与数据库。顺带配置SSL证书：</p>
<pre><code class="language-bash">site domain.ltd -php -mysql
site domain.ltd -ssl=on 
# 可选：自定义证书参数 -ssl-crt=[证书位置] -ssl-key=[证书私钥位置]
</code></pre>
<h2>手动安装</h2>
<p>前往 <code>/var/www/domain.ltd/</code> 目录，克隆BookStack的Git存储库：</p>
<pre><code class="language-bash">cd /var/www/domain.ltd/ 
git clone https://source.bookstackapp.com/bookstack.git --branch release --single-branch bookstack
</code></pre>
<p>进入bookstack目录，执行Composer安装：</p>
<pre><code class="language-bash">cd ./bookstack
composer install --no-dev
</code></pre>
<h2>基本配置</h2>
<p>基于<code>.env.example</code> 模板复制，创建 <code>.env</code> 配置文件，填入网址和数据库信息：</p>
<pre><code># Application URL
APP_URL=https://example.com

# Database details
DB_HOST=localhost
DB_DATABASE=database_database
DB_USERNAME=database_username
DB_PASSWORD=database_user_password
</code></pre>
<p><em>后续可通过命令 <code>php artisan bookstack:update-url</code> 更新应用网址也就是APP_URL</em>：</p>
<p>随后在终端执行生成应用密钥的命令：</p>
<pre><code>php artisan key:generate
</code></pre>
<h2>配置Nginx</h2>
<p>下文的Nginx配置，以book.lan域名并以HTTP（仅80端口）访问为例：</p>
<pre><code># WebinolyNginxServerStart
server {
	listen 80;
	listen [::]:80;

	server_name book.lan;

	access_log /var/log/nginx/book.lan.access.log we_log;
	error_log /var/log/nginx/book.lan.error.log;

	root /var/www/book.lan/bookstack/public;

	index index.php index.html index.htm;

	include common/auth.conf;

	# WebinolyCustom
	  location / {
	    try_files $uri $uri/ /index.php?$query_string;
	  }
  
	  location ~ \.php$ {
	    include fastcgi_params;
	    fastcgi_pass unix:/run/php/php-fpm.sock;
	  }
	# WebinolyCustomEnd

	#include common/phpx.conf;
	include common/locations.conf;
	include common/header.conf;
	include /var/www/book.lan/*-nginx.conf;
	include /etc/nginx/conf.d/*.conf.srv;
}
</code></pre>
<p><strong>分析：</strong></p>
<p>Webinoly默认的php配置 <code>include common/phpx.conf;</code><br />
不适用Bookstack要求的query_string，需要将其注释而不调用。</p>
<p>官方文档位于 <code>location ~ \.php$ {</code> 部分的配置行： <code>include snippets/fastcgi-php.conf;</code><br />
也不适用于目前Webinoly安装的配置（没有这个目录与文件）， 不然会无法调用PHP FastCGI导致白屏。</p>
<p>取而代之的是：<code>include fastcgi_params;</code><br />
后者文件实际位置位于nginx目录根。</p>
<hr />
<h2>使用</h2>
<p>此时打开浏览器即可使用 Bookstack ，创建并登入账号……</p>

<p><a href="https://v1sta.xyz/tech/install-bookstack-with-webinoly/" rel="nofollow">来源</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://v1sta.xyz/tech/install-bookstack-with-webinoly/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://v1sta.xyz/wp-content/uploads/2026/02/bookstack-hero-screenshot.webp" length="92248" type="image/webp"/><media:content url="https://v1sta.xyz/wp-content/uploads/2026/02/bookstack-hero-screenshot.webp" width="1824" height="996" medium="image" type="image/webp"/>	</item>
		<item>
		<title>MkDocs-Material 文档搭建过程</title>
		<link>https://v1sta.xyz/tech/mkdocs-material/</link>
					<comments>https://v1sta.xyz/tech/mkdocs-material/#respond</comments>
		
		<dc:creator><![CDATA[域主 V1STA]]></dc:creator>
		<pubDate>Sun, 15 Feb 2026 09:48:39 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<guid isPermaLink="false">https://v1sta.xyz/?p=3189</guid>

					<description><![CDATA[记录一下搭建MkDocs-Material的文档站过程。我的学习重心没有放在文档站上，也只会一些菜鸟的配置，因 &#8230; <a href="https://v1sta.xyz/tech/mkdocs-material/" class="more-link">继续阅读<span class="screen-reader-text">MkDocs-Material 文档搭建过程</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>记录一下搭建MkDocs-Material的文档站过程。我的学习重心没有放在文档站上，也只会一些菜鸟的配置，因此不推荐当作教程参考，仅仅用作域主事迹记载。</p>
<p>另外由于MkDocs本体未曾更新，MkDocs-Material项目组的开发成员另外推出了Zensical，后续或许是更合适的选择。主要是我有Material偏好加上编辑CSS比较方便（其实不熟悉Git我还是对于编辑同步不知所措）。</p>
<p><span id="more-3189"></span></p>
<h2>安装和使用mkdocs(material)</h2>
<p>安装 mkdocs-material 其实自带了mkdocs本体，因此只需通过pip安装即可：</p>
<pre><code>pip install mkdocs-material
</code></pre>
<p>创建项目目录：</p>
<pre><code>mkdocs new .
</code></pre>
<p>预览：</p>
<pre><code>mkdocs serve
</code></pre>
<h2>基本信息</h2>
<p>编辑 mkdocs.yml<br />
配置网站名称、URL和版权信息：</p>
<pre><code class="language-yml">site_name: 名称
site_url: https://domain.ltd
copyright: Copyright © 2026 版权信息
</code></pre>
<h2>主题与外观</h2>
<p>设置主题、语言、特性以及站点图标</p>
<pre><code class="language-yml">theme:
  name: material
  language: zh
  features:
    - search
    - htmlproofer
    - search.suggest
    - navigation.instant
    - navigation.sections
    - navigation.indexes
    - navigation.expand
    - navigation.tabs
    - header.autohide
    - tags
  favicon: ./assets/favicon.png
  logo: ./assets/sitelogo.png
</code></pre>
<p>接下来是配色板，针对系统暗色模式引用自定义样式：</p>
<pre><code class="language-yml">  palette:

    # Palette toggle for automatic mode
    - media: "(prefers-color-scheme)"
      primary: cyan
      accent: cyan
      toggle:
        icon: material/brightness-auto
        name: Default Light mode

    # Palette toggle for light mode
    - media: "(prefers-color-scheme: light)"
      primary: black
      accent: cyan
      scheme: v1sta
      toggle:
        icon: material/brightness-7
        name: Dark mode

    # Palette toggle for dark mode
    - media: "(prefers-color-scheme: dark)"
      primary: cyan
      accent: cyan
      scheme: slate
      toggle:
        icon: material/brightness-4
        name: Aurora Mode

</code></pre>
<p>引用自定义CSS文件，其文件应存放在docs目录下，引用文件时会将docs作为根目录起始。<br />
如下例的extracss，保存在 [mkdocs目录]/docs/stylesheets目录下：</p>
<pre><code class="language-yml">extra_css:
  - stylesheets/extra.css
</code></pre>
<p>创建额外的css配置文件，配置系统的暗色模式支持：</p>
<pre><code class="language-css">[data-md-color-scheme="v1sta"] {
  --md-primary-fg-color:        #22a2ac;
  --md-primary-fg-color--light: #21d9d9;
  --md-primary-fg-color--dark:  #105474;
  --md-accent-fg-color:#00b0c7;
  --md-typeset-a-color:#00b0c7;
  
  .md-header {
      background-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 1px, rgba(200, 200, 200, 1) 1.2px, rgba(126, 126, 126, 1) 2px, rgba(64, 64, 64, 1) 24px, rgba(25, 25, 25, 1) 24px, rgba(0, 0, 0, 1) 48px, rgba(0, 0, 0, 1) 50px, rgba(20, 20, 20, 1) 100%);;   
  }
  .md-tabs {
    background-color: black;
  }
}
[data-md-color-scheme="slate"] {
  --md-primary-fg-color:        #22a2ac;
  --md-primary-fg-color--light: #00e8e8;
  --md-primary-fg-color--dark:  #105474;
  --md-default-bg-color: #051824;
  --md-code-bg-color: #12252f;
  --md-accent-fg-color:#6de6e6;
  --md-typeset-a-color:#46c8da;
  
  .md-header {
      background-image: linear-gradient(180deg, rgba(0, 0, 0, 1) 1px, rgba(200, 200, 200, 1) 1.2px, rgba(126, 126, 126, 1) 2px, rgba(64, 64, 64, 1) 24px, rgba(25, 25, 25, 1) 24px, rgba(0, 0, 0, 1) 48px, rgba(0, 0, 0, 1) 50px, rgba(20, 20, 20, 1) 100%);;   
      background-blend-mode: luminosity;    
  }
  .md-tabs {
    background-color: black;
  }
}

</code></pre>
<h2>插件</h2>
<p>调用额外插件：</p>
<pre><code class="language-yml">plugins:
  - search
  - ezlinks
  - blog
</code></pre>
<h3>i18n翻译插件</h3>
<p>安装i18n插件：</p>
<pre><code class="language-bash">pip install mkdocs-static-i18n
</code></pre>
<p>在plugins部分添加翻译的配置项，例如导航部分的自定义术语：</p>
<pre><code class="language-yml">plugins:
...
  - i18n:
      default_language: zh
      docs_structure: folder
      languages:
        - locale: zh
          default: true
          name: 中文（简体）
          build: true
          nav_translations:
            Command: 命令
</code></pre>
<hr />
<p>未完待续……</p>
<p>一句老话：做菜容易备菜难，mkdocs的配置文件其实很简洁，根据<a href="https://squidfunk.github.io/mkdocs-material/setup/">官方手册</a>来都能学会；但更难的问题还是在于如何同步文档。</p>
<p>需要先在本地同步源目录与docs目录的内容，并在docs下使用 <code>mkdocs build</code> 命令构建生成site目录，再就是应该如何把site目录跟VPS上的静态站同步。并且，这一切应该有一种自动化或是控制面板的方式执行。</p>
<p>我真得学一下git和svn的技术。</p>
<h2>其他参考：</h2>
<p><a href="https://qiita.com/tomoten/items/aa25af4deba5817202fe">https://qiita.com/tomoten/items/aa25af4deba5817202fe</a></p>
<p><a href="https://qiita.com/tomoten/items/26706f2eafe84f70b1a6">https://qiita.com/tomoten/items/26706f2eafe84f70b1a6</a></p>
<p><a href="https://github.com/wdk-docs/nest-docs">https://github.com/wdk-docs/nest-docs</a></p>
<p><a href="https://zhuanlan.zhihu.com/p/383582472">https://zhuanlan.zhihu.com/p/383582472</a></p>
<p><a href="https://yiruru.com/6%E4%BB%A3%E7%A0%81%E5%A6%82%E8%AF%97/Mkdocs%E7%AE%80%E5%8D%95%E9%83%A8%E7%BD%B2/#22">https://yiruru.com/6%E4%BB%A3%E7%A0%81%E5%A6%82%E8%AF%97/Mkdocs%E7%AE%80%E5%8D%95%E9%83%A8%E7%BD%B2/#22</a></p>

<p><a href="https://v1sta.xyz/tech/mkdocs-material/" rel="nofollow">来源</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://v1sta.xyz/tech/mkdocs-material/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://v1sta.xyz/wp-content/uploads/2026/03/V1sta-Orb-Output512-2.png" length="199214" type="image/png"/><media:content url="https://v1sta.xyz/wp-content/uploads/2026/03/V1sta-Orb-Output512-2.png" width="512" height="512" medium="image" type="image/png"/>	</item>
		<item>
		<title>CCVPS后续情报，以及对未来的恐慌</title>
		<link>https://v1sta.xyz/think/talk-feature-2026/</link>
					<comments>https://v1sta.xyz/think/talk-feature-2026/#respond</comments>
		
		<dc:creator><![CDATA[域主 V1STA]]></dc:creator>
		<pubDate>Sat, 14 Feb 2026 18:30:07 +0000</pubDate>
				<category><![CDATA[日常]]></category>
		<category><![CDATA[随想]]></category>
		<guid isPermaLink="false">https://v1sta.xyz/?p=3185</guid>

					<description><![CDATA[各大论坛和博客新闻站陆续报道Cloudcone的VPS的战后重建工作， 好奇去后台发现他们的VPS机房已经重建 &#8230; <a href="https://v1sta.xyz/think/talk-feature-2026/" class="more-link">继续阅读<span class="screen-reader-text">CCVPS后续情报，以及对未来的恐慌</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">各大论坛和博客新闻站陆续报道Cloudcone的VPS的战后重建工作，</p>



<p class="wp-block-paragraph">好奇去后台发现他们的VPS机房已经重建地差不多了，<br>给了一些聊胜于无的补偿——只有折合不到七块钱，除了让我感觉有点吝啬之外，我很奇怪为什么是这个数。</p>



<p class="wp-block-paragraph">网上查了一下，CC给每位客户都提供了两个月的等效费用的补偿金，而我的VPS套餐是在优惠时期入手的，而且年付的价格、便宜到甚至不足一个中档套餐的月付费用，<br>其实能陪五年多没有跑路已经是摩西之奇迹，这建立在双方的信任之上。</p>



<p class="wp-block-paragraph">不过对于年付来说，确实是聊胜于无就是了。</p>



<p class="wp-block-paragraph">大概也是告一段落了。不过，现实并没有告一段落。</p>



<span id="more-3185"></span>



<hr class="wp-block-separator has-alpha-channel-opacity is-style-wide"/>



<p class="wp-block-paragraph">随之而来的是令人恐慌的台海战争，</p>



<p class="wp-block-paragraph">其实我现在完全不关心台湾统一的看法——我又不是闽台人，我自己因为身份受到歧视的例子也不少。</p>



<p class="wp-block-paragraph">对我来说什么时候辽宁省沈大两派（加上鞍山吉吉国）先相互认同、或者肯给烟大两地修个大桥再说吧，再不济，先承认周边县市的认同感——而这是难以达到的……</p>



<p class="wp-block-paragraph">现在的新闻分析除了造船厂句句不提，<br>因为青泥洼这片地方随时可以被替代，<br>怕不是和老檀一样已经没有价值了。咳咳，说多了。<br>不过，这和本题有什么关系呢？</p>



<p class="wp-block-paragraph">我更担心的是，一旦开战，<br>无论是内部防火墙限制、还是外部安保阻拦，<br>这都不是什么好兆头。</p>



<p class="wp-block-paragraph">参考露西亚的前嫌，一般民众基于SWIFT的国际消费也被受限。<br>也就是说，如果黑暗的时代真的到来，即使服务商不跑路，也有可能会被禁止/调查。<br>本来，商家就是吃风险饭赚钱的。</p>



<p class="wp-block-paragraph">即便在中国仍有民众倡导和平谈判，也是问答无用的，现实不是日本特摄和机战萝卜。而且，在中国还会进一步受到那些保守者的精神嘲讽——外国的月亮不圆。<br>那些人，不会同情，却手握社会的话语权。<br>或者，受到打击而无法在振作起来的重度科技依赖者。</p>



<p class="wp-block-paragraph">会变成北朝吗？</p>



<p class="wp-block-paragraph">最近Chrome频繁爆内存甚至出现了“您被禁止访问互联网”的报错，<br>当然，这只是客户端内存泄露导致网络栈崩溃的纯技术问题。<br>但是这也使我警觉，一旦栖息在自由派系的民众，真的被禁止访问互联网，又该何去何从呢？</p>



<p class="wp-block-paragraph">在技术上能做的，也只是本地保存一份服务器备份，获得慰藉而已。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p class="wp-block-paragraph">时至如今，台积电已经选择在日本建厂以转移供应商风险。<br>本地备份，实际上也是类似的道理，但将这种想法传授出去，在中国国内发布绝对是不受欢迎的。“能用为什么要折腾？”</p>



<p class="wp-block-paragraph">最坏的情况是……<br>计算机工业和信息化设备管理所、计算机驾驶证、禁机令……一旦落实，远远比忍者杀手还要恐怖百倍。所以，请当成某种妄想症（笑）</p>



<p class="wp-block-paragraph">无论是现实还是网络社会都有大大小小的圈子、<br>出现那些想要滥用威权的帝王。不过，这不是我该讨论的。<br>该去玩人狼村二周目了。</p>



<p class="wp-block-paragraph">煽风点火的新闻令我恐慌。我必须谨慎对待下一个工作和社交机会。</p>

<p><a href="https://v1sta.xyz/think/talk-feature-2026/" rel="nofollow">来源</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://v1sta.xyz/think/talk-feature-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://v1sta.xyz/wp-content/uploads/2026/03/V1sta-Orb-Output512-2.png" length="199214" type="image/png"/><media:content url="https://v1sta.xyz/wp-content/uploads/2026/03/V1sta-Orb-Output512-2.png" width="512" height="512" medium="image" type="image/png"/>	</item>
	</channel>
</rss>
