index.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. // Your Token
  3. $toCheckToken = 'your_to_verify_token';
  4. // Your valid ip address
  5. $validIP = array('123.45.67.89');
  6. // Uncomment to set log
  7. //$logFile = '/tmp/deploy.log';
  8. $remoteIP = $_SERVER['REMOTE_ADDR'];
  9. $time = date("Y-m-d H:i:s");
  10. if (isset($logFile)) {
  11. $log = true;
  12. $fs = fopen($logFile, 'a');
  13. fwrite($fs, "[start deploy] time:{$time}".PHP_EOL);
  14. } else {
  15. $log = false;
  16. }
  17. # Check IP
  18. if (!in_array($remoteIP, $validIP)) {
  19. $msg = "Invalid IP:".$remoteIP;
  20. echo $msg;
  21. $log && fwrite($fs, $msg.PHP_EOL);
  22. exit(0);
  23. }
  24. # Decode data
  25. $json = file_get_contents("php://input");
  26. $data = json_decode($json);
  27. if (!$data || empty($data)) {
  28. $data = (object) $_POST;
  29. }
  30. # Check token
  31. if (!isset($data->token) || $data->token != $toCheckToken) {
  32. $msg = "Invalid token";
  33. echo $msg;
  34. $log && fwrite($fs, $msg.PHP_EOL);
  35. exit(0);
  36. }
  37. # Check function
  38. if (!function_exists('exec')) {
  39. echo "exec funciton is not avaiable!";
  40. exit(0);
  41. }
  42. # Exec update script
  43. exec("sh auto_deploy.sh",$output);
  44. foreach ($output as $val) {
  45. echo $val."\n";
  46. }
  47. # log
  48. $msg = "Finish auto deploy at ".$time;
  49. $log && fwrite($fs, $msg.PHP_EOL);
  50. isset($fs) && fclose($fs);