shell_exec не выполняется из запросов браузера - PullRequest
0 голосов
/ 04 декабря 2018

После того, как пользователь отправляет данные через POST, я показываю временную страницу и выполняю процесс в фоновом режиме с помощью shell_exec, по крайней мере, это то, что я пытаюсь сделать.

Вот мои настройки страницы:

C: \ laragon \ www \ index.php

<?php
    try {
        shell_exec("php " . __DIR__ . "/test.php");
    } catch(Exception $e) {
        echo "Exception: " . $e;
    }
?>

C: \ laragon \ www \ test.php

<?php
    $myfile = fopen(__DIR__ . "/testfile.txt", "w");
    echo "test";
?>

Если я перейду на localhost или localhost /index.php, второй скрипт не запускается.Однако, когда я пытаюсь вызвать оба сценария из cmd, он работает с ними обоими.

php C:\laragon\www\index.php

php C:\laragon\www\test.php

Они оба работают и создают файл с именем testfile.txt

1 Ответ

0 голосов
/ 04 декабря 2018

Ваш веб-сервер работает от имени определенного пользователя и ему нужен путь к php.exe, поскольку для пользователя веб-сервера нет переменной среды пути:

shell_exec("c:\path\to\php " . __DIR__ . "/test.php");
...