K内核2.1php无法运行exec!
我想用php在服务器后台运行exec,不执行,我还以为我的exe有问题,在命令行下执行一点问题都没有,但是用php的exec运行就不行,据说K内核1.7的版本可以,用惯了了2.1不想换了,管理在吗,能不能修补下bug!谢谢! 这个问题,应该具有参考性,我希望解决后给后来人或者upupw作者改进一下问题!但现在我还没有解决问题! 我已经共享,大家帮忙测试下,kanggle1.7我也测试了,不行!http://pan.baidu.com/s/1bpwunnh 已完结:竟然是一个非常奇特原因导致,我把代码复制出来重新建立了一个文件竟然就好了! 解决办法:php下exec 可以执行系统命令而不能执行用户程序 第一排查原因:可用管道命令
使用 2>&1, 命令就会输出shell执行时的错误到$output变量, 输出该变量即可分析。 备注: exec有3个参数,第一个是要执行的命令,第二个是参数是一个数组,数组的值是由第一个命令执行后生成的,第三个参数执行的状态,0表示成功,其他都表示失败 第二:exec命令调用用户程序必须是绝对路径 如:$command="C:\PDFtkServer\bin\pdftk.exe ".$get_path[4]." cat 1-30 output ".$get_path[3]." 2>&1"; $tt=exec($command,$myarry,$txb); [txb2d于2016-10-16 13:05编辑了帖子]
|
|
沙发#
发布于:2016-10-13 13:00
|
|
板凳#
发布于:2016-10-13 11:51
动力火锅:K2.1版先任务管理器查看下K内核是否为system账户运行,如果不是则面板输入10后q1切换为SYSTEM账户运行K内核。但问题偏偏出在php执行系统函数的上面了,其实,在php中执行系统函数非常简单,一个system,或exec就可以了,好了,开工,测试,没有出现相应的结果。难道是命令行语句有错吗?在cmd下运行,没有问题,说明不是软件的问题,难道,系统执行函数有错,用系统函数执行系统命令,见鬼了,居然有动静了。经过反复的测试,发现,只要是实现系统的命令,程序完美运行,只要一执行用户命令,程序没有反应。忘了,说了,我使用的apache+PHP的配置,IIS+PHP的环境,暂时对这个不感冒!总觉得配起来太麻烦。但不见得就不好啊,我只是犯懒了。 开始网上的搜索,大部分都是扯蛋的文章,没有发现一个有用的资料。没办法只能自己想办法,在这个项目开始以前,曾经在xampp环境下执行成功过一次,而由于xampp装上后占的硬盘太大,就换成了upupw了,该环境进行了的大量的优化组合,所以就果断的从xampp换成了upupw了,对了,其实是想用nginx组合的,但由于没有时间研究apache下的转换规则,就暂时放弃了,有时间再看看。废话少说,重新安装xampp,然后,在运行,居然。。。。。。。,活见鬼了,这2个环境没有大的区别啊,只是一个是系统服务运行,一个是单独运行。于是,把这个现象和upupw的作者做了反馈,他也表示不解,他对比了两个环境的配置文件,得出的结论是没有区别,于是,怀疑到是不是系统权限的问题啊,由于,执行系统命令,需要管理员权限并有完全控制功能,但我也查了。系统默认的就是管理员权限并有相应的规则。晕死,那就只能检查系统进程了,看看到底这2个系统后面发生了什么,打开任务管理器,看下面的截图: ![]() 居然发现,由于upupw使用的是系统服务运行的方式,它的用户名居然是system,而xampp没使用系统服务方式,它的用户名居然是administartor,不信这个邪,我把xampp也改成了系统服务方式,upupw由于无法更改选项,只能在系统服务栏中,把执行的用户名改成administator,活见鬼了,居然是xampp也不出结果了,upupw出结果。所以,最后的结论是原来是权限惹得祸。按理说不应该了,网上说的system的权限应该大于administartor的权限,有知道的人麻烦解释一下。 |
|
地板#
发布于:2016-10-13 08:56
|
|
4楼#
发布于:2016-10-13 08:38
|
|
5楼#
发布于:2016-10-13 08:29
动力火锅:cmd看下users组是否有读取和执行权限,另外执行exec命令时都用绝对路径,不要用相对路径。另外看下php-cgi进程是否也是SYSTEM账户运行。回到原帖http://pan.baidu.com/s/1bpwunnh ,我分享了一个我的源文件,帮忙看看,里面有一个pdf所以比较大! |
|
6楼#
发布于:2016-10-13 08:09
|
|
7楼#
发布于:2016-10-12 23:25
难道2.1版的真的exec因为权限不能用?
|
|
8楼#
发布于:2016-10-12 23:21
|
|
9楼#
发布于:2016-10-12 23:20
|
|
10楼#
发布于:2016-10-12 22:01
cmd看下users组是否有读取和执行权限,另外执行exec命令时都用绝对路径,不要用相对路径。另外看下php-cgi进程是否也是SYSTEM账户运行。
|
|
11楼#
发布于:2016-10-12 21:57
|
|
12楼#
发布于:2016-10-12 21:41
|
|
13楼#
发布于:2016-10-12 21:40
|
|
14楼#
发布于:2016-10-12 21:31
|
|
上一页
下一页