PHP shell_exec () не анализирует php-файл в другом каталоге - PullRequest
0 голосов
/ 26 октября 2019

Я столкнулся с проблемой и уже опробовал различные решения, но ни одно из них не работает должным образом. У меня есть файл с именем «kcsbtc.php» внутри папки rest_of_the_address / public_html / cronjobs, в котором я хочу запустить shell_exec (), который будет запускать другой php файл с именем «biki.php», вложенный в «rest_of_the_address / public_html / exchanges»следующим образом:

try {
          $path = realpath("../exchanges/biki.php");
          echo shell_exec("php -f $path");

}
      catch (Exception $e){
          echo "There seems to be an error on $exchange";
}

Это не работает, однако, если я переместу biki.php в cronjobs и использую либо $ path = 'biki.php', либо $ path = realpath ("biki.php") в обеих ситуациях это сработает и даст мне желаемый результат. Я думаю, может быть, это что-то, связанное с обработчиком php или разрешением оболочки для доступа к другим папкам, все еще не могу найти ответ, есть мысли?

Заранее спасибо

Вот полный код:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL | E_STRICT);

   $path = realpath('../exchanges/Functions.php');
   include_once $path;
   $path = realpath('../exchanges/tick_updater.php');
   include_once $path;

   $servername = "localhost";
   $username = "**********";
   $password = "**********";
   $dbname = "***********";
   $table = "kcsbtcticks";

   // Create connection
   $conn = new mysqli($servername, $username, $password, $dbname);
   // Check connection
   if ($conn->connect_error) {
       die("Connection failed: " . $conn->connect_error);
   }

   $sql = "SELECT exchange, pair FROM `".$table."`";
   $result = $conn->query($sql);
   $conn->close();

   $exchanges = array();
   $pairs = array();
      if ($result->num_rows > 0) {
       // output data of each row
         while ( $row = $result->fetch_array(MYSQLI_NUM)) {
           $exchanges[] = $row[0] ;
           $pairs[] = explode("/",$row[1]);    
         }
       }
   $i = 0;

   foreach ($exchanges as $exchange){
      $base = $pairs[$i][0];
      $quote = $pairs[$i][1];
      $path = realpath("../exchanges/".$exchange.".php");
      include_once $path;
      try {
          echo $path;
          echo shell_exec("php -f $path 2>&1");

      }
      catch (Exception $e){
          echo "There seems to be an error on $exchange";
      }
      echo "<br /><br />";
      $i++;
   } 
...