我在我的OSX上安装了MAMP并试图从我的php文件中运行一个shell命令,但似乎我无法访问终端或命令没有被发送到终端。
$cmd = "some shell command"
$output = shell_exec($cmd);
if($output == null)
echo "returned null";
else echo $output;
我总是得到“返回null”并且没有执行shell命令。命令是正确的,如果我复制了“some shell command”并将其粘贴到终端,则执行该命令。我在Windows中测试了相同的文件,命令行是从php执行的,这个问题只出现在mac中。那么如何在mac中访问终端呢?
PS:
答案 0 :(得分:2)
Windows / Mac / Linux OS工作之间有很多区别。在Windows中,shell_exe命令提供了访问权限。即使用户在Windows中的资源有限,也可以执行shell_exe命令。
对于Mac / Linux操作系统,运行shell_exe命令有很多限制。强烈建议不要使用PHP的shell_exe命令。主机将很容易成为目标。您必须编辑PHP.INI以向用户提供shell_exe访问。
如果您不是Mac / Linux主机的管理员,请让机器管理员这样做。如果,管理员提供访问权限,那么你可以尝试另一种方法,这取决于你的项目要求。
用于编辑的正确PHP.INI文件取决于Machine使用的操作系统。位置通常根据需要改变。
如果您正在使用WHM CPanel,那么它就变得不那么容易了。 php.ini文件的一般位置
/usr/local/lib
如果您使用任何其他第三方程序,该位置通常会更改为
/usr/local/cpanel/3rdparty/etc/php.ini