generateb.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 "
".$output."";
} 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 "
".$output."";
}
?>
这是输出错误
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
这是我使用cmd.exe运行命令,它正在工作
解决方法:
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%\system32\cmd.exe This should be used carefully because may represent a server’s security hole.
HTH.
标签:bash,php
来源: https://codeday.me/bug/20191030/1965039.html