windows - Sådan skifter du shell, der bruges til shell\_exec i PHP?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger Windows, og jeg vil gerne konfigurere PHP for at bruge bash shell (installeret på min maskine takket være msysgit). Årsagen er, at jeg har Windows på min udviklingsmaskine og Linux på produktionsmaskinen.]]


Tak!

Bedste reference


Du kan t. Men du kan starte din egen skal som c:mingwinsh -c 'set'. Det ville naturligvis kræve Mingw på din maskine.


Ved hjælp af Cygwin ville det være:


shell\_exec("C:cygwininash.exe --login  -c '/cygdrive/c/cygwin/bin/convert.exe --version'");


Der er en grænse for kommandolinjelængde, derfor anbefaler jeg ikke at sætte scriptet selv der, hvis det er mere end blot en en-liner. Indstillingerne lige efter shell script-tolkens navn er til tolken. Hvis du vil passere argumenter til scriptet, som tolken udfører, skal den være inde i citaterne, dvs. lige efter '.exe' i konverteringseksemplet.


Du kan også røre et script til shell script tolken. På den måde behøver du ikke skrive det til en fil, og du kan stadig bruge et langt script.


dvs .:


$ echo "echo 'Hello world';" | sh
Hello world


Se http://php.net/manual/en/function.proc-open.php for hvordan man bruger rør i PHP. [5]