2 回答

TA貢獻1852條經(jīng)驗 獲得超1個贊
您的問題是用戶權(quán)限問題。您應(yīng)該以擁有您的 python 環(huán)境的用戶身份運行 Apache 服務(wù)器,或者允許運行服務(wù)器的用戶在您的 python 環(huán)境中執(zhí)行權(quán)限。
這個答案應(yīng)該可以幫助您找出服務(wù)器的最佳設(shè)置。
另請閱讀有關(guān)Apache VirtualHosts 配置的信息

TA貢獻1858條經(jīng)驗 獲得超8個贊
我想通了。希望這將幫助任何有類似問題的人。當您從 Apache 服務(wù)器上提供的 PHP 腳本執(zhí)行 Python 或 shell 腳本時,該腳本將以用戶身份運行,默認情況下為 www-data。
通過運行命令 sudo -u www-data(以 www-data 用戶運行以下命令)python myscript.py,我得到了一個回溯錯誤,提示找不到第 3 方模塊。發(fā)生的情況是,默認情況下 pip(python 包管理器)在用戶級別安裝其包。這對大多數(shù)應(yīng)用程序來說都很好,但在這種情況下會導(dǎo)致問題,因為 www-data 用戶可以理解地找不到已安裝的包,并且腳本崩潰了。從 PHP 腳本的角度來看,這變得特別棘手,因為它不理解這一點并且輸出只是 null。
我知道不推薦使用 sudo 安裝 pip 包,因為它在某些情況下會導(dǎo)致沖突問題;但是,這是解決大多數(shù)軟件包問題的最簡單方法。對于這不起作用的情況,請查看 infinigrove 的答案: 如何安裝 Python 包以供所有用戶全局使用(包括 www-data)
最后,從我所見,為了以 www-data 用戶(sudo -u www-data pip install package)安裝 pip 包,必須授予 www-data sudo 權(quán)限,這絕對不是推薦的解決方案.
添加回答
舉報