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)!