php - 允许服务器运行 cron 作业但使用 .htaccess 阻止普通用户访问

标签 php .htaccess cron

在普通目录的文件夹中有一个 cron 作业。

除了我的服务器运行 cron 作业之外,我试图不允许任何其他人访问此文件。

我试过:

order deny,allow
deny from all
allow from 127.0.0.1

但运气不好。我已经找到了将 cron 作业放在 web 根目录之外的根源,但无论我和我的主机如何尝试,我都无法让它运行。

谢谢。

最佳答案

这里有两件事:(a) 让 cronjob 运行,(b) 访问限制。

定时作业

新的 crontab 条目:

*/10 * * * * /usr/bin/php /somewhere/www/cronjob.php

在 cronjob.php 上设置正确的权限:

  • 执行标志:chmod +x/somewhere/www/cronjob.php

访问限制

一般来说,将 cronjobs 的脚本文件放在 www 路径之外是一个很好的做法。

如果您确实需要将它们放在 www 中,那么您可以使用访问限制来保护它们。对于网络服务器 Apache,这将通过 .htaccess 工作,如下所示:

.htaccess/somewhere/www/ 内:

<Files "cronjob.php">
Order Allow,Deny
Deny from all
</Files>

这会保护文件 cronjob.php 免受外部访问,但允许 cron 执行该文件。

如果没有任何效果,请按照我的分步指南进行操作:https://stackoverflow.com/a/22744360/1163786

关于php - 允许服务器运行 cron 作业但使用 .htaccess 阻止普通用户访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25145836/

相关文章:

php - 为什么我的 301 重定向需要这么长时间?

.htaccess - max_input_vars 限制在 PHP 5.2.17

settings - Raspberry Pi (RaspBMC) cronjobs 不工作

php - 设置 cron 作业以根据投票值更新文章信息

.htaccess - Wordpress Multisite .htaccess ..请解释功能

perl - Cron perl 脚本不会运行

如果时间段已被占用,则 PHP 检查数组

php - jqgrid中url :server. php 和 url :server. php?q=1 之间的区别

php - 将数组传递到 View 中(codeigniter)

php - 我如何解决 "PHP Fatal error: Unknown: Failed opening required"