line3333
Новичок
Как связать pcntl + Apache
Имеется связка Apache + php + mysql. Apache взаимодействует с php через libphp5.so.
Задача такова:
Необходимо сделать систему, которая будет запускать выполнение внешнего скрипта, а пользователю сообщать, что такой скрипт уже запущен. После окончания работы скрипта, пользователь может "забрать" файл, сгенерированный данным скриптом.
я написал функцию :
function task_start($user,$puth,$arg){
$pid = pcntl_fork();
switch ($pid) {
case 0:
pcntl_exec($puth,$arg);
exit(0);
}
$open_file = fopen("./files/tasks","a");
$MergeString = $puth . " ";
for($i=0;$i<count($arg);$i++){
$MergeString = $MergeString . $arg[$i] . " ";
};
fprintf($open_file,"'%s' '%d' '%s' '%s'\n",$user,$pid,date("Y-M-d G-i-s"),$MergeString);
fclose($open_file);
}
Данная функция нормально работает если использовать /usr/bin/php. Если попытать вызвать эту функцию через Apache, то вылетает ошибка о том что неизвестная функция pcntl_fork.
Пересобрал Apache с опциями:
Configure Command './configure' '--with-apxs2=/usr/sbin/apxs' '--enable-pcntl' '--with-mysql'
Но не помогло.
Поскажите как можно решить эту проблему, или направьте на другой путь решения этой задачи!
Имеется связка Apache + php + mysql. Apache взаимодействует с php через libphp5.so.
Задача такова:
Необходимо сделать систему, которая будет запускать выполнение внешнего скрипта, а пользователю сообщать, что такой скрипт уже запущен. После окончания работы скрипта, пользователь может "забрать" файл, сгенерированный данным скриптом.
я написал функцию :
function task_start($user,$puth,$arg){
$pid = pcntl_fork();
switch ($pid) {
case 0:
pcntl_exec($puth,$arg);
exit(0);
}
$open_file = fopen("./files/tasks","a");
$MergeString = $puth . " ";
for($i=0;$i<count($arg);$i++){
$MergeString = $MergeString . $arg[$i] . " ";
};
fprintf($open_file,"'%s' '%d' '%s' '%s'\n",$user,$pid,date("Y-M-d G-i-s"),$MergeString);
fclose($open_file);
}
Данная функция нормально работает если использовать /usr/bin/php. Если попытать вызвать эту функцию через Apache, то вылетает ошибка о том что неизвестная функция pcntl_fork.
Пересобрал Apache с опциями:
Configure Command './configure' '--with-apxs2=/usr/sbin/apxs' '--enable-pcntl' '--with-mysql'
Но не помогло.
Поскажите как можно решить эту проблему, или направьте на другой путь решения этой задачи!