<?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>h5ai &#8211; 景の域</title>
	<atom:link href="https://v1sta.xyz/tag/h5ai/feed/" rel="self" type="application/rss+xml" />
	<link>https://v1sta.xyz</link>
	<description>远景的幻想空间</description>
	<lastBuildDate>Sat, 31 Jan 2026 20:16:24 +0000</lastBuildDate>
	<language>zh-Hans</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://v1sta.xyz/wp-content/uploads/2026/03/V1sta-Orb-Output512-2-60x60.png</url>
	<title>h5ai &#8211; 景の域</title>
	<link>https://v1sta.xyz</link>
	<width>32</width>
	<height>32</height>
</image> 
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://v1sta.xyz/tag/h5ai/feed/"/>
	<item>
		<title>h5ai提示500错误</title>
		<link>https://v1sta.xyz/tech/h5ai-error-500/</link>
					<comments>https://v1sta.xyz/tech/h5ai-error-500/#respond</comments>
		
		<dc:creator><![CDATA[远景の域主 V1STA]]></dc:creator>
		<pubDate>Sat, 31 Jan 2026 20:16:24 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[h5ai]]></category>
		<category><![CDATA[Webinoly]]></category>
		<guid isPermaLink="false">https://v1sta.xyz/?p=2692</guid>

					<description><![CDATA[景之域曾基于h5ai搭建的（开了一会就被遗忘的）附属资源存放箱，自从Webinoly恢复备份迁移过后就无法打开 &#8230; <a href="https://v1sta.xyz/tech/h5ai-error-500/" class="more-link">继续阅读<span class="screen-reader-text">h5ai提示500错误</span> <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p>景之域曾<a href="https://v1sta.xyz/tech/file-carbinet-h5ai/" data-type="post" data-id="1425">基于h5ai搭建</a>的<s>（开了一会就被遗忘的）</s>附属资源存放箱，自从Webinoly恢复备份迁移过后就无法打开了。浏览器提示ERROR 500错误。</p>



<p>起初以为是依赖问题，于是在本地搭建的虚拟机建立测试站点，问题依旧复现。</p>



<p>在终端机界面，使用webinoly的 <code>log</code> 指令，<br>可对特定网站查阅访问日志：</p>



<pre class="wp-block-code"><code>log h5ai.lan -error</code></pre>



<p class="has-small-font-size">若提示没有syslog日志，可以先执行系统更新： <code>sudo apt update &amp;&amp; sudo apt -y upgrade</code> </p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img fetchpriority="high" decoding="async" width="657" height="322" sizes="(max-width: 657px) 100vw, 657px" src="https://v1sta.xyz/wp-content/uploads/2026/02/image-1.png" alt="" class="wp-image-2693" srcset="https://v1sta.xyz/wp-content/uploads/2026/02/image-1.png 657w, https://v1sta.xyz/wp-content/uploads/2026/02/image-1-300x147.png 300w" /></figure>
</div>


<p>通过查看日志可见，问题出在PHP的函数 putenv 没有开启。<br>同时putenv也是此前安装社交网站<a href="https://v1sta.xyz/tech/%e7%bb%ad%e8%bf%b0-known/" data-type="post" data-id="2471">known</a>所需的。<br>在新版的Webinoly中，一些函数因安全问题被默认禁用。</p>



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



<p>一般情况的解决办法很简单，修改 /etc/php/版本号/fpm/php.ini 文件，编辑 <code>disable_functions</code> 去除即可。大约在323行：</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="516" height="106" sizes="(max-width: 516px) 100vw, 516px" src="https://v1sta.xyz/wp-content/uploads/2026/02/image-2.png" alt="" class="wp-image-2694" srcset="https://v1sta.xyz/wp-content/uploads/2026/02/image-2.png 516w, https://v1sta.xyz/wp-content/uploads/2026/02/image-2-300x62.png 300w" /></figure>
</div>


<p>不过直接编辑php.ini对Webinoly在恢复配置备份的时候并不适用。</p>



<p>事实上， /opt/webinoly/webinoly.conf 配置文件也有关于php禁用函数的配置：</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><img decoding="async" width="849" height="184" sizes="(max-width: 849px) 100vw, 849px" src="https://v1sta.xyz/wp-content/uploads/2026/02/image-3.png" alt="" class="wp-image-2695" srcset="https://v1sta.xyz/wp-content/uploads/2026/02/image-3.png 849w, https://v1sta.xyz/wp-content/uploads/2026/02/image-3-300x65.png 300w, https://v1sta.xyz/wp-content/uploads/2026/02/image-3-768x166.png 768w" /></figure>
</div>


<p>注释436行，去掉putenv的字样，然后重设php（这个reset的含义类似于BIOS，并不是恢复出厂）</p>



<pre class="wp-block-code"><code>webinoly -server-reset=php</code></pre>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="683" sizes="auto, (max-width: 1024px) 100vw, 1024px" src="https://v1sta.xyz/wp-content/uploads/2026/02/image-4-1024x683.png" alt="" class="wp-image-2696" srcset="https://v1sta.xyz/wp-content/uploads/2026/02/image-4-1024x683.png 1024w, https://v1sta.xyz/wp-content/uploads/2026/02/image-4-300x200.png 300w, https://v1sta.xyz/wp-content/uploads/2026/02/image-4-768x512.png 768w, https://v1sta.xyz/wp-content/uploads/2026/02/image-4.png 1440w" /></figure>



<p>搞定。</p>

<p><a href="https://v1sta.xyz/tech/h5ai-error-500/" rel="nofollow">来源</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://v1sta.xyz/tech/h5ai-error-500/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<enclosure url="https://v1sta.xyz/wp-content/uploads/2026/02/image-1.png" length="50154" type="image/png"/><media:content url="https://v1sta.xyz/wp-content/uploads/2026/02/image-1.png" width="657" height="322" medium="image" type="image/png"/>	</item>
		<item>
		<title>搭建基于h5ai的文件共享空间：h5ai篇</title>
		<link>https://v1sta.xyz/tech/file-carbinet-h5ai/</link>
					<comments>https://v1sta.xyz/tech/file-carbinet-h5ai/#comments</comments>
		
		<dc:creator><![CDATA[远景の域主 V1STA]]></dc:creator>
		<pubDate>Sat, 24 Jun 2023 12:27:23 +0000</pubDate>
				<category><![CDATA[技术]]></category>
		<category><![CDATA[h5ai]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[Webinoly]]></category>
		<guid isPermaLink="false">https://v1sta.xyz/?p=1425</guid>

					<description><![CDATA[最近重新弄了一下Minecraft的服务器，上次说到，HMCL启动器支持通过静态文件列表检查整合包完整性，实现自动更新的功能。

不过后续可能会分享更多的文件、图片等，NGINX自带的索引列表过于简陋，索性尝试一下热门的h5ai吧。于是，我基于h5ai搭建了本站的资源存放箱（File Cabinet）共享文件。]]></description>
										<content:encoded><![CDATA[
<p>最近重新弄了一下Minecraft的服务器，上次说到，HMCL启动器支持通过静态文件列表检查整合包完整性，实现自动更新的功能。</p>



<p>不过后续可能会分享更多的文件、图片等，NGINX自带的索引列表过于简陋，索性尝试一下热门的h5ai吧。于是，我基于h5ai搭建了本站的资源存放箱（File Cabinet）共享文件。</p>



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



<p>并且考虑到SFTP的速度很慢，实在不想上传几个文件还要打开WinSCP之类的运维工具，顺便也搭建了一个WebDAV服务端，用于管理上传的文件。<em><s>后续再更新</s></em></p>



<p>在此之前我使用的是SSHFS-Win，就是下图这个，它可以在资源管理器（Explorer）挂载目录，类似于RaiDrive之类的第三方软件，不过它是自由免费的开源软件。奈何SFTP的文件传输效率还是太低了些……</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://v1sta.xyz/wp-content/uploads/2023/06/SSHFS-Win_Manager_LL7NJFVRg1.png" data-lbwps-width="895" data-lbwps-height="495" data-lbwps-srcsmall="https://v1sta.xyz/wp-content/uploads/2023/06/SSHFS-Win_Manager_LL7NJFVRg1-300x166.png"><img data-dominant-color="2e333b" data-has-transparency="true" style="--dominant-color: #2e333b;" loading="lazy" decoding="async" width="895" height="495" sizes="auto, (max-width: 895px) 100vw, 895px" src="https://v1sta.xyz/wp-content/uploads/2023/06/SSHFS-Win_Manager_LL7NJFVRg1.png" alt="" class="wp-image-1426 has-transparency" srcset="https://v1sta.xyz/wp-content/uploads/2023/06/SSHFS-Win_Manager_LL7NJFVRg1.png 895w, https://v1sta.xyz/wp-content/uploads/2023/06/SSHFS-Win_Manager_LL7NJFVRg1-300x166.png 300w, https://v1sta.xyz/wp-content/uploads/2023/06/SSHFS-Win_Manager_LL7NJFVRg1-768x425.png 768w" /></a></figure>
</div>


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



<h1 class="wp-block-heading">安装h5ai</h1>



<p>h5ai是一个基于PHP开发的文件共享索引程序，由德国人Lars Jung，全称是 HTML5 Apache Index，本是取代Apache自带的静态文件索引功能，不过也可以支持其他的Web服务器。</p>



<figure class="wp-block-mamaduka-bookmark-card is-style-horizontal"><a class="bookmark-card" href="https://larsjung.de/h5ai/"><div class="bookmark-card__image"><img decoding="async" src="https://larsjung.de/_assets_e6efc6e2a36562198dcc2229a4f45013361fb6d0/images/icon.svg"/></div><div class="bookmark-card__content"><div class="bookmark-card__title">h5ai · modern HTTP web server index for Apache httpd, lighttpd, nginx and Cherokee · larsjung.de</div><div class="bookmark-card__description">modern HTTP web server index for Apache httpd, lighttpd, nginx and Cherokee</div><div class="bookmark_card__meta"><img decoding="async" class="bookmark_card__meta-icon" src="https://larsjung.de/_assets_e6efc6e2a36562198dcc2229a4f45013361fb6d0/images/icon.ico"/><span class="bookmark_card__meta-publisher">larsjung.de</span></div></div></a></figure>



<p></p>



<p>h5ai很好安装，打开上面的项目主页，可以看到一个大大的版本号下载按钮，右键复制按钮的链接，通过wget就可以下载到服务器上。目前最新的版本号是0.30.0，用cd命令转到文件共享的虚拟主机（vhost）网站目录内下载并解压。</p>



<pre class="wp-block-preformatted">cd /var/www/[domain.ltd]/htdocs
wget https://release.larsjung.de/h5ai/h5ai-0.30.0.zip
unzip h5ai-0.30.0.zip</pre>



<p>解压后会出现一个名为 _h5ai的文件夹，这是h5ai的程序目录，不过默认是隐藏的，下文会提到如何隐藏前缀文件。</p>



<p>然后编辑虚拟主机的配置文件，添加_h5ai路径的index.php索引程序：</p>



<pre class="wp-block-preformatted">root /var/www/[domain.ltd]/htdocs;

index index.php index.html /_h5ai/public/index.php;

location ~ .*\.(zip|ini|jar)?$ { 
     allow all; 
} 
...</pre>



<p>由于我使用的Webinoly有安全模板限制，默认不能通过直链访问一些压缩包和可执行文件后缀的静态资源，因此也添加了特定的文件后缀赦免。</p>



<p>此时在浏览器中输入文件站的域名，在后方加入 <code>/_h5ai/public/index.php/</code> 访问h5ai的自检（探针）页面，默认无密码就可以进入，编辑option文件添加访问密码。</p>


<div class="wp-block-image">
<figure class="aligncenter size-large"><a href="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_a0Koz5SEWI.png" data-lbwps-width="1091" data-lbwps-height="733" data-lbwps-srcsmall="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_a0Koz5SEWI-300x202.png"><img data-dominant-color="fbfbfc" data-has-transparency="true" style="--dominant-color: #fbfbfc;" loading="lazy" decoding="async" width="1024" height="688" sizes="auto, (max-width: 1024px) 100vw, 1024px" src="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_a0Koz5SEWI-1024x688.png" alt="" class="wp-image-1428 has-transparency" srcset="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_a0Koz5SEWI-1024x688.png 1024w, https://v1sta.xyz/wp-content/uploads/2023/06/chrome_a0Koz5SEWI-300x202.png 300w, https://v1sta.xyz/wp-content/uploads/2023/06/chrome_a0Koz5SEWI-768x516.png 768w, https://v1sta.xyz/wp-content/uploads/2023/06/chrome_a0Koz5SEWI.png 1091w" /></a></figure>
</div>


<p>根据自检页面的指示设定文件和目录的权限、安装需要的扩展等等。</p>


<div class="wp-block-image">
<figure class="aligncenter size-full"><a href="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_azuig8NHb4.png" data-lbwps-width="917" data-lbwps-height="678" data-lbwps-srcsmall="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_azuig8NHb4-300x222.png"><img data-dominant-color="fafafa" data-has-transparency="true" style="--dominant-color: #fafafa;" loading="lazy" decoding="async" width="917" height="678" sizes="auto, (max-width: 917px) 100vw, 917px" src="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_azuig8NHb4.png" alt="" class="wp-image-1429 has-transparency" srcset="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_azuig8NHb4.png 917w, https://v1sta.xyz/wp-content/uploads/2023/06/chrome_azuig8NHb4-300x222.png 300w, https://v1sta.xyz/wp-content/uploads/2023/06/chrome_azuig8NHb4-768x568.png 768w" /></a></figure>
</div>


<p>一切就绪以后，h5ai就可以正常运行了。</p>



<h1 class="wp-block-heading">配置h5ai</h1>



<p>如果想达到上图域主的效果，还需要设定h5ai的配置。</p>



<p>h5ai的主要配置文件位于 <code>_h5ai/private/conf/options.json</code>  ，可以设定的配置非常多，在此仅列出我主要修改的几项：</p>



<pre class="wp-block-preformatted">"view": {
    "binaryPrefix": false,
    "disableSidebar": false,
    "fallbackMode": false,
    "fastBrowsing": true,
    "fonts": ["Ubuntu", "Roboto", "Helvetica", "Arial", "sans-serif"],
    "fontsMono": ["Ubuntu Mono", "Monaco", "Lucida Sans Typewriter", "monospace"],
    "hidden": ["^\\.", "^_h5ai", "icon.ico"],
    "hideFolders": false,
    "hideIf403": true,
    "hideParentFolder": false,
    "maxIconSize": 40,
    "modes": ["details", "grid", "icons"],
    "modeToggle": false,
    "setParentFolderLabels": true,
    "sizes": [20, 40, 60, 80, 100, 140, 180, 220, 260, 300],
    "theme": "comity",
    "unmanaged": ["index.html", "index.htm", "index.php"],
    "unmanagedInNewWindow": false
},</pre>



<p>这里可以设置UI的显示模式、字体、隐藏文件、主题等等，比如hidden设置隐藏文件可以使用正则、也可以单独匹配文件名，这里我添加了 icon.ico 图标文件。</p>



<h3 class="wp-block-heading">语言设置</h3>



<pre class="wp-block-preformatted">"l10n": {
        "enabled": true,
        "lang": "zh-Hans",
        "useBrowserLang": true
 },</pre>



<p>修改 <code>lang</code> 为简体中文 (zh-Hans) ，默认为英语 (en)。不过h5ai本身亦内置多种语言，<code>useBrowserLang</code> 可根据用户端浏览器自动切换显示的语言。</p>



<h3 class="wp-block-heading">修改谷歌镜像</h3>



<p>h5ai的界面默认使用Google Fonts，可以灵活更换字体，但在国内也可能会出现打不开的现象，好在可以替换成其他链接：</p>



<pre class="wp-block-code"><code>"resources": {
        "scripts": &#91;],
        "styles": &#91;
            "//fonts.googleapis.com/css?family=Ubuntu:300,400,700%7CUbuntu+Mono:400,700"
        ]
},</code></pre>



<p>在 <code>styles</code> 中填写自定义字体的URL，使用Google Fonts的话可以把Ubuntu Mono换成其他的字体名称；</p>



<p>以及将 <code>fonts.googleapis.com</code> 替换为国内可用的字体镜像，比如 <code>fonts.loli.net</code> 的，这个是老生常谈了。</p>



<h3 class="wp-block-heading">添加MD文件备注</h3>



<p>还是在 <code>options.json</code> 中，找到 <code>custom</code> 开头，修改 <code>enable</code> 为 <code>true</code> ，可开启文件页眉/页脚备注，支持Markdown和HTML格式。</p>



<pre class="wp-block-preformatted">"custom": {<br>"enabled": true,<br>"stopSearchingAtRoot": true<br>},</pre>



<p>随后可在文件目录中添加 <code>_h5ai.header.md(.html)</code>&nbsp;和 <code>_h5ai.footer.md(.html)</code> 文件</p>



<h3 class="wp-block-heading">修改根目录标题</h3>



<p>h5ai默认根目录标题显示为当前的域名，可以在 <code>_h5ai/public/js/scripts.js</code> 文件中修改自定义名称</p>



<p>找到PHP域名函数 <code>("/"===t?f.getDomain():n.name)</code> </p>



<p>替换为自定义字符串 <code>("/"===t?'资源存放箱':n.name)</code></p>



<h3 class="wp-block-heading">修改网页标题</h3>



<p>网页标题 (Title) 位于 <code>_h5ai/private/php/pages/index.php</code> 文件中，以 <code>&lt;title&gt;</code> <code>&lt;title/&gt;</code> 开头/结尾的HTML代码：</p>



<pre class="wp-block-preformatted">&lt;title&gt;index - powered by h5ai v0.30.0 (https://larsjung.de/h5ai/)&lt;title/&gt; </pre>



<p>此代码即为网页显示的标题，默认显示h5ai的版本、版权信息，可以将其替换成要显示的自定义文字。</p>



<p>需要在 options.json 关闭面包屑导航的动态标题功能。</p>



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



<p>域主顺便用Rclone搭建了额外的WebDAV文件传输和管理服务，天色已晚，待我吃完饭后，放到下篇再写……</p>



<p>嗯……如果在自己的服务器架设Jekyll、Hugo或Grav之类的Markdown博客引擎，也许可以用H5ai作为图床和视频站……</p>

<p><a href="https://v1sta.xyz/tech/file-carbinet-h5ai/" rel="nofollow">来源</a></p>]]></content:encoded>
					
					<wfw:commentRss>https://v1sta.xyz/tech/file-carbinet-h5ai/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
		<enclosure url="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_MKhlJzZyao.png" length="745912" type="image/png"/><media:content url="https://v1sta.xyz/wp-content/uploads/2023/06/chrome_MKhlJzZyao.png" width="1316" height="742" medium="image" type="image/png"/>	</item>
	</channel>
</rss>
