【问题标题】:Apache/PHP not being able to access mounted driveApache/PHP 无法访问已安装的驱动器
【发布时间】:2015-06-15 10:57:03
【问题描述】:

我正在尝试从 PHP/Apache (LAMP @ CentOS) 中访问已安装的驱动器。例如通过扫描目录:

scandir($dir);

虽然这适用于安装 Apache 的同一物理磁盘上的任何目录(包括 root、var 等,..),但它不适用于外部安装的磁盘:

scandir('/var/log'); 位于同时保存 /var/www/html 的本地驱动器上

提供有效的输出,而

scandir('/mnt/data');(挂载到外部 fs)不会。

我一直在尝试使用文件系统权限和 httpd.conf 指令(别名/目录),但还没有找到解决方案。

谁能告诉我如何从 apache/PHP 访问外部驱动器(/mnt/whatever)? 谢谢!

【问题讨论】:

    标签: apache external mount


    【解决方案1】:

    如果进程可以看到挂载点,那么它将能够访问其中的文件只要权限,包括 acls 和任何 MAC 系统都允许它(这里的 MAC 指的是强制访问控制系统, 即 selinux 和 apparmor)。

    您的权限需要更改,或者网络服务器在 chroot 环境中运行(例如,它所看到的 / 实际上是 /var/websrv/),或者您没有对 httpd 配置进行正确的更改。

    由于您没有提供有关系统如何配置的详细信息,也没有提供您尝试过的详细信息,因此不可能更具体。

    【讨论】:

    • 解决了!:似乎 SElinux 阻止了 Apache 访问挂载的驱动器。 policycoreutils-python 做到了。感谢您提到 SElinux,这正是我需要的提示。
    猜你喜欢
    • 2012-05-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多