PHP shell_exec() 返回与 SSH 终端不同的结果
PHP shell_exec() returning different result than SSH Terminal
我有一台 Linux 机器 运行ning CentOS 7 安装了 Python 2.7.5。我正在尝试 运行 Arduino-CLI,这是一个需要 Python 的可执行文件。我写了一个命令来编译草图。如右侧所示,它有效编译。
当我在 PHP 中使用 sudo_exec() 运行 相同的命令时,它给我:
Error during build: exec: "python": executable file not found in $PATH
对于上下文,我在终端和 PHP 上都以 Web 用户身份登录。我能做些什么来修复它?
我终于解决了这个问题。 shell_exec()
中,PHP没有定义PATH环境变量。它也不知道当前的工作目录。所以在 shell_exec()
之前添加这几行就可以了:
chdir("/home/gyropalm/subdomains/app/studio"); //set current working directory
putenv("PATH=/usr/bin/"); //required to define python path or Arduino-CLI complains
我有一台 Linux 机器 运行ning CentOS 7 安装了 Python 2.7.5。我正在尝试 运行 Arduino-CLI,这是一个需要 Python 的可执行文件。我写了一个命令来编译草图。如右侧所示,它有效编译。
当我在 PHP 中使用 sudo_exec() 运行 相同的命令时,它给我:
Error during build: exec: "python": executable file not found in $PATH
对于上下文,我在终端和 PHP 上都以 Web 用户身份登录。我能做些什么来修复它?
我终于解决了这个问题。 shell_exec()
中,PHP没有定义PATH环境变量。它也不知道当前的工作目录。所以在 shell_exec()
之前添加这几行就可以了:
chdir("/home/gyropalm/subdomains/app/studio"); //set current working directory
putenv("PATH=/usr/bin/"); //required to define python path or Arduino-CLI complains