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

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

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

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

有帮助吗?

解决方案

这将是用户权限。虽然Apache(或您正在使用的任何Web服务器)可能有权写入该文件夹,但Cron用户不会使他们成为同一组的成员,或者将文件夹世界的worlable置于解决方案,以解决您的问题

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

其他提示

试着做则fopen之前CHDIR一些存在的,可写的地方。你永远不知道在哪里的cron运行你的东西。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top