Php

找不到要執行的“psql”

  • December 10, 2021

我有一個在 Linux (AWS Centos) 伺服器上執行的 bash 腳本。每當腳本執行 psql 時,標準輸出中就會彈出一條奇怪但令人討厭的警告消息:找不到要執行的“psql”

奇怪的是 Postgresql 命令行 psql 執行得很好!但是它仍然會生成此錯誤消息。

對於進一步的上下文,bash 腳本是從 php 頁面 (fastcgi/nginx) 中的 shell_exec 執行的。如果從命令行執行 bash 腳本,則不會看到警告。但同樣,即使有警告,psql 確實執行正常。

有誰知道為什麼會出現這個警告,以及如何消除它?

對於進一步的上下文,bash 腳本是從 php 頁面 (fastcgi/nginx) 中的 shell_exec 執行的。

嘗試設置 psql 腳本的路徑,這樣您就不會依賴於PATH呼叫 shell 時的環境和 PHP 設置,

而不是,

$output = shell_exec('psql ...');

嘗試(或任何command -v psql顯示它所在的位置)

$output = shell_exec('/usr/bin/psql ...');

有關 Windows 上的此錯誤消息,請參閱此錯誤報告:https ://www.postgresql.org/message-id/E1VPJrB-00071y-RR%40wrigleys.postgresql.org

如果 PostgreSQL 的環境 PATH 元素包含雙引號,則似乎會導致該問題。嘗試刪除它們。

引用自:https://dba.stackexchange.com/questions/271281