【问题标题】:How can I run a linux command on Windows XAMPP with shell_exec()如何使用 shell_exec() 在 Windows XAMPP 上运行 linux 命令
【发布时间】:2020-08-13 11:18:54
【问题描述】:

我想通过shell_exec 在我的php 脚本中运行sed 命令,但出现以下错误:

'sed' is not recognized as an internal or external command,
operable program or batch file.

这是因为 XAMPP 使用 windows shell。
有什么办法可以将其配置为使用 linux shell?

【问题讨论】:

  • 使用 PowerShell 和适用于 Linux 的 Windows 子系统将 Linux 命令集成到 Windows 中。 devblogs.microsoft.com/commandline/…
  • @lit 我认为这可以作为答案发布。
  • @rineez 你说得对,我会做的。
  • 澄清一下:您是否在本地系统的任何位置安装了sed,例如:WSL、cygwin、....?为什么不在您的 PHP 脚本中实现 sed 调用背后的逻辑以保持独立于主机系统?

标签: php shell cmd xampp


【解决方案1】:

PHP shell_exec 将尝试在主机系统中运行该命令。 因此不能在 windows 上运行 linux 命令。

如果你真的想尝试在 windows 中运行它并且你有 windows 10,也许你可以尝试使用 wsl(windows 子系统 linux)

【讨论】:

  • 谢谢!有趣的是,我在 Ubuntu 上进行测试,所以我什至使用了 wsl,但不知道该怎么做才能让 php / xampp 使用它。 @lit 的评论让我走上了正确的道路我不知道这一点,但解决方案是将wsl 添加到命令之前:wsl sed xxx
【解决方案2】:

感谢@SKos 和@lit,我找到了解决方案,只需安装Windows Subsystem for Linux,然后将wsl 添加到linux 命令。

shell_exec('wsl sed "s/abc/def/"')

【讨论】:

    猜你喜欢
    • 2016-03-10
    • 2017-07-06
    • 1970-01-01
    • 2013-03-25
    • 2015-08-11
    • 1970-01-01
    • 2011-09-03
    • 2012-03-21
    • 2018-11-17
    相关资源
    最近更新 更多