You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL搭建的局域网web服务器无法加载根目录外mp4/mkv格式视频文件

WSL部署局域网电影共享服务问题解决方案

核心问题原因

  • web服务默认禁止访问站点根目录以外的系统文件路径,直接拼接本地磁盘路径到URL无法被web服务解析
  • file://协议为本地文件协议,仅当前设备可访问,局域网其他设备无法读取你本地的磁盘文件
  • 你写死了video标签的type="video/mp4",mkv格式的视频会被浏览器识别为不支持的格式,无法加载播放
  • WSL默认挂载的Windows盘权限配置错误,Apache运行用户没有读取权限

分步解决方法

1. 配置Apache目录别名

打开Apache主配置文件/etc/apache2/apache2.conf或者站点配置文件/etc/apache2/sites-available/000-default.conf,添加如下规则:

# 将URL路径/movies映射到本地的/mnt/d/Movies目录
Alias /movies "/mnt/d/Movies"
<Directory "/mnt/d/Movies">
    Options Indexes FollowSymLinks
    AllowOverride None
    # 允许所有访问,如需限制仅局域网可访问,注释下一行,取消下下行注释并替换为你的局域网网段
    Require all granted
    # Require ip 192.168.1.0/24
</Directory>

保存后执行systemctl restart apache2重启Apache服务。

2. 修复WSL挂载盘权限

打开WSL内的/etc/wsl.conf文件,添加如下配置:

[automount]
options = "metadata,umask=22,fmask=11"
mountFsTab = false

保存后关闭所有WSL窗口,在Windows的命令提示符中执行wsl --shutdown重启WSL,此时Windows盘挂载后的权限允许Apache读取文件。

3. 修改站点配置

将之前的movieDir配置改为:

$lanSite->movieDir = '/movies/';

4. 修复video标签配置

删除source标签上的type="video/mp4"属性,浏览器会自动识别视频格式,无需手动指定,避免mkv格式无法播放的问题。修改后的代码如下:

<video>
  <source style="height:600px; width:480px;" src="<?= $lanSite->movieDir . DIRECTORY_SEPARATOR . $movieName . "-" . $movieYear . $movieFile; ?>">
</video>

验证配置

在WSL内执行ip a查看eth0网卡的局域网IP,在浏览器访问http://[WSL的局域网IP]/movies/Speed.2.Cruise.Control-1997/Speed.2.Cruise.Control-1997.mkv,可正常播放即配置生效,局域网内其他设备使用该IP也可正常访问。

内容的提问来源于stack exchange,提问作者OpenSourceAdvocate

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:18:04