我试图清除cloudflare上的单个网址, 这是我的bash脚本
#!/bin/bash
if [ -z "$1" ]; then
echo "Usage: $0 http://your.domain.com/url"
exit 0
fi
#get this from Account section in Cloudflare
TOKEN="SECRETTOKEN"
EMAIL="EMAIL"
DOMAIN="DOMAIN"
curl -s https://www.cloudflare.com/api_json.html \
-d "a=zone_file_purge" \
-d "tkn=$TOKEN" \
-d "email=$EMAIL" \
-d "z=$DOMAIN" \
-d "url=$1" >> test.log #output to check if this script work
和我的php脚本
<?php
$domain = parse_url($_SERVER['HTTP_REFERER'], PHP_URL_HOST);
$actual_link = $_SERVER[HTTP_REFERER];
exec("/bin/bash /path/to/bkl.sh $actual_link");
echo "Success";
header('Refresh: 5; URL=' . $_SERVER['HTTP_REFERER']);
?>
方法:我在我的网站上放了一个按钮,所以当用户点击该按钮时,它将在服务器上执行bash脚本并清除cloudflare上的post url,之后访问者将被重定向回到帖子。
当我在我的ssh中手动测试bash脚本时,它工作得很好,test.log的结果是“SUCCESS”
但是当我在我的网站上运行php脚本时,test.log不会生成任何意味着它失败的输出。
谢谢你希望有人能给我一个更好的解决方案。