Возможно ли запустить php exec через cygwin? - PullRequest
1 голос
/ 15 июня 2010

Привет, ребята, у меня есть одна команда php exec, которая работает на моем удаленном сервере Linux, но не на моем локальном сервере Windows (пакет WAMP).Я действительно хочу создать идентичную рабочую станцию, чтобы я мог тестировать локально и затем обновлять свой удаленный сервер.Если у кого-то есть какие-либо предложения или решения, кроме перехода на Linux, я был бы очень признателен.

<?php

$safe_path = escapeshellarg('fake-virus.txt');

$command = '/usr/bin/clamscan --stdout ' . $safe_path;

$out = '';

$int = -1;

exec($command, $out, $int);



echo $int;



if ($int == 0) {

    // all good;

} else {

    echo 'o no';// VIRUS!;

}





?>

Ответы [ 3 ]

1 голос
/ 15 июня 2010

Я действительно хочу создать идентичную рабочую станцию, чтобы я мог тестировать локально и затем обновлять свой удаленный сервер.

Установка cygwin - неправильный способ сделать это.Просто используйте virtualbox, который вы можете получить из здесь , и запустите виртуальную машину Ubuntu.Гораздо проще (и приятнее).

0 голосов
/ 14 декабря 2014

По крайней мере, в одном случае я смог использовать shell_exec () из php wamp (на windows :-)) через cygwin. Я должен был установить procps или что-то в инсталляторе cygwin, чтобы иметь лучшую команду в cygwin. Затем я смог использовать wamps php shell_exec для выполнения этой команды cygwin top, используя предложение Kishans в http://php.net/manual/en/function.shell-exec.php:

<?php
echo $result = shell_exec("C:\cygwin64\bin\bash.exe --login  -c '/cygdrive/c/cygwin64/bin/top.exe --b -n 1'");

?>

/////////////////
Цитируются высказывания Киши:

Если вы работаете в Windows и у вас есть Cygwin, вы можете выполнить все ваши двоичные файлы Cygwin с помощью shell_exec () следующим образом:

<?
$result = shell_exec("C:\cygwin\bin\bash.exe --login  -c '/cygdrive/c/cygwin/bin/convert.exe --version'");
print($result);
?>

Ключом является опция "--login", которая добавляет все необходимые общие двоичные и библиотечные пути cygwin к $ PATH. Без этой опции некоторые двоичные файлы cygwin, которые ссылаются на другие библиотеки (например, двоичные файлы ImageMagick, ссылающиеся на X11), не будут работать, и вы можете увидеть ошибки типа «cygX11-6.dll не найден, не удалось запустить convert.exe»

0 голосов
/ 03 июля 2013

Используйте 'su', он отлично работает, когда я делаю классные кроссовые вещи

shell_exec('su Administrator -c "cmd/script"');

Это не так сложно запустить Cygwin с Apache PHP и многое другое. Вот довольно простой урок cygwin-apache-php Веселитесь!

...