如何从PHP执行Windows10的Bash命令?

时间:2016-08-03 07:12:33

标签: php windows bash

Windows 10今天刚刚发布了周年纪念更新。现在您可以使用Linux子系统中的Ubuntu flavoured bash命令。

问题是:如何从PHP执行Windows10&#Bash命令?

我试过

<?php  
    exec('bash',$out1,$result1);
    exec('ls -l',$out2,$result2);
    var_dump($out1);
    var_dump($result1);
    var_dump($out2);
    var_dump($result2);

它不起作用。所有$ out都是空数组,两个$结果都是1。 任何的想法?

刚刚发现我可以直接从子系统运行Web服务器。

e.g。

$ sudo apt-get install apache2
$ sudo service apache2 start

然后将所有网页内容放在位于%localappdata%\ Lxss \ rootfs

的子系统目录中

此时我可以执行bash脚本但是我想要。

2 个答案:

答案 0 :(得分:0)

你做不到。 Windows上的Ubuntu实现为Windows内核正下方的不同子系统。因此它与正常的Windows进程分开运行,无法与它们进行交互。 (至少这是我理解的方式)。但也许您只需使用C:\Windows\System32\bash.exe作为命令。

答案 1 :(得分:0)

Bash并不是用来运行服务器,但你可以在bash上运行PHP-CLI而不会出现问题。

不是在Windows中运行PHP脚本然后访问bash,而是更容易创建一个命令来直接在bash中运行PHP脚本。

所以你要运行`bash.exe -c“php path / to / php-script.php”

https://blogs.msdn.microsoft.com/commandline/2016/10/19/interop-between-windows-and-bash/