在花時間充分了解我自己的問題以及可以回答的方式之後,我已經準備好了我的解決方案。
感謝大家提出的建議,以及在提出問題時我的随意和毫無準備。
上述問題的答案取決于許多因素,例如您所指的作業系統,您正在運作的php子產品,甚至是您正在運作的Web伺服器。是以如果我不得不再次提出這個問題,我要做的第一件事就是陳述我的設定。
我想在兩種環境中實作這一點:
1.)運作Zend伺服器社群版的Windows 7。
2.)Linux(我的作業系統是Linux odysseus 2.6.32-5-xen-amd64#1 SMP Fri Sep 9 22:23:19 UTC 2011 x86_64)
為了做到這一點,我希望它在部署到Windows或Linux時以任何方式工作,是以我使用php來确定作業系統是什麼。
public function createInstanceAction()
{
//determines what operating system is Being used
if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')
{
//This is a windows server
//call a seperate php process to run independently from the broswer action
pclose(popen("start php /path/to/script/script.php","r"));
}
else
{
//assuming its linux, but in fact it simply means its not windows
// to check for linux specifically use (strtoupper(substr(PHP_OS, 0, 3)) === 'LIN')
exec('php -f /path/to/file/script.php >/dev/null 2>&1 &');
}
//the browser will not hang around for this process to complete, and you can contimue with whatever actions you want.
//myscript log any out put so i can capture info as it runs
}簡而言之,一旦你了解了問題就提出問題。有很多方法可以實作上述目标,這隻是一個适用于我的開發和生産環境的解決方案。
謝謝大家的幫助。