Php
找不到要執行的“psql”
我有一個在 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 元素包含雙引號,則似乎會導致該問題。嘗試刪除它們。