1

我想我对将 PHP 脚本作为 cron 作业运行与使用浏览器访问它之间到底有什么区别感到困惑。当我通过 Safari 访问 test.php 来测试它时,它会按预期写入文本文件,生成数据库条目等。当它作为 cron 作业运行时,它会执行除写入文本文件之外的所有操作。

我已经通过在文件开头插入:#!/usr/bin/php 来处理它而不是前往 PHP 解析器。

当我的脚本通过 Safari 运行时,为什么我的脚本不能通过 cron 写入我的文本文件?

(这是一个直接的 fopen、fwrite、fclose 代码,所以揭示它不会有启发性,我不认为)

4

2 回答 2

3

这将是用户权限。虽然 apache(或您正在使用的任何网络服务器)可能有权写入该文件夹,但如果您将它们都设为同一组的成员或使文件夹世界可写以解决您的问题,则 cron 用户不会

请记住,世界可写不是一个好的安全措施

于 2009-08-14T02:01:49.430 回答
1

在执行 fopen 之前尝试 chdir 到某个存在的、可写的地方。你永远不知道 cron 在哪里运行你的东西。

于 2009-08-14T02:01:45.967 回答