簡體   English   中英

如何通過使用WSGI來執行Python腳本來避免PHP exec()?

[英]How to avoid PHP exec() by using WSGI to execute a Python script?

現在我正在使用exec()從PHP啟動Python腳本,因為我必須將一些動態變量從網站/ MySQL傳遞到命令行。 但是,我想提高此操作的速度和安全性,所以我想使用WSGI。 我認為可以將Python腳本嵌入到WSGI文件中,該文件將使用從PHP直接(或間接)傳遞的變量...但是我怎么能這樣做呢? 我從未使用過WSGI,所以我甚至都不知道這是不是一個愚蠢的問題:)

首先,你能用Python或PHP做到這一切嗎? 使用多種語言通常被視為反模式。 這並不是說這總是一個壞主意,但你應該首先質疑為什么,只有這樣你才能確信這是一個好主意。

至於你想做什么的具體細節,有幾個選擇:

  1. 如果使用Apache,則可以使用virtual()函數通過Apache發出新請求。

    這假設您使用的是mod_php和mod_wsgi。 基本上,您要為要傳遞的變量構建查詢字符串,並將其稱為:

     virtual('path/to/python.py?'.$query); 
  2. 編寫自己的PHP WSGI網關。

    基本上,將WSGI規范編碼到庫中,並在PHP中顯式調用它。

  3. 堅持從exec()調用它(這可能是目前最好的選擇)。

你需要考慮的是,語言之間的交叉包含固有的開銷。 你永遠不會克服它,這只是野獸的本性。 所以相反,我建議將整個請求保留在一個環境中,並在該環境中完整地處理它...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM