PHP, проблема с exec ... как мне убедиться, что выполнение работает? - PullRequest
0 голосов
/ 29 марта 2011

Я загружаю видео, которое должно создать три миниатюры скриншота.У меня один и тот же код загрузки, работающий как в админке, так и во внешнем интерфейсе, но по какой-то странной причине большой палец генерируется только при загрузке из внешнего интерфейса, а не из внутреннего интерфейса ...

Мойструктура каталогов root/convert.php (это файл, выполняемый через вызов exec) (следующие два файла - это файлы загрузки, выполняемые соответственно на пользовательском и административном уровнях)

root/upload.php
root/siteadmin/modules/videos/edit.php

Я считаю, что конвертировать.php по какой-то причине не запускается со стороны администратора.Команда выглядит примерно так:

$cmd = $cgi . $config['phppath']. ' ' .$config['BASE_DIR']. '/convert.php ' .$vdoname. ' ' .$vid. ' ' .$ff;echo $cmd;die;
                        exec($cmd. '>/dev/null &');

И, повторяя exec $cmd, я получаю следующее:

/usr/bin/php /home/testsite/public_html/dev/convert.php 1272.mp4 1272 /home/testsite/public_html/dev/video/1272.mp4

Как мне убедиться, что convert.php запускается?

РЕДАКТИРОВАТЬ: ОК, теперь я уверен, что он не выполняется со стороны администратора, есть идеи, почему?

Ответы [ 3 ]

3 голосов
/ 29 марта 2011

http://php.net/manual/en/function.exec.php

"return_var" - если аргумент return_var присутствует вместе с выходным аргументом, то в эту переменную будет записан статус возврата выполненной команды.

Другой способ определить, действительно ли exec запускает файл convert.php, добавить некоторую отладочную информацию в convert.php (например, записать что-то в файл при запуске сценария covert.php).

0 голосов
/ 29 марта 2011

chmod 755 convet.php

Вы также убедитесь, что первая строка файла convert.php:

#!/usr/bin/php

проверьте полный путь к исполняемому файлу php cli.

Также убедитесь, что end.php las unix заканчивается строкой ("\ n")

0 голосов
/ 29 марта 2011

Просто идея

, вы можете напечатать «TRUE» в скрипте конвертации, когда он будет успешно выполнен.не добавляйте >/dev/null & проверьте возвращаемое значение exec

$value = exec($cmd);
if($value == 'TRUE')
  // did run sucessfully 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...