日期:2014-05-17  浏览次数:20362 次

结账太早了,出现的问题……
我发现一个问题,就是结账结的的太早了,帖子就沉了……如果测试的时候再出现BUG,还得重新开个帖子问……
  CSDN这提问的分好贵呀……

好了,言归正传。
1. system和shell_exec,exec都是php执行系统外部命令,但是同样的命令,ps aux|grep httpd -c
  我在命令行中显示的数量时10个,为什么我在浏览器上显示的就是11个呢?
  而我自己数了一下,其实只有9个,还有一个是
  root 27719 0.0 0.0 5476 ... ... s+ 0.00 grep httpd.
这个是什么意思呢?
  是不是grep了一次,也算在ps出来的10个里面。那浏览器中的11个又是怎么来的呢?

(shell_exec('ps aux|grep httpd -c')在浏览器上显示的结果与linux下#ps axu |grep httpd -c的结果不一致。)
2.如何在命令行中直接执行php文件?
  比如我想执行test.php.不用打开浏览器,直接在命令行中输入 #php test.php就可以输出结果。
  查了一下,资料,#cp /usr/local/php/bin/php /usr/sbin 把php安装成linux系统命令。但是我这样,还是要输入php文件的路径啊。
  #php /usr/local/apache2/htdocs/test.php 这样执行是可以的。
  我想问一下,能不能在哪设置一下,php执行文件的默认路径呢?比如说,我把默认路径设为/usr/local/apache2/htdocs
这样我执行的时候,就不用输入那么长得路径啦。直接#php test.php就完事了……

------解决方案--------------------
结账? 额~~
1.你浏览器访问不得打开一个httpd进程么 这就不多了一个
2.执行命令不加路径默认为当前目录 你cd到/usr/local/apache2/htdocs 再php test.php不就行了么
------解决方案--------------------
俗话说一手给钱一手给货,结帖就意味着你接受了这样的答案。
其实也没啥吧,反正只要你勤快点来CSDN回回帖啥的,可用分都是浮云...
实在没有的话我给你捐赠点.
------解决方案--------------------
要在doc 下直接执行你的php文件需要设置系统路径变量

直接在doc中执行 path 命令看有没有php安装路径
------解决方案--------------------
1. 你的apache是worker模式的吧? 所以你访问的时候,就多了一个httpd进程,退出后进程也关闭了。 grep命令本身会被grep出来,所以要再加上 grep -v grep

2. 在php前加上ban头, 比如 #!/usr/local/php/bin/php 就和shell脚本一样
然后就直接./test.php就可以了