我正在使用Instagram Private PHP Api编写一个PHP脚本。
它在“root”用户下通过SSH工作正常,但是当我尝试通过浏览器或cron运行它时,我收到错误:警告:chmod():操作不允许在......
我觉得权限有问题,但我在服务器管理方面不是很好,也无法理解我能做什么=(
请帮忙,我该如何解决这个问题?
因为Apache(或您正在使用的Web服务器)使用不同的Linux用户(通常是www-data
)执行PHP,这显然具有与您通过SSH访问时使用的用户帐户不同的权限。
要解决这个问题,首先要知道你要去chmod()
的文件夹/文件属于谁。如果它属于root
,那么由于安全问题,不会通过任何可供公众访问的脚本向chmod
建议。
如果它属于您的用户名,例如foo
,您可以在SSH控制台中使用chmod()
更改www-data
组可访问的文件夹/文件的所有权chown()
,然后您可以毫无问题地执行chmod()
命令。
PHP运行的用户必须具有chmod给定文件或目录的权限。如果您通过CRON运行此脚本,则可以在CRON作业中将PHP运行的用户设置为正确。如果您在浏览器中访问脚本,PHP可能以php或php-fpm或Web服务器用户身份运行。
只需确保PHP运行的用户拥有给定的文件或文件夹。
注意:建议您不要在CRON中以root身份运行此脚本。
如果您正在编辑/etc/crontab
,请确保用户参数(一周一次)是root。
如果您通过crontab -e
编辑crontab,请添加用户参数crontab -eu root
。