运行 PHP 通过 Cron 的脚本

Running PHP script via Cron

我正在编写一个 php 脚本,使用 Instagram Private PHP Api。

它在 "root" 用户下通过 SSH 工作正常,但是当我尝试通过浏览器或 cron 运行 它时,我收到错误:警告:chmod(): 操作.....

不允许

我猜是权限有问题,但我不太擅长服务器管理,不明白我能做什么=(

请帮忙,我该如何解决这个问题?

PHP 运行 的用户必须具有 chmod 给定文件或目录的权限。如果您 运行 通过 CRON 运行此脚本,则可以在 CRON 作业中将 PHP 运行 的用户设置为正确的。如果您在浏览器中访问脚本,PHP 可能 运行ning 作为 php 或 php-fpm 或网络服务器用户。

只需确保给定的文件或文件夹归 PHP 运行 的用户所有。

注意:建议您运行此脚本作为 CRON 的 root。

因为 Apache(或您正在使用的 Web 服务器)使用不同的 Linux 用户(通常是 www-data)执行 PHP,这显然与您的用户帐户具有不同的权限用于通过 SSH 访问。

要解决这个问题,您首先必须知道您要访问的文件夹/文件chmod() 属于谁。如果它属于 root,则出于安全考虑,不建议通过 public 可访问的任何脚本 chmod

如果它属于您的用户名,比如 foo,您可以更改您要访问的文件夹/文件的所有权 chmod() 以供 www-data 组访问在 SSH 控制台中使用 chown(),然后你的 chmod() 命令可以毫无问题地执行。

如果您正在编辑 /etc/crontab,请确保用户参数(一周后的那个)是 root

如果您正在通过 crontab -e 编辑 crontab,请添加用户参数 crontab -eu root