[英]How to avoid PHP exec() by using WSGI to execute a Python script?
現在我正在使用exec()從PHP啟動Python腳本,因為我必須將一些動態變量從網站/ MySQL傳遞到命令行。 但是,我想提高此操作的速度和安全性,所以我想使用WSGI。 我認為可以將Python腳本嵌入到WSGI文件中,該文件將使用從PHP直接(或間接)傳遞的變量...但是我怎么能這樣做呢? 我從未使用過WSGI,所以我甚至都不知道這是不是一個愚蠢的問題:)
首先,你能用Python或PHP做到這一切嗎? 使用多種語言通常被視為反模式。 這並不是說這總是一個壞主意,但你應該首先質疑為什么,只有這樣你才能確信這是一個好主意。
至於你想做什么的具體細節,有幾個選擇:
如果使用Apache,則可以使用virtual()
函數通過Apache發出新請求。
這假設您使用的是mod_php和mod_wsgi。 基本上,您要為要傳遞的變量構建查詢字符串,並將其稱為:
virtual('path/to/python.py?'.$query);
編寫自己的PHP WSGI網關。
基本上,將WSGI規范編碼到庫中,並在PHP中顯式調用它。
堅持從exec()
調用它(這可能是目前最好的選擇)。
你需要考慮的是,語言之間的交叉包含固有的開銷。 你永遠不會克服它,這只是野獸的本性。 所以相反,我建議將整個請求保留在一個環境中,並在該環境中完整地處理它...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.