带参数的PHP shell_exec无效

时间:2012-01-13 20:38:23

标签: php linux cpanel shellexecute shell-exec

我的服务器中的shell_exec选项有问题。我正在运行带有CPanel和PHP的CentOS 5.7。

在我们的编码中,我们使用shell_exec将参数传递给php文件。我们的示例代码如下所示。我们从phpfile(后台进程)

调用它

vi test.php

<?php
shell_exec("php -f /home/nikesh/public_html/createtestfile.php 666 >/dev/null &");
?>

其中666是传递给php文件的参数..

这在我们的测试服务器和实时服务器中工作正常,但它无法正常工作。

此外,当我使用Linux终端执行此操作时,它正常工作并且正在生成输出。

即:php -f test.php - 工作正常。

但是当我尝试通过浏览器运行同一个文件时它无法运行..

http://example.com/test.php

我的日志文件中没有错误消息,我设置的权限是正确的。

如果有人在遇到同样的问题,请告诉我。请帮我解决这个问题。

谢谢,

尼科什


我已获得该文件夹的完全权限,但该文件夹无效。我们的服务器禁用安全模式。

基本的Shell_exec函数在我的服务器上运行。但是当我们给php文件提供参数时,它无法通过浏览器工作。但是从Linux终端开始工作并生成输出。

它与文件夹权限无关,该文件夹具有写入权限。但有些如何通过浏览器无法正常工作。如果有什么需要启用,请告诉我..?或需要更改任何服务器/ PHP设置?

2 个答案:

答案 0 :(得分:0)

您的网络服务器的php.ini可能已启用安全模式,或者在disabled_functions ini设置中启用此功能。

运行

<?php
phpinfo();
?>

从页面到您的网络服务器检查这些变量(假设未被禁用)

答案 1 :(得分:0)

使用chmod -R 777

为您的public_html文件夹授予777权限

尝试那样

<?php
shell_exec("php -f /home/nikesh/public_html/createtestfile.php 666 >/dev/null 2>&1");
?>