【问题标题】:Why can't my PHP script chmod a file it creates?为什么我的 PHP 脚本不能对它创建的文件进行 chmod?
【发布时间】:2011-08-07 13:02:22
【问题描述】:

我有一个 php,它创建了一个需要可执行的文件(它是一个需要由系统运行的批处理文件)。出于某种原因,即使该文件归 apache 所有并且 php 以 apache 身份运行,并且该文件已创建,脚本在 chmod 行终止。我需要进行哪些不同的配置以允许 php 对它创建的文件进行 chmod?它上面的两行很高兴地为这个文件创建了一个目录,它在创建它时将其 chmods 为 755。我错过了什么明显的东西吗?

我的 chmod 行如下所示:

    $uploadFilePath = "./path/to/file/";
    if(!is_dir($uploadFilePath)){
          mkdir($uploadFilePath, 0777 , true) or die("ERROR:can't create directory '$uploadFilePath'");
    }
        ...
    //write batch file
      ...
    chmod ($uploadFilePath . 'sftp.batch' ,0777 ) or die ("\ncan't chmod  " . $uploadFilePath . 'sftp.batch');

【问题讨论】:

  • 我不知道这是什么意思...谷歌搜索粘性位...
  • 你确定你使用的是 chmod 对吗?它需要一个八进制而不是十进制值。
  • 为什么不直接将文件名传递给解释器?
  • 编辑问题以包含我的 chmod 行...
  • 是的,“/path/php /path/file.php”是要走的路——恕我直言。

标签: php apache chmod


【解决方案1】:

很可能是由于umask。尝试在 chmod 之前将其设置为 0

【讨论】:

  • 0 让事情变得非常奇怪,但是 0077,然后是 chmod 到 0755 就成功了!但是,PHP 仍然拒绝实际执行该文件! GRRR
  • 我将继续并给你复选标记,因为至少我的 chmoding 问题已经解决......我将不得不发布“为什么 php 不会执行我的批处理文件”另一个问题中的问题:)
猜你喜欢
  • 2021-12-30
  • 1970-01-01
  • 2020-08-08
  • 2015-12-14
  • 2014-08-19
  • 1970-01-01
  • 2011-02-21
  • 2020-11-27
  • 1970-01-01
相关资源
最近更新 更多