【问题标题】:Accessing another folder content with php使用 php 访问另一个文件夹内容
【发布时间】:2011-12-07 07:43:09
【问题描述】:

我将我的根文件夹设置为/var/www/html,但我有 php 程序假设访问/读取位于/home/billing/work/output/Reminder 中的Reminder 文件夹(及其内容),扫描文件夹内容(目录、子-directories, files) 并返回文件名。

我在 Linux 上工作,我已经尝试过:

set_include_path("/home/billing/work/output/Reminder");
include("/home/billing/work/output/Reminder");

我在 Reminder 文件夹的根目录中添加了一个符号链接,但是这些东西都不起作用。 我有一个变量:

$dir="/home/billing/work/output/Reminder"

当我检查 if is_dir($dir) 时,我得到了错误。

谁能告诉我如何访问提醒目录以便我可以扫描目录? 我的用户有权访问提醒文件夹,我也有功能或扫描文件夹,它们在我的本地主机上工作正常。任何帮助将不胜感激,我已经苦苦挣扎了一个星期了。

【问题讨论】:

  • $dir = /home.../Reminder 中的文件路径周围不需要一些"" 引号吗?
  • 您的 PHP 解释器是否受限于 AppArmorSELinuxTOMOYOSMACK?这些mandatory access control 工具中的任何一个都可以阻止应用程序在特定位置写入,也许它们还没有为您的站点配置。检查dmesg(1) 输出以查看是否有任何拒绝消息,如果auditd(8) 未运行,则大多数或所有这些工具都会记录到dmesg(1)
  • @sarnold:我忘了把它们放在描述中,我在 $dir 中有“”。我还检查了 dmesg 并没有拒绝消息
  • edit这个问题反映现实。 :) 谢谢!

标签: php permissions


【解决方案1】:

除非安全模式和/或 open_basedir 限制生效,否则您应该能够从本地文件系统的任何位置打开文件。只需使用正确的路径提供您正在使用的文件/目录功能。

当然,在处理文件系统时,您也在处理文件系统权限,因此您正在使用的文件和目录需要由运行 PHP 的任何用户读取(如果由 Web 服务器运行,那么这个通常是 Web 服务器用户)。

如果上述限制有效,那么恐怕你会被卡住。

【讨论】:

  • 文件/文件夹有访问权限。在哪里可以检查安全模式 open_basedir 限制是否生效?
  • 您对文件权限的评论对我有帮助,我检查了文件路径中存在的所有文件夹的文件权限,其中一个我的用户没有读取权限。谢谢!!!
猜你喜欢
  • 2015-07-04
  • 2019-12-20
  • 2016-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多