2013-12-17 61 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嗎? –

相關問題