命令在终端中工作,在php中不工作

命令在终端中工作,在php中不工作,php,Php,我已经用php为我的web应用程序做了一个扩展。我希望php脚本重新生成扩展,因此我尝试向终端发送一个命令。看起来是这样的: shell_exec("make -C /folder1/folder2"); 不管怎样,它都不会成为.so文件。我在该文件夹上使用了chmod 777使其可编辑,但没有帮助。当我在终端中直接使用命令时,它工作正常: make -C /folder1/folder2 创建.so文件时没有任何问题,扩展名中的函数可以正常工作。有人对此有解决方案吗?确保PHP未在安全模式

我已经用php为我的web应用程序做了一个扩展。我希望php脚本重新生成扩展,因此我尝试向终端发送一个命令。看起来是这样的:

shell_exec("make -C /folder1/folder2");
不管怎样,它都不会成为.so文件。我在该文件夹上使用了
chmod 777
使其可编辑,但没有帮助。当我在终端中直接使用命令时,它工作正常:

make -C /folder1/folder2

创建.so文件时没有任何问题,扩展名中的函数可以正常工作。有人对此有解决方案吗?

确保PHP未在安全模式下运行,并且PHP用户对文件和文件夹具有读/写访问权限。有关更多信息,请阅读上的注释。

确保PHP未在安全模式下运行,并且PHP用户对文件和文件夹具有读/写访问权限。阅读上的评论以了解更多信息。

尝试在PHP脚本中放置
make
的绝对路径,例如
/usr/bin/make
。刚刚尝试过,结果仍然相同:(尝试在PHP脚本中放置
make
的绝对路径,例如
/usr/bin/make
。刚刚尝试过,结果仍然相同:(安全模式已关闭,我可以自由地手动编辑/添加/删除该文件夹中的文件。您可以,但apache/PHP运行的用户是否可以?默认情况下,Linux的用户数远不止此,但其他用户通常没有登录权限。apache倾向于以apache、http、www用户或类似的方式运行。请选中top或
ps aux | grep httpd
to f找出apache运行的用户,并确保您试图访问的文件和文件夹被该用户设置为可读,或者通过将apache用户添加到组中,或者(这是一个非常糟糕的主意,但会起作用)将文件和目录设置为777。我刚才在php脚本中使用了“whoami”,你说得对。它返回了。www data:)我对linux很陌生,有没有一种简单的方法可以为该用户添加权限?如果该文件夹只供apache使用,那么将该文件夹添加到www数据。您只需要www数据所属的组。然后do
chown-R owner:group folder
安全模式关闭,我可以在该模式下自由手动编辑/添加/删除文件t folder您可以,但是apache/PHP运行时的用户可以吗?默认情况下,Linux的用户比这多得多,但其余的用户通常没有登录权限。apache通常以apache、http、www用户或类似的身份运行。请检查top或
ps aux | grep httpd
以查找apache运行时的用户,并确保文件和您试图访问的文件夹被该用户设置为可读,或者通过将apache用户添加到组中,或者(这是一个非常糟糕的主意,但会起作用)将文件和目录设置为777。我刚才在php脚本中使用了“whoami”,你说得对。它返回了。www data.:)我对linux非常陌生,有没有一种简单的方法可以为该用户添加权限?如果该文件夹只供apache使用,那么将该文件夹添加到www数据。您只需要www数据所属的组。然后执行
chown-R owner:group folder