在PHP中显示存储在localhost外部的图像

在PHP中显示存储在localhost外部的图像,php,html,image,Php,Html,Image,我将所有图像存储在localhost之外的文件夹中,即我的桌面上。 但是,当我尝试使用标记在php文件中显示图像并设置该位置的路径时,它会将图像的解除路径设置为“**localhost/Folder_name”** 如何使脚本从桌面文件夹读取路径,而不是从本地主机读取路径? 我正在使用Ubuntu 14.10。这不是PHP问题,而是web服务器问题。web服务器无权访问未位于其定义的DocumentRoot中的文件。(即/var/www) 最简单的方法是在sites DocumentRoot中创

我将所有图像存储在localhost之外的文件夹中,即我的桌面上。 但是,当我尝试使用
标记在php文件中显示图像并设置该位置的路径时,它会将图像的解除路径设置为“**localhost/Folder_name”**

如何使脚本从桌面文件夹读取路径,而不是从本地主机读取路径?
我正在使用Ubuntu 14.10。

这不是PHP问题,而是web服务器问题。web服务器无权访问未位于其定义的DocumentRoot中的文件。(即/var/www)

最简单的方法是在sites DocumentRoot中创建一个符号链接,指向桌面上的目录


或者,更复杂但可能更安全的是,您可以设置将所有图像请求发送到一个PHP文件,该文件将从桌面目录中读取图像并将其流式传输到浏览器。

这不是PHP,而是依赖于“DocumentRoot”的web服务器来访问服务器页面和图像。Web服务器中没有定义外部的任何内容。您不能直接引用该位置,从安全角度来看,这显然是有意义的。然而,设置是有意义的,保持这样。您只需实现一个传递图像的小包装器脚本,这样您就不会引用URL中的物理文件,而是将该包装器脚本与一些标识图像的参数结合在一起。通过这种方式,您可以传送图像,但要保持控制,因此如果您愿意,可以检查授权等,并且您不会分发敏感信息,如文件的物理位置。有问题。如果这应该在文件级别处理(正如您建议的“符号链接”),那么
Alias
指令将是更干净的方法。更透明,因为更明确,更容易控制。无论哪种方式,你都能达到同样的效果。除非您想使用PHP来流式处理文件,否则必须将其放入站点的DocumentRoot中。符号链接要求您首先启用以下节点,这是一个潜在的安全风险,并且它被隐藏在文档中的某个位置,这意味着应用程序的迁移或重组很可能会错过它。
别名是明确的,并放在它所属的位置:在主机定义中。当然,使用符号链接是一个潜在的安全风险,但考虑到我们谈论的是将图像保存在桌面目录中,我敢打赌,我们谈论的不是优步安全是一个巨大的问题。但是,遵循符号链接的选项可以而且应该在主机文件/定义中定义为与别名相同。它的使用并不比为它使用别名更隐蔽。事实上,如果你说的是清晰,那么符号链接就更清晰了,因为在执行
ls
时,你会在根目录中看到符号链接目录,而不是主机中定义的“神奇”别名对不起,不,现在这真的是完全错误的。1.使用符号链接意味着您有两个设置位置:主机配置和文档位置。根据定义,这是不那么透明的。2.符号链接显然可以隐藏,因为这样的链接可以位于文档位置和3的文件层次结构的任何深处。web服务器的负责人希望将web应用程序等视为黑匣子,而不是修改其中的内容。那太不专业了。是的,也许这不是诺克斯堡,但为什么建议不那么好的方法呢?