【问题标题】:fopen the same file with apache and crontab - permission deniedfopen 使用 apache 和 crontab 相同的文件 - 权限被拒绝
【发布时间】:2012-01-17 20:26:31
【问题描述】:

我在使用 fopen 文件时遇到了这个问题。也许有人有解决方案...

当 fopen 通过浏览器创建文件时,该文件归“nobody”所有,如果我通过 crontab 运行相同的脚本,我将获得权限被拒绝。 当文件由 crontab 创建时,它归我的 cpanel 用户名所有,然后我无法通过网络浏览器打开它。

所以问题是使用的每种方法都使用不同的用户来拥有创建的文件。我该如何解决这个问题?我搜索了如何以无人身份运行 crontab,但您必须是 root 用户,这似乎很复杂。我没有找到任何关于以我的 cpanel 用户身份运行我的网页的信息。我的 php 脚本有 chmod 777 并且文件所在的文件夹也有 777 请确保。

有什么想法吗?谢谢。

【问题讨论】:

  • chmod 777 是邪恶的,不要那样做,总有别的办法
  • 确实,只是为了测试,该文件夹无论如何都受密码保护。
  • 嗯,php脚本不需要0777,但是如果需要被两个不同的用户写入,则需要写入的文件必须有0777。否则,您必须对 ACL 做一些事情,但您的服务器可能不支持 ACL。
  • 然后我会尝试让 fopen 创建带有 777 的文件

标签: php fopen crontab chmod chown


【解决方案1】:

我不是系统管理员,但如果你可以访问服务器,你可以试试这个

  1. 创建一个名为“webwriters”的新组并将nobody 和您自己添加到该组
  2. “chmod g+s webwriters”在你写文件的目录上
  3. "chmod 660" 每个文件的所有者和组都有写权限

如果您无权访问服务器,则比较棘手,但可以解决。不是直接通过 cron 运行脚本,而是通过使用“wget”下载网页或在 URL 上调用“file_get_contents”的 php 脚本在 Web 服务器本身上运行脚本。这假设服务器没有被锁定得太紧...

【讨论】:

    猜你喜欢
    • 2011-11-10
    • 2011-08-01
    • 1970-01-01
    • 2012-11-14
    • 2020-09-30
    • 1970-01-01
    • 2017-04-06
    • 1970-01-01
    • 2012-05-09
    相关资源
    最近更新 更多