Как запустить скрипт php CLI с веб-сайта

Возможный дубликат:
Запустите PHP CLI-скрипт с веб-страницы


У меня есть проблема.. И она о том, как запустить скрипт php cli с веб-страницы..
Обратите внимание, что я использую локальный хост и безопасный режим отключен..

Я уже пробовал exec() , system() и многие другие.
Вот пример того, что я хочу сделать:

Сайт содержит:

<?php
//blabla
$command = "/usr/bin/php test.php";
exec($command);
//blabla
?>

а для проверки того, что скрипт был успешно запущен, скрипт "test.php" содержит:

<?php
$file = "/home/Me/Desktop/cccc.txt";
$fp = fopen($file, 'w');
fwrite($fp, 'aaaaa');
fclose($fp);
?>

выполнение этого скрипта из командной строки нормально, но когда я запускаю его с веб-сайта, он не работает
есть идеи?


person iguider    schedule 20.08.2012    source источник
comment
Есть ли у веб-сервера права на запись в папку «Рабочий стол»? Когда вы запускаете скрипт с веб-страницы, он выполняется как пользователь веб-сервера, а когда вы делаете это непосредственно из командной строки, он делает это как любой пользователь, под которым вы вошли в систему.   -  person Patrick Evans    schedule 20.08.2012
comment
@ Мэтт Я читал это, но это не помогает .. Поэтому я решил опубликовать вопрос, чтобы получить прямые ответы ..   -  person iguider    schedule 20.08.2012
comment
@PatrickEvans Я точно не знаю, есть ли у него разрешение или нет, но я пробовал во многих других папках ... и я даже пробовал запускать другие скрипты, содержащие pcntl_fork(), и наблюдал за процессами в системе ... Потому что это то, что я хочу делать дальше :)   -  person iguider    schedule 20.08.2012


Ответы (3)


попробуйте с более простой командой, такой как exec("dir").

Если это работает, попробуйте whoiam() и поищите разрешения.

person Marc    schedule 20.08.2012
comment
Этот код работает отлично: exec('ls', $out); print_r ($ вне); Я не знаю, что я буду делать теперь :/ - person iguider; 20.08.2012
comment
и выполнение: echo exec(whoami); возвращает: www-данные - person iguider; 20.08.2012
comment
затем напишите perms prob, убедитесь, что www-data может записывать в каталог. - person Marc; 21.08.2012
comment
Нет, не может.. В этом была проблема.. Спасибо :) - person iguider; 24.08.2012

Вам нужно сообщить команде командной строки, где находится test.php; «рабочий каталог» почти наверняка не будет местом расположения файлов PHP.

Попробуйте $command = '/usr/bin/php ' . dirname(__FILE__) . 'test.php';

person IMSoP    schedule 20.08.2012

Убедитесь, что у пользователя веб-сайта (обычно Apache) есть права на выполнение этого скрипта.

person Ryre    schedule 20.08.2012
comment
и как я мог это сделать? и спасибо за быстрый ответ :) - person iguider; 20.08.2012
comment
Также потребуются разрешения на запись в cccc.txt в этом каталоге. - person Explosion Pills; 20.08.2012
comment
@ExplosionPills Я думаю, что у него есть разрешение на это ... любыми способами ... это был пример, потому что, если этот скрипт сработает, я буду использовать основы для другого ... - person iguider; 20.08.2012