Я хочу написать фоновое задание. поэтому я пишу базовый скрипт для просмотра работы shell_exec. Скрипт выглядит следующим образом:
<?php
$op = shell_exec("php -v");
echo $op;
echo "back to the test.php";
?>
Выходом должна быть информация о версии php, но она выводит следующий неожиданный вывод:
back to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.phpback to the test.php
он печатает мои текущие страницы в 59-60 раз, а иногда и с content-type:text/html
Я пытался использовать другой файл php файла, тот же
Затем я попытался с помощью команд linux, таких как date, ls, он отлично работает. Пожалуйста, помогите мне разобраться в этой проблеме. Я не мог понять, что не так?
Я также пробовал абсолютные пути к php, но не имел никакой разницы, а также использовал другие функции php, такие как system, exec и т.д.
Редактирование Примечание. Я изменил функцию exec на shell_exec, потому что у меня есть место для размещения на диске. Результат, который я отобразил ниже, - from shell_exec
UPDATE Я не получил решение проблемы, но получил причину проблемы, в скрипте нет ничего из-за сервера. Я пишу в центр поддержки сервера, но не получаю ответа. Поэтому я думаю, что этот вопрос закрыт
Я думаю, что exec и эти функции отключены в вашем php.ini. Вы можете проверить это
if(function_exists('shell_exec')) {
echo "shell_exec is enabled";
} else {
echo "shell_exec is disabled";
}
Откройте php.ini и перейдите в раздел disable_functions.
Если в списке указан shell_exec, удалите его.
Затем перезапустите обработчик apache/php.
Также, если включен Безопасный режим, эта функция недоступна. Вам нужно отключить его.
Синтаксис для функции exec
string exec ( string $command [, array &$output [, int &$return_var ]] )
Таким образом, это второй аргумент $ output, который будет заполняться выводом команды. Тем не менее он вернет массив не в качестве строки. Вам нужно разобрать эти данные, чтобы получить версию.
exec("/usr/bin/php -v", $out);
print_r($out);
Также я предлагаю использовать полный путь для php в функции exec.