exec включен, но скрипт не вызывается

Mashino

Новичок
exec включен, но скрипт не вызывается

Такая проблема ребята! Наконец-то добился, чтобы на хосте включили функцию exec, хотя на этом тарифе она по умолчанию должна была работать. На другом хосте функция работала нормально и вызывала пхп скриптик в фоновом режиме.
На этом хосте (макхост) функция пашет - exec("whoami") выдает. Но вот запустить скрипт уже не получается. В саппорте сказали попробовать вот так запустить:
$script = "/home/httpd/domen/httpdocs/test.php"; // скрипт
$parameters = "do=make"; // параметры
exec("/usr/bin/php -c /home/httpd/domen/cgi-bin/php-cgi.ini -f ".$script." ".$parameters." > /dev/null &");

но так не пашет.

до этого на другом хосте запускал так:

$script = "test.php"; // скрипт
$parameters = "do=make"; // параметры
exec('php -f '.$script.' '.$parameters.' > /dev/null &');
и все работало.

/cgi-bin/php-cgi.ini - файл личной конфигурации на макхосте.
Как запустить скрипт?
Прошелся по форуму, ответа на этот вопрос не нашел. Помогите, пожалуйста.
 

dimagolov

Новичок
ну и? мы должны догадаться что у тебя там за ошибки возникают?

п.с. в зачем тебе cgi-ный конфиг для cli? или это без разницы?
 

Mashino

Новичок
попробовал без параметров - выполняет, но тогда идет зацикливание. Как передавать параметры?

-~{}~ 12.01.10 01:00:

Автор оригинала: dimagolov

п.с. в зачем тебе cgi-ный конфиг для cli? или это без разницы?
Чтоб иметь личную конфигурацию файла php.ini на макхосте нужно сделать переход на php-cgi
 

dimagolov

Новичок
попробовал без параметров - выполняет, но тогда идет зацикливание
странно. у тебя бывают другие параметры кроме "do=make"? или ты что-то утаиваешь и параметры на самом деле другие?
 

Mashino

Новичок
нет, только этот параметр, захожу на страницу вида сайт/test.php?do=make все выполняется (для теста идет запись в файл)

test.php:

$do = $_REQUEST["do"];
$script = "/home/httpd/domen/httpdocs/test.php"; // скрипт
$parameters = "do=make"; // параметры
if ($do != "make")
echo exec("/usr/bin/php -c /home/httpd/domen/cgi-bin/php-cgi.ini -f ".$script." ".$parameters);
else
{
$file = fopen ("test.txt","w+");
$str = 'Был запуск в фоновом режиме в '.date("H:i:s").'<br>';
... запись в файл


Функция exec так не запускается, если запустить скрипт без параметра из браузера.
 

dimagolov

Новичок
блин, ты разницу между параметрами командной строки и GET параметрами понимаешь?

и вообще, нахрена тебе передавать "do=make" в запускаемый скрипт? чтобы порождать рекурсивно бесконечное множество процессов?

-~{}~ 11.01.10 16:28:

сделай 2 скрипта:
1-й запускается веб-сервером и порождает фоновый процесс 2-го скрипта
2-й делает что-то в фоне и никак не может быть запущен веб-сервером (находится вне document_root)
 

Mashino

Новичок
на другом хосте параметры передавались нормально. do = make передаю как раз для того, чтобы не было рекурсии, код я же прислал.

-~{}~ 12.01.10 01:30:

Автор оригинала: dimagolov

сделай 2 скрипта:
1-й запускается веб-сервером и порождает фоновый процесс 2-го скрипта
2-й делает что-то в фоне и никак не может быть запущен веб-сервером (находится вне document_root)
Мне нужно передавать во второй скрипт параметры, потому что они будут меняться
 

dimagolov

Новичок
началось. ну ты, дорогой, определись. то у тебя параметры будут меняться, то нет.

но в начале почитай, как передаются параметры в CLI
 

Mashino

Новичок
dimagolov, спасибо! Решил с твоей помощью проблемку!
Достаем параметры из массива $argv.
 

dimagolov

Новичок
надо же :) как оказалось не параметры не передавались, а полученные смотрелись неправильно :D
 
Сверху