通过Cron运行PHP脚本

问题描述 投票:-3回答:3

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

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

我觉得权限有问题,但我在服务器管理方面不是很好,也无法理解我能做什么=(

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

php api cron instagram
3个回答
0
投票

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

要解决这个问题,首先要知道你要去chmod()的文件夹/文件属于谁。如果它属于root,那么由于安全问题,不会通过任何可供公众访问的脚本向chmod建议。

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


0
投票

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

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

注意:建议您不要在CRON中以root身份运行此脚本。


-1
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.