Я застрял.Я получаю эту неясную ошибку при развертывании моего приложения Laravel 5.5 на сервере Digital Ocean Nginx / Ubuntu:
sh: 1: -n: not found
Мое приложение отлично работает на моем локальном сервере Xampp.Эта ошибка появляется, когда PHPjasper выдает исключение при выполнении отчета.Я трижды проверил все параметры и разрешения, связанные с этим.Все необходимые файлы расположены там, где они должны быть.Я не уверен, с чего начать поиск, поэтому любой ввод или интерпретация этой ошибки были бы полезны.
FWIW, это код, который запускается и выдает ошибку:
$ext = "pdf";
//Jasper options from ENV
$jdriver = env("JASPER_DB_DRIVER");
$jusername = env("JASPER_DB_USERNAME");
$jpassword = env("JASPER_DB_PASSWORD");
$jhost = env("JASPER_DB_HOST");
$jdatabase = env("JASPER_DB_DATABASE");
$jport = env("JASPER_DB_PORT");
$username = Auth::user()->name;
$output = public_path().'/storage/reports/'.$id.'/'.$username.$id.'_'.$filename;
$filepath = storage_path().'/reports';
$input = storage_path().'/reports/'.$filename.'.jasper';
$outputfile = storage_path().'/reports/'.$filename.$id.'.'.$ext;
$options = [
'format' => [$ext],
'locale' => 'en',
'params' => ['user_id' => $id,
'user_name'=> $username],
'db_connection' => [
'driver' => $jdriver,
'username' => $jusername,
'password' => $jpassword,
'host' => $jhost,
'database' => $jdatabase,
'port' => $jport
]
];
$jasper = new PHPJasper;
$jasper->process(
$input,
$output,
$options
)->execute();
Все это прекрасно работает с последней командой «execute», а затем бомбами при выполнении PHPjasper.
Код в PHPjasper.php, который выдает исключение:
/**
* @param bool $user
* @return mixed
* @throws Exception\InvalidCommandExecutable
* @throws Exception\InvalidResourceDirectory
* @throws Exception\ErrorCommandExecutable
*/
public function execute($user = false)
{
$this->validateExecute();
$this->addUserToCommand($user);
$output = [];
$returnVar = 0;
chdir($this->pathExecutable);
exec($this->command, $output, $returnVar);
if ($returnVar !== 0) {
//throw new \PHPJasper\Exception\ErrorCommandExecutable();
throw new \Exception("{$output[0]}", 1);
}
return $output;
}
Это выглядиткак ошибка Linux, так что если кто-нибудь может порекомендовать способ отладки и выяснить, в чем проблема, я был бы очень признателен.