Неожиданный вывод через shell_exec

Я хочу написать фоновое задание. поэтому я пишу базовый скрипт для просмотра работы 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-команды, такие как дата, LS работает отлично
Пожалуйста, помогите мне решить эту проблему, я не мог понять, что не так?

Я также опробовал абсолютные пути к php, но без разницы, а также использую другие функции php, такие как system, exec и т. Д.

Изменить примечание: Я изменил функцию exec на shell_exec, потому что я ошибся в этом. Вывод, который я отобразил ниже, сделан из shell_exec

ОБНОВИТЬ
Я не получил решение проблемы, но получил причину проблемы, в скрипте нет ничего, это связано с сервером. Я написал в центр поддержки сервера, но не получил ответ, поэтому я думаю, что этот вопрос закрыт

0

Решение

Я думаю, что 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.

Также, если включен безопасный режим, эта функция будет недоступна. Вы должны отключить это.

0

Другие решения

Синтаксис для функции exec:

string exec ( string $command [, array &$output [, int &$return_var ]] )

Так что это второй аргумент $ output, который будет заполнен выводом команды. Тем не менее, он вернет массив, а не версию как строку. Вам нужно проанализировать эти данные, чтобы получить версию.

exec("/usr/bin/php -v", $out);
print_r($out);

Также я предлагаю использовать полный путь для php в функции exec.

0

По вопросам рекламы [email protected]