从命令行和浏览器(Apache2)输出不同的php exec()

朱里斯·马里嫩斯

从命令行:

sudo -u apache php -r 'exec("rsync -avi --rsh=\"ssh -o StrictHostKeyChecking=no -p22\" --omit-dir-times /var/www/html/ test@out:/var/www/html/ 2>&1", $a, $n);print_r($a);';

返回这个(我想要这样的输出):

 Array
(
    [0] => sending incremental file list
    [1] => <f+++++++++ testrsync
    [2] =>
    [3] => sent 9143 bytes  received 47 bytes  18380.00 bytes/sec
    [4] => total size is 25642011  speedup is 2790.21
)

但从Apache2:

exec("rsync -avi --rsh=\"ssh -o StrictHostKeyChecking=no -p22\" --omit-dir-times /var/www/html/ test@out:/var/www/html/ 2>&1", $a, $n);
print_r($a);

我得到以下输出:

array (
  0 => 'sending incremental file list',
  1 => ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '',
  312 => 'sent 139318 bytes  received 183398 bytes  215144.00 bytes/sec',
  313 => 'total size is 25642011  speedup is 79.46',
)

在测试之前,我删除了testrsync文件,并且从终端和浏览器rsync都成功传输了testrsync文件,但是在apache2中,它不显示以下行:

<f+++++++++ testrsync

我想通过浏览器中的Rsync获取已修改文件的列表。

Apache / 2.2.15,PHP 5.4.20,Centos 6.4

朱里斯·马里嫩斯

发现问题:

Rsync输出看起来像这样:

[1] => <f..t...... logo-1.png

[2] => <f..t...... logo.png

浏览器将<解析为新标签,因此我得到的输出为空,但源代码显示完整的输出。我花了一个多小时来调试它; D

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用标准输入和标准输出使用 shell_exec 或 exec 其他任何东西从命令行运行 python 文件并传递输入

来自分类Dev

从命令行和python API在docker exec中执行管道

来自分类Dev

Mac OSX cmd从命令行运行,从php shell_exec()失败

来自分类Dev

查找命令,-exec尾部和文件浏览器

来自分类Dev

PHP-浏览器中的shell_exec输出为空

来自分类Dev

php exec文件从终端运行,而不是从浏览器运行

来自分类Dev

Java Runtime.exec()不从命令行发送电子邮件

来自分类Dev

我可以从命令行运行 curl 但不能从 shell exec 调用

来自分类Dev

mvn exec:exec和mvn exec:java的区别

来自分类Dev

如何从命令行设置默认浏览器?

来自分类Dev

如何从命令行安装浏览器?

来自分类Dev

NAnt exec命令垃圾输出

来自分类Dev

NAnt exec命令垃圾输出

来自分类Dev

如何为find -exec命令{} +构建命令行

来自分类Dev

if命令在find -exec中

来自分类Dev

了解exec命令

来自分类Dev

exec命令bin bash

来自分类Dev

测试smartmontools的exec命令

来自分类Dev

Docker exec 命令失败?

来自分类Dev

从命令行在浏览器中运行php文件

来自分类Dev

Redis SYNC和EXEC

来自分类Dev

新贵,exec和stderr

来自分类Dev

grep和exec问题

来自分类Dev

fork()和exec()的困惑

来自分类Dev

Python eval()和exec()

来自分类Dev

防止php exec等待

来自分类Dev

commons-exec命令行不接受“ *”吗?

来自分类Dev

使用maven-exec-plugin运行命令行

来自分类Dev

使用Java exec的额外psql命令行参数