我似乎無法讓 PostgreSQL 在 XAMPP 上運作(使用 Lubuntu 14.02)。我是 PHP、伺服器和資料庫的新手,但收到以下錯誤訊息。
致命錯誤:在第 551 行呼叫 /opt/lampp/htdocs/imageability/SkjemaDatabase.php 中未定義的函數 pg_escape_string()
所以在我看來這是 PostgreSQL 的問題。同樣的錯誤訊息顯示為pg_connect()
。我嘗試了一些方法來讓 PostgreSQL 與 XAMPP 一起使用,例如取消文件中以下行的註釋php.ini
,然後重新啟動伺服器,但沒有成功。
副檔名=php_pdo_pgsql.dll
副檔名=php_pgsql.dll
我還讀到您可以嘗試將文件複製libpq.dll
到 Apache 資料夾,但我似乎根本沒有這個文件(使用 搜尋find
)。這會是問題所在嗎?
我也嘗試過分別下載 Apache2、PHP5 和 PostgreSQL,但這似乎對我沒有幫助,因為在這種情況下我只是得到一個空白頁面,甚至沒有錯誤訊息。我正在使用的 PHP 檔案很好並且可以為其他人工作,我還可以讓其他 PHP 檔案在伺服器上工作。
感謝您的幫忙!
答案1
我的建議:不要為此使用 XAMPP!它應該是一種讓常見的 Apache、MySQL、PHP、+Python/Perl 堆疊正常運作的簡單方法。離開圍牆花園,你就可以獨自一人了…
另外:即使你做讓它工作並不能保證下次您的系統或 XAMPP 本身不會崩潰。此用例不受任何人支持,涉及的某些組件(尤其是 PHP)並非設計用於處理未為其特定版本編譯的模組。
如何在 Debian/Ubuntu 上本機設定開發人員環境
- 打開終端機視窗(選單→其他→LX終端)
- 停止目前正在執行的所有 XAMPP 服務
- 安裝所需的軟體包:
您可以使用 GUI(「軟體中心」)來執行此操作,也可以在終端機上執行以下命令:
sudo apt-get install apache2 libapache2-mod-php5 postgresql php5-pgsql
apache2
(Apache 網路伺服器)libapache2-mod-php5
(PHP 對 Apache 的支援)php5-pgsql
(PostgreSQL 客戶端支援 PHP)postgresql
(PostgreSQL 伺服器)
/etc/php5/apache2/php.ini
以 root 身分在文字編輯器中開啟檔案:
在終端機視窗中鍵入命令
gksudo leafpad /etc/php5/apache2/php.ini
並按 Enter 鍵- 找到該行
display_errors = Off
並將其更改為display_errors = On
- 儲存檔案並關閉編輯器
- 重新啟動 Apache Web 伺服器:在終端機視窗中
執行命令以重新啟動 Web 伺服器並重新載入其 PHP 模組sudo service apache2 restart