大家好,现在我有一个文件a.php.内容是:<?
$str = " /opt/rpm/bin/rpm -bb --target i686--linux /tmp/test.spec";
system($str);?>
当我用http://192.168.1.1/a.php 执行的时候结果显示:
Building target platforms: i686--linux Building for target i686--linux Processing files: VTCUAL06.06C.P010-R1.0-P1 当我在命令行下用/usr/local/php a.php 执行的时候,结果显示:Building target platforms: i686--linux
Building for target i686--linux
Processing files: VTCUAL06.06C.P010-R1.0-P1
Finding Provides: (using /opt/rpm/lib/rpm/find-provides)...
Finding Requires: (using /opt/rpm/lib/rpm/find-requires)...
Wrote: /export/home/webadm/.rpm/RPMS/i686/VTCUA
也就是说在http访问模式下有三行没有显示出来:Finding Provides: (using /opt/rpm/lib/rpm/find-provides)...
Finding Requires: (using /opt/rpm/lib/rpm/find-requires)...
Wrote: /export/home/webadm/.rpm/RPMS/i686/VTCUA
有人知道是什么原因吗?谢谢了!!
$str = " /opt/rpm/bin/rpm -bb --target i686--linux /tmp/test.spec";
system($str);?>
当我用http://192.168.1.1/a.php 执行的时候结果显示:
Building target platforms: i686--linux Building for target i686--linux Processing files: VTCUAL06.06C.P010-R1.0-P1 当我在命令行下用/usr/local/php a.php 执行的时候,结果显示:Building target platforms: i686--linux
Building for target i686--linux
Processing files: VTCUAL06.06C.P010-R1.0-P1
Finding Provides: (using /opt/rpm/lib/rpm/find-provides)...
Finding Requires: (using /opt/rpm/lib/rpm/find-requires)...
Wrote: /export/home/webadm/.rpm/RPMS/i686/VTCUA
也就是说在http访问模式下有三行没有显示出来:Finding Provides: (using /opt/rpm/lib/rpm/find-provides)...
Finding Requires: (using /opt/rpm/lib/rpm/find-requires)...
Wrote: /export/home/webadm/.rpm/RPMS/i686/VTCUA
有人知道是什么原因吗?谢谢了!!
google了一下,说apache带--enable-suexec编译就可以,但是没试过。
Building target platforms: i686--linux
Building for target i686--linux
Processing files: VTCUAL06.06C.P010-R1.0-P1
Finding Provides: (using /opt/rpm/lib/rpm/find-provides)...
Finding Requires: (using /opt/rpm/lib/rpm/find-requires)...
Wrote: /export/home/webadm/.rpm/RPMS/i686/VTCUA
这显然是用于权限的问题了
web 方式下的 php 只是匿名用户,只有最低的权限话说回来,如果什么都可以通过浏览器去操控,那么系统哪有安全性可言想当初微软为了提供便利的数据查询,给 mssql2000 附加了 url 查询功能
结果不就被人利用,而成了臭名昭著的 SQL攻击
{$proc=proc_open($cmd, array(0=>array('pipe', 'r'), 1=>array('pipe', 'w'), 2=>array('pipe', 'w')), $pipes);
fwrite($pipes[0], $input);fclose($pipes[0]);
$stdout=stream_get_contents($pipes[1]);fclose($pipes[1]);
$stderr=stream_get_contents($pipes[2]);fclose($pipes[2]);
$rtn=proc_close($proc);
return array('stdout'=>$stdout,
'stderr'=>$stderr,
'return'=>$rtn
);
}
$str = " /opt/rpm/bin/rpm -bb --target i686--linux /tmp/test.spec";
var_export(my_exec($str));
/*如果输出还是少那三行,就在rpm执行上添加vv参数看看在哪儿停住的,错误信息是什么*/
$str = " /opt/rpm/bin/rpm -bb --target i686--linux /tmp/test.spec > info.txt";
system($str);?>