无法在1& 1服务器上运行exec()/ shell_exec()

时间:2013-11-23 10:49:43

标签: php exec shell-exec

修改
我试图在后台运行一个php文件而没有成功使用其中一个函数 这不是将在backgorund中执行的文件(真正的将发送电子邮件),我使用此方法找出哪个命令参数是正确的
文件权限0644;文件夹权限:0755
tets.php:

<html>
    <head>
    </head>
    <body>
        <pre>
        <?php
            $ex='php5 -f /homepages/23/d293813614/htdocs/amazonmobilewebsites/extendedcomingsoon/admin/run.php';
            exec($ex,$return);
            echo print_r($return,true);
        ?>
        </pre>
    </body>
</html>

run.php(从网址开始):

<html>
    <head>
    </head>
    <body>
        <pre>
        <?php
            $fp = fopen('/homepages/23/d293813614/htdocs/amazonmobilewebsites/extendedcomingsoon/admin/data.txt', 'w+');
            fwrite($fp, '1');
            fclose($fp);
            echo 'printed';
        ?>
        </pre>
    </body>
</html>

这些是我的尝试:

$ex='php5 -f /homepages/23/d293813614/htdocs/amazonmobilewebsites/extendedcomingsoon/admin/run.php';

$ex='php -f /homepages/23/d293813614/htdocs/amazonmobilewebsites/extendedcomingsoon/admin/run.php';

$ex='/usr/lib/php6 -f /homepages/23/d293813614/htdocs/amazonmobilewebsites/extendedcomingsoon/admin/run.php';

Fisrt-&GT;

Array
    [89] =>     [79] =>     [69] =>     [59] =>     [49] =>     [39] =>     [29] =>     [19] =>     [9] => (
    [90] =>     [80] =>     [70] =>     [60] =>     [50] =>     [40] =>     [30] =>     [20] =>     [10] =>     [0] => X-Powered-By: PHP/5.2.17
    [91] =>     [81] =>     [71] =>     [61] =>     [51] =>     [41] =>     [31] =>     [21] =>     [11] =>     [1] => Content-type: text/html
    [92] =>     [82] =>     [72] =>     [62] =>     [52] =>     [42] =>     [32] =>     [22] =>     [12] =>     [2] =>
    [93] =>     [83] =>     [73] =>     [63] =>     [53] =>     [43] =>     [33] =>     [23] =>     [13] =>     [3] => 
    [94] =>     [84] =>     [74] =>     [64] =>     [54] =>     [44] =>     [34] =>     [24] =>     [14] =>     [4] =>  
    [95] =>     [85] =>     [75] =>     [65] =>     [55] =>     [45] =>     [35] =>     [25] =>     [15] =>     [5] =>  
    [96] =>     [86] =>     [76] =>     [66] =>     [56] =>     [46] =>     [36] =>     [26] =>     [16] =>     [6] =>  
    [97] =>     [87] =>     [77] =>     [67] =>     [57] =>     [47] =>     [37] =>     [27] =>     [17] =>     [7] =>      

    [98] =>     [88] =>     [78] =>     [68] =>     [58] =>     [48] =>     [38] =>     [28] =>     [18] =>     [8] =>      

    [99] =>     [89] =>     [79] =>     [69] =>     [59] =>     [49] =>     [39] =>     [29] =>     [19] =>     [9] => Warning:  exec() [function.exec]: Unable to fork [php5 -f /homepages/23/d293813614/htdocs/amazonmobilewebsites/extendedcomingsoon/admin/run.php] in /homepages/23/d293813614/htdocs/amazonmobilewebsites/extendedcomingsoon/admin/test.php on line 8

    [100] =>     [90] =>     [80] =>     [70] =>     [60] =>     [50] =>     [40] =>     [30] =>     [20] =>     [10] => Array
    [101] =>     [91] =>     [81] =>     [71] =>     [61] =>     [51] =>     [41] =>     [31] =>     [21] =>     [11] => (
    [102] =>     [92] =>     [82] =>     [72] =>     [62] =>     [52] =>     [42] =>     [32] =>     [22] =>     [12] => )
    [103] =>     [93] =>     [83] =>     [73] =>     [63] =>     [53] =>     [43] =>     [33] =>     [23] =>     [13] =>        


    [104] =>     [94] =>     [84] =>     [74] =>     [64] =>     [54] =>     [44] =>     [34] =>     [24] =>     [14] =>    
    [105] =>     [95] =>     [85] =>     [75] =>     [65] =>     [55] =>     [45] =>     [35] =>     [25] =>     [15] => 
    [106] =>     [96] =>     [86] =>     [76] =>     [66] =>     [56] =>     [46] =>     [36] =>     [26] => )

第二个没有警告的相同数组,第三个是空数组

1 个答案:

答案 0 :(得分:0)

它可能已在您的主机上禁用,但php本身不是,那么为什么不只是include该文件?

如果你的php需要很长时间才能运行,你可以执行以下操作:

ignore_user_abort(true);
set_time_limit(0);

your_long_function();

这意味着您的脚本会无限期地运行(您可以离开页面),这可能是一件危险的事情。小心不要做任何无限循环。

ignore_user_abort
set_time_limit

有关其他选项,请参阅this answer

相关问题