使用php运行bash以清除cloudflare

时间:2018-05-14 16:53:17

标签: php bash

我试图清除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不会生成任何意味着它失败的输出。

谢谢你希望有人能给我一个更好的解决方案。

0 个答案:

没有答案