2

我的服务器中的 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 设置?

4

2 回答 2

0

给你的 public_html 文件夹 777 权限chmod -R 777

尝试这样

<?php
shell_exec("php -f /home/nikesh/public_html/createtestfile.php 666 >/dev/null 2>&1");
?>
于 2012-01-13T21:14:13.563 回答
0

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

<?php
phpinfo();
?>

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

于 2012-01-13T20:42:02.063 回答