为什么在 apache/Ubuntu 20.04 上使用 PHP 时,在视频文件中指定 mp4 的完整路径不起作用

Why doesn't specifying the full path of an mp4 in video file work when relative path does using PHP on apache/Ubuntu 20.04

提问人:Markdd 提问时间:1/10/2022 最后编辑:user3783243Markdd 更新时间:1/10/2022 访问量:460

问:

我的文件夹中有许多 mp4 视频文件。当我使用相对路径时,文件在网页中正确显示并且可以播放。scandir

浏览器 html 如下所示。

<div class="box">
<video src="./mp4Files/video1.mp4" type="video/mp4" loop class="clip" controls
</video>
</div>

当我指定文件的完整路径时,scandir 会找到文件,浏览器会构建视频,但会出现错误 - 没有找到支持格式和 MIME 类型的视频。

浏览器 html 看起来像

<div class="box">
    <video src="/var/www/html/VideoRecTest/mp4Files/video1.mp4" type="video/mp4" loop    
    class="clip" controls></video>
 </div>

顺便说一句,当我做一个.open_base_dirphpinfo()

php 视频 路径 扫描目录

评论

0赞 user3783243 1/10/2022
/var/www/html/VideoRecTest/浏览器无法访问。它应该是.就你而言,我猜......如果您使用的是加密连接,则可能会使用。http://domain/documentroothttp://www.example.com/VideoRecTest/mp4Files/video1.mp4https
0赞 Markdd 1/10/2022
谢谢,这很有帮助。我的问题要点是我的 mp4 文件来自比“VideoRecTest”更高级别的不同目录。它们将来自安装在 /media 下的另一个驱动器。这可能吗?如果是这样,我将如何指定?
0赞 Jaquarh 1/10/2022
为什么这有可能,// 等等......不是.您的 Web 服务器侦听连接,并在根目录或根目录下为公共目录提供服务。 (配置中的根目录)不在此处提供,实际上会解释htmlphpjswebserversip/dns//var/www/.../var/www/html/var/www/html....

答:

0赞 Jaquarh 1/10/2022 #1

这些不是 Web 服务器

  • html
  • php
  • javascript

这些是网络服务器

  • nginx
  • apache2

您的 Web 服务器的配置将包含一个用作根目录的路径。vhost

/var/www/html/变为 或 。0.0.0.0/example.com/

例如,当您想要访问时,URI 将使用 .index.php0.0.0.0/index.php/var/www/html/index.php

您在此处的用例配置为 ,因此给出的路径 只会给出/var/www/html/var/www/html/VideoRecTest/mp4Files/video1.mp4

/var/www/html/var/www/html/VideoRecTest/mp4Files/video1.mp4

但是,您的视频可以在

/VideoRecTest/mp4Files/video1.mp4

由于 your 已配置为从根目录提供目录和文件。webserver/var/www/html

您也不能遍历指定的根目录。 将转换为 ,从而重定向回 。0.0.0.0/..//var/www/html/0.0.0.0/

请注意,可以在虚拟主机配置中更改根目录。我举个例子,因为它是默认的。/var/www/html

评论

0赞 Markdd 1/11/2022
这非常有帮助。非常感谢。这不是我想要的答案,但我明白接下来的步骤。谢谢。
0赞 Jaquarh 1/12/2022
您可以使用PHP遍历路径下方,而不是通过请求遍历Web服务器。/var/www/html