【问题标题】:PHP shell_exec with parameters is not working带参数的 PHP shell_exec 不起作用
【发布时间】:2012-02-10 00:44:24
【问题描述】:

我的服务器中的 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 终端执行此操作时,它工作正常并且正在生成输出。

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

但是当我尝试通过浏览器运行同一个文件时,它不起作用..

http://example.com/test.php

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

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

谢谢,

耐克


我已授予该文件夹的完全权限,但它无法正常工作。我们的服务器禁用了安全模式。

基本的 Shell_exec 函数在我的服务器中运行。但是当我们为 php 文件提供参数时,它不能通过浏览器工作。但是从 Linux 终端它的工作和生成输出。

与文件夹权限无关,文件夹有写权限。但有些如何它不能通过浏览器工作。请让我知道是否需要为此启用任何功能..?或者需要更改任何服务器/php 设置?

【问题讨论】:

  • 从命令行运行时,您是以用户身份运行 - 从浏览器运行时,您很可能以 Apache 身份运行,它可能无权使用 shell_exec。

标签: php linux cpanel shellexecute shell-exec


【解决方案1】:

使用chmod -R 777 向您的 public_html 文件夹授予 777 权限

这样试试

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

【讨论】:

    【解决方案2】:

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

    运行

    <?php
    phpinfo();
    ?>
    

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

    【讨论】:

    • 我已授予该文件夹的完全权限,但它无法正常工作。我们的服务器禁用了安全模式。基本的 Shell_exec 函数在我的服务器中运行。但是当我们为 php 文件提供参数时,它不能通过浏览器工作。但是从 Linux 终端它的工作和生成输出。它与文件夹权限无关,文件夹具有写入权限。但有些如何它不能通过浏览器工作。请让我知道是否需要为此启用任何功能..?还是需要更改任何服务器/php 设置?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 2013-05-26
    相关资源
    最近更新 更多