2017-02-07 4 views
0

работает Laravel 5.2 на Xampp 321 Win7 Mysql5.6 PHP 5.6.3 Я не могу создать файл дампа BD .sqlLaravel MySQLDump создать пустой файл, но та же команда, работа, когда выполнить с помощью XAMPP оболочки

 $filename = "backup-".Carbon\Carbon::now()->format('Y-m-d_H-i-s').".sql 2>&1"; 

     try{ 
      $command = "mysqldump --user=" . env('DB_USERNAME') ." --password=" . env('DB_PASSWORD') . " --host=" . env('DB_HOST') . " " . env('DB_DATABASE') . " > " . storage_path() . "/" . $filename; 
      $returnVar = NULL; 
      $output = NULL; 
      //exec command allows you to run terminal commands from php 
      exec($command, $output, $returnVar); 
      //dd($command); 
      return 1;  
     }catch(Exception $e){ 
      return $e->errorInfo; //some error 
     } 

При загрузке сценария он генерирует пустой файл! Но, выполняя команду dd ($ command) и копируя этот текст, эта команда отлично работает в оболочке Xampp. Любые идеи, пожалуйста?

+0

Вы используете команду мастеровых? – EddyTheDove

+0

нет, cmd непосредственно (из оболочки панели xampp) –

+0

Как вы собираетесь запускать его из Laravel? Если вы хотите, чтобы он запускался из Laravel, следуйте инструкциям здесь: https://laravel.com/docs/5.2/artisan – EddyTheDove

ответ

0

решаемый с помощью этого кода: настройка абсолютного пути туздЫшпра ADN, добавив двойной обратный слэш URL-адрес Var

$filename = "backup-".date("d-m-Y-H-i-s").".sql"; 
    $mysqlPath = "D:\\xampp/mysql/bin/mysqldump"; 

    try{ 
     $command = "$mysqlPath --user=" . env('DB_USERNAME') ." --password=" . env('DB_PASSWORD') . " --host=" . env('DB_HOST') . " " . env('DB_DATABASE') . " > " . storage_path() . "/" . $filename." 2>&1"; 
     $returnVar = NULL; 
     $output = NULL; 
     exec($command, $output, $returnVar); 
     return 1;//ok 

    }catch(Exception $e){ 
     return "0 ".$e->errorInfo; //some error 
    }