shell_exec无法在VPS上执行

时间:2016-01-02 16:07:33

标签: php

在我的VPS服务器(Linux)中的代码上使用shell_exec时出现错误:

    Content-type: text/html; charset=utf-8 
Warning: shell_exec(): Unable to execute 'php /home/usr/public_html/testsite/test.php remote' in /home/usr/public_html/testsite/test2.php on line 8

我对错误进行了划分,实际上我在显示警告错误之前获得了很多Content-type: text/html; charset=utf-8

test.php的:

function connect($server)
    {
            $servername = "localhost:3306";
            $username = "user";
            $password = "pass";
            $dbname = "dbname";

        // Create connection
        $conn = new mysqli($servername, $username, $password, $dbname);
        // Check connection
        if ($conn->connect_error) {
            die("Connection failed: " . $conn->connect_error);
        }
        else{
            echo 'connected';
        }

        return $conn;

    }

test2.php:

echo shell_exec('php /home/usr/public_html/testsite/test.php');

我尝试使用我的本地机器(Mac OS X)和MAMP,它工作得很好(是的,我相应地更新了数据库参数和文件)。我也试过没有运气的system()和passthru()。

我的VPS服务器应该更改什么? Linux配置?阿帕奇?

2 个答案:

答案 0 :(得分:0)

PHP可能不在您的路径中:您可能可以使用PHP_BINARY来查找PHP的路径,但许多PHP安装不包括PHP的命令行版本。如果使用PHP模块或过滤器,这很常见。

在Debian / Ubuntu系统上,您可以要求安装php5-cli:

sudo apt-get install php5-cli

在其他系统上会有类似的命令。

如果您不是系统管理员,可以向VPS管理员寻求帮助。

答案 1 :(得分:0)

感谢所有答案。我在php文字后面添加-p时可以正常工作。