如何修复 Nextcloud 的 cron 作业似乎不起作用?

问题描述 投票:0回答:2

如何从root用户的cron触发www-data php脚本?

从 docker image cron 作业运行 Nextcloud 后无法正常工作:

cron job seems not to be working

www-data 用户无法启动 cron 作业,并且 root 用户无权运行 www-data 的 php

Console has to be executed with the user that owns the file
config/config.php Current user id: 0
docker cron nextcloud
2个回答
1
投票

这是一个可行的解决方案,假设您已经安装了 cron

apt-get install cron

  1. 以 root 用户运行
crontab -e
  1. 添加此行,它将以
    www-data
    用户身份运行 php 脚本
* * * * * su www-data -s /bin/bash -c "/usr/local/bin/php /var/www/html/cron.php"
  1. 重启cron服务
 /etc/init.d/cron restart

0
投票

找到php解释器的路径

which php

找到 cron.php 文件

locate cron.php

以 root 身份运行带有 -u 标志的 crontab 来指定用户。在本例中,它是 www-data。这将以该用户身份运行 cron 作业。

crontab -u www-data -e

添加此行以每 5 分钟运行 cron.php。根据您的系统修改 php 和 cron.php 的位置

*/5 * * * * /usr/bin/php /var/www/nextcloud/cron.php

保存文件,等待十分钟,然后检查日志文件以确保其正常工作。

journalctl -u cron --since '20 minutes ago'
© www.soinside.com 2019 - 2024. All rights reserved.