【问题标题】:Error on mount through php "exec"通过 php "exec" 挂载时出错
【发布时间】:2011-05-26 05:53:17
【问题描述】:

我正在尝试挂载一个 iscsi 虚拟磁盘,但如果我通过 php 中的 exec 函数执行命令,则会出现错误:mount: special device /dev/sdf1 does not exist。 但是,如果我直接在控制台中运行命令,它运行良好!! 我能做些什么? 我正在以一种很好的方式获得/dev/sdf1,它存在,但仅通过 php 不起作用。

谢谢

我使用sudo 运行命令并在控制台中以www-data 用户身份运行它,始终使用sudo,所以,我想这是相同的环境。

sudo mount -t ext3 /dev/sdf1 /san_disks/RIBS_2

sudoers 文件有以下几行:

www-data    ALL = (root) /usr/bin/iscsiadm, /bin/mount, /bin/umount
%www-data ALL=NOPASSWD: ALL

它可以在控制台中运行。

【问题讨论】:

  • 以“好的方式”详细说明。还要考虑 mod_chroot、suexec+fastcgi 环境。
  • 您的 php 代码可能没有正确的权限来执行该命令,检查 apache 的权限以及运行它的用户。
  • 你是否开启了安全模式?
  • [更新][1] 查看我的回答。这可能是时间问题。创建 iSCSI 设备后,它需要一秒钟左右才能出现。添加暂停将允许 mount 工作。 [1]:stackoverflow.com/questions/4465466/exec-doesnt-found-a-file/…

标签: php linux exec mount iscsi


【解决方案1】:

发生这种情况是因为“/dev”没有更新。我做了一个睡眠(1),它有效!

【讨论】:

    猜你喜欢
    • 2022-08-03
    • 2023-04-11
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多