【问题标题】:using exec command in php doesnt work在 php 中使用 exec 命令不起作用
【发布时间】:2012-10-19 17:47:33
【问题描述】:

我必须使用 php 自动化一个过程,我必须在文件中附加内容。 该文件没有指定任何特定权限,但文件夹“abc”具有只读权限,因此当我尝试附加文件时,fopen() 会提示权限被拒绝。

但我可以手动编辑文件,也可以从命令提示符处编辑。所以我尝试了以下方法:

当我尝试 echo exec("echo 测试>>\\xx.xx.x.x\C$\abc\test.txt"); 在我的脚本中,它不起作用。

如果相同的命令 echo 测试>>\xx.xx.x.x\C$\abc\test.txt 在cmd上运行它可以工作。

我什至尝试过 psexec:- echo exec('C:/psexec \xx.xx.x.x cmd /c \"echo 测试>>C:\abc\test.txt\"'); 当我再次跑步时 C:/psexec \xx.xx.x.x cmd /c "回声测试>>C:\abc\test.txt" 在 cmd 上运行正常。

我做错了与 exec() 有什么关系吗? 或者有没有其他方法可以编辑文件,因为我不应该更改文件夹权限,但仍然可以使过程自动化。

【问题讨论】:

  • 您的应用是否需要写入权限,您无法完成此操作。使用exec 试图解决这个问题是一个糟糕的主意(抱歉)。
  • PHP 以与您的用户不同的权限作为不同的用户运行。因此,您不太可能绕过文件权限。

标签: php exec file-permissions psexec


【解决方案1】:

我假设您使用的是 Windows。在 Debian Linux 上,我会告诉您在适当的目录中授予用户 www-data 写入权限。

您可能需要授予本地 IIS 工作人员帐户对该目录的写入权限。本地 IIS 工作人员帐户的名称可能类似于 IUSR_[SERVERNAME]。

【讨论】:

    【解决方案2】:

    出于安全原因,一些虚拟主机决定删除函数 exec。

    查看您的 php 信息并检查您的是否已禁用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多