【问题标题】:Synology - access from web directory to other directorySynology - 从 Web 目录访问其他目录
【发布时间】:2017-02-20 15:18:42
【问题描述】:

我有 Synology DS1515+,并且在上面安装了带有 Apache 和 PHP 的 Web Station。我有可以托管网页的 Web 目录(完整路径 /volume1/web)。 我有带有标签视频的 PHP 文件,我想从视频目录(完整路径 /volume1/video)中获取视频。 所以在 PHP 文件的 web 目录中,我有类似下面的内容,但没有托管视频文件:

<video id="video" autoplay>
    <source src="/volume1/video/movie.mp4" type='video/mp4'>
</video>

我也尝试过像“../video/movie.mp4”这样的相关路径,但它也不起作用。 我读了这个问题:Access synology shared folder from PHP 并且我编辑了 open_basedir 但它没有效果。 感谢您的帮助。

【问题讨论】:

    标签: php html apache synology


    【解决方案1】:

    您的 src 需要与所服务的 apache 路径相关。

    例如如果 apache 提供来自 /volume1/website/public_html 的内容,则您的源是相对于该文件夹的。您也无法摆脱这种情况以访问 /volume1/video/movie.mp4。

    尝试在这里查看 apache 入门 https://httpd.apache.org/docs/trunk/getting-started.html

    【讨论】:

    • 好的,但是我写了相关路径也不起作用:(我试过“../../video.movi​​e.mp4”。
    • 如前所述,apache 不会让您离开其提供服务的目录。例如,如果 apache 服务于这个目录 /volume1/website/public_html,那么你就不能用 ../ 逃出这个目录。通过在顶层执行../../video.movie.mp4,它会在/volume1/website/public_html/video.movie.mp4 处查找文件。要验证是否是这种情况,只需将您的 video.movie.mp4 复制到您的 apache 服务目录,这应该可以工作。
    【解决方案2】:

    毫无疑问,有些人会继续表达他们的担忧 - 通常我会这么说。

    但是,到 Web Station,点击 PHP Settings,选择 PHP 版本并将 /volume1/video/ 添加到 open_basedir 的末尾,即添加 :/volume1/video/ 路径被分隔为:

    我的做法与从网络根目录外部提供照片类似。然后我有一个 PHP 脚本来从 /volume1/photo 中获取所需的文件(在我的例子中)。并像 src="getfile.php?name=file.jpg" 一样使用它可以访问您想要的文件并提供它。有点解决方法,但它有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-07
      • 2020-07-10
      • 2020-11-09
      • 1970-01-01
      • 2017-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多