Страница 1 из 1

Windows 8 CLI

Добавлено: 16 мар 2013, 22:03
maksud
Скачал openserver 4.8.2, в меню есть Консоль (раньше не замечал, был или нет), запускаю его, и в консоли выполняю скрипт php /path/script.php, скрипт выполняется, то после выводится окно с ошибкой CLI.
В чем может быть ошибка? сервер запущен с правами администратора
Помимо этого, я бы хотел узнать, возможно ли через этот консоль как то установить расширения php которые доступны в линуксе, особенно интересует pcntl_fork().
Спасибо.

p.s.: а вообще openServer крутая вещь! Спасибо за Ваш труд Максим.

Добавлено: 16 мар 2013, 22:48
Максим
Это валится php, FATAL ERROR, а почему - вам лучше знать что там в скрипте. pcntl нет, так как это расширение только для UNIX систем.

Добавлено: 16 мар 2013, 23:07
maksud
Максим писал(а):pcntl нет так как это расширение только для UNIX систем.
ага я это уже понял что не обойдусь без второй ОСи.
а насчет скрипта, у меня там было просто вывод Phpinfo();

а вообще php отваливается даже если пишу php -m (вывод загруженных модулей)

Добавлено: 16 мар 2013, 23:22
Максим
maksud писал(а):а вообще php отваливается даже если пишу php -m (вывод загруженных модулей)
Да, спасибо что подсказали, видимо виновата эта программа-консоль. В следующей версии Open Server буду вызывать обычную консоль Windows.

Добавлено: 16 мар 2013, 23:28
medar
maksud, а в предыдущих версиях было ок ?
У меня ровно так же падал cli в windows 7, но иногда. У тебя это один процесс, или ты много запускаешь ?

По поводу pcntl_fork - форкать под виндой не получится, но запускать процессы можно.
Раскопал в архивах у себя.
Вот файл run.vbs:
Set oShell = WScript.CreateObject("WScript.Shell")
Str = "php " & WScript.Arguments(0) & " --uri=" & WScript.Arguments(1)
oShell.Run Str, 0, False
вызывать из php как
exec("/path/to/run.vbs /path/to/script.php")
стартует фоновый процесс script.php, без открытия консоли.

Добавлено: 16 мар 2013, 23:37
maksud
в предудыщих версиях я не запускал пхп через консоль, недавно написал один парсер под линукс многопроцессный, вот хотел бы его под винду переписать (форкающую часть).

я пока ничего не запускал в консоли, просто хотел получить список загруженных модулей php -m, и у меня php отваливается.
medar писал(а):Раскопал в архивах у себя.
Вот файл run.vbs:

Код: Выделить всё
Set oShell = WScript.CreateObject("WScript.Shell")
Str = "php " & WScript.Arguments(0) & " --uri=" & WScript.Arguments(1)
oShell.Run Str, 0, False

вызывать из php как

Код: Выделить всё
exec("/path/to/run.vbs /path/to/script.php")

стартует фоновый процесс script.php, без открытия консоли.
а я под винду всегда запускал так:
function execInBackground($phone, $summa, $updateId) {
	$parameters = $phone."+".$summa."+".$updateId;
	$cmd = "php.exe paymoney.php {$parameters}";
	pclose(popen("start /B ". $cmd, "r"));
}
но незнаю как получить внутри процесса его уникальный PID из диспетчера задач, этот момент важный, нужно поискать...

Добавлено: 16 мар 2013, 23:42
medar
Да, кусок со start /B у меня стоит рядом коде, но закомментированный почему-то, не помню почему.

Еще можно попробовать под виндой заюзать gearman для фоновых задач, не пробовал, но он, вроде, ставится.

Добавлено: 17 мар 2013, 11:05
maksud
medar писал(а):Еще можно попробовать под виндой заюзать gearman для фоновых задач, не пробовал, но он, вроде, ставится.
спасибо почитаю :)

Добавлено спустя 11 часов 18 минут 27 секунд:
Максим писал(а):Да, спасибо что подсказали, видимо виновата эта программа-консоль. В следующей версии Open Server буду вызывать обычную консоль Windows.
Максим, незнаю от чего, но сегодня почему то console работает нормально, нет ошибок CLI / php :) незнаю от чего, я вроде ничего не делал