windows平台上php-cgi调用系统命令(net)时执行异常,但在命令行下能正常执行,问题会出在哪呢?


平台环境:
OS: windows 2003 x86 SP2
Apache: 2.4.12
Mod_fcgi: 2.3.8
PHP: 5.4.41 (NTS)

调用方式:exec\system\popen

调用命令:net start [service_name]

Return Code: 2 (查了一下是找不到相关文件,但是net.exe是被调用了的,只是没有成功执行)

问题描述:
1. 通过Apache在PHP代码里面,用exec\system\popen等调用外部命令的方式,调用net命令做任何操作,都会执行失败,调用返回值为2。
2. 在命令行里面,用php-cgi.exe来执行PHP代码调用net命令,能够成功执行。
3. 尝试过把net命令的调用封装到py里面,然后用php去调用python执行该py,仍然是不能成功执行。

已经尝试过的方法:
1. 各种命令调用方式的尝试
2. 排除system账号无权限执行net命令
3. 其它一些命令,如ping等是可以正常执行的

求教各位,为毛会存在这种情况?应该从哪些点排查呢?

php-cgi apache net exec windows

biaaa 10 years, 6 months ago

Your Answer