【发布时间】:2018-06-28 03:29:17
【问题描述】:
我正在关注 this guide 通过 Git 部署我的网站,但我在 PHP shell_exec() 或 exec() 方面遇到了一些问题。
部署脚本运行多个命令,例如git、whoami、which git、rsync 等。当我以服务器用户身份登录时,所有这些命令都有效。
但是,当我点击应该运行这些命令的 php 脚本时,它们不起作用。
whoami: command not found
git: command not found
rsync: command not found
which: command not found
我可以通过提供命令的路径来解决这个问题(例如/usr/bin/whoami => myuser),但是像/usr/bin/which rsync 这样的一些命令仍然不起作用。 (那个给我/usr/bin/which: no rsync in (/bin))
这些对于使项目正常运行并不重要,但我仍然想知道是否存在某种权限问题或我做错了什么。有人对此有任何见解吗?
【问题讨论】:
-
好像执行命令的环境的PATH变量仅限于
/bin目录 -
这是 apache/PHP 的问题吗?或者我该如何解决?
-
这些路径是在系统级别还是用户级别定义的...您正在测试它的执行用户...它与在 apache 上执行的用户是否不同?
标签: php linux command-line shell-exec