Php Cron使缓存文件不可写入

Php Cron使缓存文件不可写入,php,permissions,cron,centos,Php,Permissions,Cron,Centos,我有一个cron作业,设置为每五分钟运行一次。因为这个cron作业不是通过apache运行的,所以我相信如果它最终触及了网站的服务器端缓存文件(它经常这样做),那么这些缓存文件最终将不再由apache写入,因此每次在浏览器中运行网站时,我都会遇到无法写入缓存文件的错误。有没有办法让它不出现这个问题?如果相关,请在Centos 6.4上运行网站。此问题至少有两种解决方案,都涉及使用chmod和chown */5 * * * * /my/five/minute/script.sh; chmod 66

我有一个cron作业,设置为每五分钟运行一次。因为这个cron作业不是通过apache运行的,所以我相信如果它最终触及了网站的服务器端缓存文件(它经常这样做),那么这些缓存文件最终将不再由apache写入,因此每次在浏览器中运行网站时,我都会遇到无法写入缓存文件的错误。有没有办法让它不出现这个问题?如果相关,请在Centos 6.4上运行网站。

此问题至少有两种解决方案,都涉及使用
chmod
chown

*/5 * * * * /my/five/minute/script.sh; chmod 664 ./some-file; chown apache:apache ./some-file
解决方案1:

将您的cronjob运行的内容移动到它自己的shell脚本中,并告诉cron运行您的shell脚本

运行原始命令后,运行
chmod
chown
以根据需要更改权限

#!/bin/sh
printf "Do your stuff here\n"
DIR_ROOT="./your-dir-here/"
find $DIR_ROOT -type f -print0 | xargs -0 chmod 664 # make all files user+group r+w
find $DIR_ROOT -type d -print0 | xargs -0 chmod 775 # make all directories user+group r+w+x
chown apache:apache -r $DIR_ROOT
解决方案2:

您可以不使用shell脚本,而是在cronjob运行的命令中附加分号,然后添加
chmod
chown

*/5 * * * * /my/five/minute/script.sh; chmod 664 ./some-file; chown apache:apache ./some-file
希望有帮助

注意:这两种解决方案故意不一样,我希望您尝试以自己的方式来考虑这一点