首页 > 解决方案 > cron php 作业无法在 Mac OS 中打开网络挂载卷上的文件

问题描述

我有一个 php 脚本,它读取从网络上另一台机器安装的日志文件。另一台机器是 PC,它通过 Mac 上的 /Volumes/log/ 安装。我已经验证了 /Volumes/log/ 文件夹的权限,并且可以读取、写入等。

当我通过以下方式直接从终端运行我的 php 作业时:

php /Users/server/Projects/logreader.php 

它工作得很好。该脚本打开 /Volumes/log/debug.log 文件并可以读取它。但是,当我尝试通过 cron 作业运行完全相同的脚本时,出现以下错误:

警告:文件(/Volumes/log/debug.log):无法打开流:不允许操作

以下是 cron 作业:

* * * * * /usr/bin/php /Users/server/Projects/logreader.php > /Users/server/Desktop/output.txt 2&1

以下是 php 文件中用于打开日志的行:

$path = "/Volumes/log/debug.log";
$data = file("$path", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);

我曾尝试以用户身份通过​​ sudo su 以 root 身份登录来创建 cron 作业,但两者都出现相同的错误。

ls -l 在日志文件上的输出:

-rwxrwxrwx  1 server  staff  15179256 14 Jun  2021 /Volumes/log/debug.log

任何帮助将不胜感激。

标签: phpcron

解决方案


通过在系统偏好设置 -> 隐私和安全 -> 隐私中为 cron 提供“全盘访问”来解决此问题。谢谢大家


推荐阅读