在linux/apache服务器上的cron作业上运行script.php但限制公共访问php文件

fly*_*sic 6 php cron public

我有这个script.php文件,我想在我的linux/apache服务器上作为cron作业运行.

但是,我不希望公众访问www.mycompanyname.com/script.php并同时运行该脚本.

我们怎么能阻止这种情况?我们如何才能将脚本限制为服务器的访问权限?它是使用chmod还是在.htaccess文件中设置一些内容?

有什么建议?

ale*_*lex 9

您可以将此作为PHP的第一行script.php...

if (PHP_SAPI !== 'cli') {
    exit;
}
Run Code Online (Sandbox Code Playgroud)

如果有人通过HTTP击中了你的脚本时,PHP_SAPIcgi相信,而不是cli,导致你的脚本马上退出.

当然,这取决于你的cron调用php script.php.

你也可以发送......

header('HTTP/1.0 404 Not Found');
Run Code Online (Sandbox Code Playgroud)

...或者当然,将它留在您的Web根目录之外.


Pop*_*lus 6

如果将脚本放在webroot文件夹之外,则无法通过Web服务器访问该脚本.例如,您的webroot位于/ var/www/public_html /您将script.php放在该文件夹之外,例如:/ var/www /


cam*_*aca 2

您可能有一个类似public_html目录的东西,其中包含所有 phps.php 文件。只需将其放在该目录之外即可。