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脚本但是我想要。
答案 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/