it-swarm.com.ru

PHP exec для запуска файла

Последние 3 часа я пытаюсь сказать PHP запустить простой файл. Я использую Wamp-сервер для Windows на локальном хосте (Windows 8)

Я пытался с exec() работать с:

 echo exec('whoami');

Я получил ответ и авторитет.

Также протестировано с:

if(function_exists('exec')) {
echo "exec is enabled";
}

Так это наверное работает?

Я пытаюсь запустить файл с именем tester.php

Когда я включаю это, это работает, когда я требую, чтобы это работало. Мне нужно выполнить это в фоновом режиме. Когда я обновляю файл, код работает без ошибок, он пишет в базу данных нормально.

Когда я пытаюсь выполнить его, он не работает.

Я старался :

       exec("php http://localhost/diplomski/program/defender/tester.php");
       exec("php-cli http://localhost/diplomski/program/defender/tester.php");
       exec("http://localhost/diplomski/program/defender/tester.php");

Не работает, тоже попробовал:

        exec("php http://127.0.0.1/diplomski/program/defender/tester.php");
        exec("php-cli http://127.0.0.1/diplomski/program/defender/tester.php");
        exec("php-cli d:\wamp\www\diplomski\program\defender/tester.php")

Не работает и попробовал:

        exec("php tester.php");
        exec("php-cli tester.php");
        exec("tester.php");

Также попробовал:

         $WshShell = new COM("WScript.Shell");
         $oExec = $WshShell->Run("D:\wamp\bin\php\php5.3.13\php-win.exe -f d:\wamp \www\diplomski\program\defender/tester.php", 0, false);

Пробовал это, его освежает бесконечно и не работает:

        exec("php d:\wamp\www\diplomski\program\defender/tester.php");
        exec("php-cli d:\wamp\www\diplomski\program\defender/tester.php");
        exec("d:\wamp\www\diplomski\program\defender/tester.php");

Я начинаю тянуть свои волосы здесь. В первый раз я пытаюсь использовать exec(), и я не очень хорош в этом или в командах.

6
Avi

Укажите полный путь к исполняемому файлу PHP и ​​полный путь к скрипту PHP. Вы можете сохранить вывод в $output, чтобы увидеть, что произвел скрипт:

exec("d:/path/to/php.exe d:/wamp/www/diplomski/program/defender/tester.php", $output);
print_r($output);
10
AbraCadaver

1) Какая версия php? Если он старше, чем 5.4.0 php может быть в безопасном режиме, при включенном безопасном режиме вы можете запускать файлы только в пределах safe_mode_exec_dir.

2) Примечание к этой функции в php.net Примечание:

If a program is started with this function, in order for it to continue running in the background, the output of the program must be redirected to a file or another output stream. Failing to do so will cause PHP to hang until the execution of the program ends.

3) Так что вы можете попробовать это Как заставить скрипт php запускать другой скрипт php Вы можете попробовать это

 <?php
 $somearg = escapeshellarg('blah');
 exec("php file2.php $somearg > /dev/null &");

4) Вы можете создать запланированное задание Как запустить файл PHP в запланированном задании (планировщик заданий Windows)

1
Clickbeetle