如何修復 NginX/Phusion/Passenger “zsh:1: 沒有這樣的檔案或目錄:passenger/buildout/agents/SpawnPreparer”

如何修復 NginX/Phusion/Passenger “zsh:1: 沒有這樣的檔案或目錄:passenger/buildout/agents/SpawnPreparer”

希望這是提出這個問題的正確網站。

我有一個網路服務,我正在嘗試使用 NginX 和 Phusion Passenger 運行 Ruby Sinatra 應用程式來設定。問題是,當我嘗試啟動伺服器並測試網站時,出現以下錯誤:

zsh:1: no such file or directory: passenger/buildout/agents/SpawnPreparer

現在,我已經能夠確定正在SpawnPreparer調用zsh,但我不確定為什麼。我什至不使用它zsh,並且在構建伺服器時我也沒有使用它。儘管如此,我想知道的是是否可以在 nginx.conf 中配置乘客以使用不同的 shell 來產生其進程?如果是這樣,怎麼辦?

這是 Phusion 4.0.14

謝謝!

答案1

當 Phusion Passenger 產生應用程式時,它會透過呼叫命令來實現$SHELL -lc '/path-to-passenger-root/buildout/agents/SpawnPreparer /path-to-passenger-root/helper-scripts/rack-loader.rb <SOME ARGUMENTS>'。這裡描述的是:https://github.com/phusion/passenger/wiki/Debugging-application-startup-problems#the-spawning-process-explained。這裡,$SHELL 是使用者的 shell,在作業系統的使用者資料庫 (/etc/passwd) 中設定。在您的情況下,您的使用者設定為 zsh 作為其 shell。這可能是您作業系統的預設設定。

您的錯誤訊息表明它無法執行該文件passenger/buildout/agents/SpawnPreparer。換句話說,Phusion Passenger 認為/path-to-passenger等於passenger。這可能表示您為指令設定了錯誤的值passenger_root,這決定了 的正確值/path-to-passenger

相關內容