【问题标题】:php $fopen errorphp $fopen 错误
【发布时间】:2012-09-07 13:15:27
【问题描述】:

我跑

lynx -dump 'http://k.tr.com/1234.php?MSISDN=************&USERNAME=****&PASSWORD=****&MESSAGE=TEST' 

写入文件1234.txt;但是我收到错误无法访问在 1234.php 文件中的语句中定义为

的文件
$fp=fopen("/var/log/logfiles/1234.txt","a") or die ("cant access file");

我该如何解决这个问题?错误?该文件的权限为 644;

我需要在备份服务器上创建主服务器中的文件副本。所以我运行了 scp;但是当我在主服务器上检查同一文件的文件权限时,我发现它们与显示 Uid 和 Gid 的备份服务器不同;主服务器上的这些详细信息是:

访问:(0644/-rw-r--r--) Uid:(33/www-data) Gid:(0/ root)

我尝试更改为 chmod 654、777 和 655,但我得到了同样的错误。

【问题讨论】:

  • 启用错误报告,不要使用or die
  • 也尝试 chmodding 文件:chmod($file,777);fclose() chmod($file,644); 如果您与其他用户创建文件,请在命令行上尝试 chown :users 1234.txt,大多数用户都是默认组,因此他们将被允许对其进行 chmod

标签: php linux fopen die


【解决方案1】:

如果 Web 服务器以有权访问 /var/log/logfiles 的同一用户身份运行,您可以将文件权限设置为 755,否则您需要 777。

【讨论】:

    【解决方案2】:

    您正在请求写入文件的权限“a”,并且您的文件只有所有者的写入权限。

    您是否以创建文件的用户身份运行脚本?

    如果没有,请这样做。如果不能,请更改执行脚本的用户所属的其他人(最后一个八进制)或组(第二个八进制)的文件权限。

    所以,在1234.txt 上尝试使用chmod 654chmod 655

    【讨论】:

    • 我需要在主服务器上创建一个文件副本到备份服务器上。所以我运行了 scp;但是当我在主服务器上检查同一文件的文件权限时,我发现它们与显示 Uid 和 Gid 的备份服务器不同;主服务器上的这些详细信息是: Access:(0644/-rw-r--r--) Uid:( 33/www-data) Gid:( 0/ root) 我尝试了 chmod 654 和 655 并且我得到了相同的结果错误。
    • 我已经搜索并意识到问题出现在 UID 和 GID 上。我刚刚学会了使用 chown 和 chgrp 来编辑它,一切都好了!!感谢 rachel 带领我查看文件所有者。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2012-01-17
    • 2016-05-06
    • 1970-01-01
    相关资源
    最近更新 更多