当前位置:首页 > 服务器技术 > IIS

php shell_exec bash.exe在Window XP IIS中不起作用

generateb.php

 <?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:cygwinbinbash.exe --login -c
C:cygwinbinmysql2sqlite.sh -h 127.0.0.1 -u root -pApacheah64 db_shuttlebus tbl_driver  
tbl_location tbl_rate tbl_route tbl_routeid tbl_vehicle | C:cygwinsqlite3.exe 
C:InetpubwwwrootBusTicketexportdatabasedatabase.sqlite' in   
C:InetpubwwwrootBusTicketexportdatabasegeneratedb.php on line 4 

如果我手动打开cmmand promt并运行命令运行正常,但是在PHP中时则无法运行.为什么?

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

这是我的phpinfo.php

这是我使用cmd.exe运行命令,它正在工作

解决方法:

了解IIS,可能有多种可能的解释.这是我在http://www.php.net/shell_exec上发现的

Got the error “Unable to execute…” when trying to run an external program with shell_exec under Windows XP, IIS 5, php 4.3.7 Solved by giving the IIS user (IUSR_…) execution privileges on the system file %systemroot%system32cmd.exe This should be used carefully because may represent a server’s security hole.

HTH.


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!