2013-11-13 4 views
4

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

Я пытался с 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(), и я не очень хорошо с ним или с командами.

+0

php добавлен к переменным env? – litechip

+0

Те, у кого есть URL-адреса, определенно не будут работать. Что вы ожидаете от интерпретатора PHP только с URL? Для этого нужен PHP-код. Для последних попыток, какова была ошибка? Является ли PHP частью переменной окружения для этого пользователя? – David

ответ

7

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

exec("d:/path/to/the/php/executable/php.exe d:/wamp/www/diplomski/program/defender/tester.php", $output); 
print_r($output); 
+0

Привет, спасибо AbraCadaver, что вы спасатель. Еще раз спасибо! – Avi

0

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) Таким образом, вы можете попробовать это How to make php script run another php script вы можете попробовать это

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

4) Вы можете создать запланированное Задача How to run a PHP file in a scheduled task (Windows Task Scheduler)

+0

Это версия php5.3.13, также требуется динамический путь к exe. – Avi

Смежные вопросы