具有位于普通目录中的文件夹中的cron作业。
除了运行cron作业的服务器外,我不允许其他任何人访问该文件。
我试过:
order deny,allow
deny from all
allow from 127.0.0.1但没有运气。我已经深入到将cron作业放到web根目录之外的根源,但是无论我和我的主机尝试了什么,我都无法让它运行。
谢谢。
发布于 2014-08-05 18:32:42
这里有两件事:(a)让cron作业运行,(b)访问限制。
克隆约伯
新的crontab条目:
*/10 * * * * /usr/bin/php /somewhere/www/cronjob.php在cronjob.php上设置正确的许可:
chmod +x /somewhere/www/cronjob.php访问限制
一般来说,将cron作业的脚本文件放置在www路径之外是一个很好的实践。
如果您确实需要将它们放置在www中,那么您可以使用访问限制来保护它们。对于webserver,这将通过.htaccess工作,如下所示:
.htaccess内部/somewhere/www/
<Files "cronjob.php">
Order Allow,Deny
Deny from all
</Files>这可以保护文件cronjob.php不受外部访问,但允许cron执行文件。
如果没有效果,请按照我的逐步指南:https://stackoverflow.com/a/22744360/1163786
发布于 2019-05-03 12:48:49
可以通过在crontab文件中设置环境来限制访问。
SCRIPT_RUN_ENV=mycronenv
并验证函数中的环境字符串:
if (get_env('SCRIPT_RUN_ENV') != 'mycronenv') {
die('Access denied');
}或者您可以通过IP限制访问。
if( $_SERVER['REMOTE_ADDR'] != $_SERVER['SERVER_ADDR'] || $_SERVER['REMOTE_ADDR'] != "127.0.0.1" ){
die('Access denied!');
}您可以通过.htaccess设置脚本文件的权限,如下所示:
Order deny,allow
Allow from THIS_SERVER_IP
Allow from 127.0.0.1
Deny from allhttps://stackoverflow.com/questions/25145836
复制相似问题