2013-12-17 28 views
3

generatedb.phpPHP了shell_exec bash.exe不会在Windows XP操作系统的IIS工作

<?php 
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') { 
    echo 'This is a server using Windows!'; 
    $output = shell_exec("C:\\cygwin\\bin\\bash.exe --login -c C:\\cygwin\\bin\\mysql2sqlite.sh -h 127.0.0.1 -u root -pApacheah64 db_shuttlebus tbl_driver tbl_location tbl_rate tbl_route tbl_routeid tbl_vehicle | C:\\cygwin\\sqlite3.exe C:\\Inetpub\\wwwroot\\BusTicket\\exportdatabase\\database.sqlite"); 
    echo "<pre>".$output."</pre>"; 
} else { 
    echo 'This is a server not using Windows!'; 
    $output = shell_exec("bash mysql2sqlite.sh -h 127.0.0.1 -u root -pApacheah64 db_shuttlebus tbl_driver tbl_location tbl_rate tbl_route tbl_routeid tbl_vehicle | sqlite3 /var/www/BusTicket/exportdatabase/database.sqlite"); 
    echo "<pre>".$output."</pre>"; 
} 

?> 

这是错误出输出

Warning: shell_exec(): Unable to execute 'C:\cygwin\bin\bash.exe --login -c 
C:\cygwin\bin\mysql2sqlite.sh -h 127.0.0.1 -u root -pApacheah64 db_shuttlebus tbl_driver 
tbl_location tbl_rate tbl_route tbl_routeid tbl_vehicle | C:\cygwin\sqlite3.exe 
C:\Inetpub\wwwroot\BusTicket\exportdatabase\database.sqlite' in 
C:\Inetpub\wwwroot\BusTicket\exportdatabase\generatedb.php on line 4 

如果我手动打开cmmand PROMT并运行命令是工作正常,但在PHP中时,它不能工作。为什么?

我已检查php.ini安全模式关闭,disable_functions =为空。

,这是我的phpinfo.php的

enter image description here

这是使用CMD.EXE命令运行的IM,它正在

enter image description here

+0

请尝试下次阅读错误消息。作为状态“第4行的C:\ Inetpub \ wwwroot \ BusTicket \ exportdatabase \ generatedb.php”尽管在你的问题中你从未提及任何有关generatedb.php的内容,所以我建议你看看那个文件,在那里发生。如果您仍然不知道,请尝试发布“第4行”,我们可能会帮助您。 – user2840647

+0

@ user2840647代码已更新,请看看 –

+0

您是否也可以在php.ini中发布包含“disable_functions = ...”的行。 – user2840647

回答

1

了解IIS,可能有多种可能的解释。这里有一个我在http://www.php.net/shell_exec

发现得到了错误“无法执行......”试图运行在Windows XP下了shell_exec外部程序时,IIS 5.0,通过给IIS用户(解决PHP 4.3.7 IUSR _...)对系统文件%systemroot%\ system32 \ cmd.exe的执行权限这应该谨慎使用,因为它可能代表服务器的安全漏洞。

HTH。

3

既然你说你是一个IIS服务器,看看这个链接。

php_shell_exec

希望这会有所帮助!

+0

对不起,winxp IIS只有5.1版 –

+0

您是否尝试过呢? – user2840647

+0

有没有办法改变FastCGI设置,你知道如何改变FastCGI设置是IIS 5.1吗? –

相关问题