我想每天执行一个PHP脚本。我有一个包含下面行的bash脚本。我正在用那个剧本做这件事。但通过这种方式,它可以从另一台计算机执行。让我们说webservername =“slmnbr”任何身体都可以用
调用myscriptxhttp://slmnbr/myscript.php
我想从服务器上调用它。
BASE_URL=http://`get-webservername`
/usr/bin/wget --no-check-certificate --timeout=0 -O - "$BASE_URL/myscript.php"
提前致谢
答案 0 :(得分:2)
您需要使用PHP CLI(命令行界面)来执行此操作。它通常附带PHP安装包(或单独的包)。
因此,正如@James提到的那样,您需要在脚本名称前面加上CLI PHP可执行文件,它位于安装目录中的某个位置php.exe
。
在UN * X系统中,它位于/usr/bin
或/usr/local/bin
或/opt/local/bin
的某处。如果它在PATH中你可以简单地执行它:
php your_script.php
但请记住,从服务器运行脚本与从Web服务器运行脚本不同。对于例如您将不会拥有POST
或GET
个变量。所以你的脚本可能无效。
更新
您可以通过http守护程序运行PHP脚本的用户(通常为www-data
)使您的Web服务器无法访问cron运行脚本。
我建议只能由从cron运行它的用户读取它:
chown cronuser your_script.php
chmod 0400 your_script.php
UPDATE2
如果您使用与网络服务器相同的用户在cron中运行脚本,则在脚本顶部停止执行:
if (!(php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR']))) {
header('HTTP/1.1 403 Forbidden');
exit;
}
答案 1 :(得分:1)
要每天执行任务(或php脚本),请使用cron。
该链接包含您需要的所有信息,包括如何防止外部访问。
答案 2 :(得分:0)
对于任何最新版本的“php”,您应该获得一个名为的独立可执行文件:
“php.exe
”
只需执行此操作:
/usr/local/php.exe your_script.php