Postgresql

如何在 Ubuntu 上手動建構和安裝 pgsql PHP 擴展

  • May 19, 2018

我從高處和低處找遍了,一無所獲。也許我不知道要搜尋什麼。

環境是帶有 PHP 5.2.4 和 PostgreSQL 9.2 的 Ubuntu Lucid (10.4)。

PHP 在 5.2.4 中“持有”,帶有dpkg --set-selections. 我只能找到 5.2.6 版本的 php5-pgsql,當我嘗試使用 dpkg 安裝時,它抱怨 PHP 是 5.2.4。

試執行aptitude install php5-pgsql告訴我它想升級到 PHP 5.3。

編輯:升級 PHP 目前不是一個選項。

我應該補充一點:我嘗試使用--with-pgsql --with-pdo-pgsql. 結果沒有得到任何擴展。libpq 和 libpq-dev 都已安裝。

這似乎可以解決問題:

  1. 下載和解壓 PHP 原始碼。
  2. 確保libpq5libpq-dev已安裝。
  3. cd php_x.x.x/ext/pgsql
  4. phpize
  5. ./configure
  6. make
  7. sudo make install
  8. 編輯php.ini以添加extension=pgsql.so和任何其他必要的 pgsql 指令。
  9. 重啟阿帕奇。

首先要做的事情:如果您談論的是生產系統並且您不是系統管理員(您的評論表明您不是),請不要觸摸系統

如果您選擇忽略該建議並無意中破壞了某些東西,您的系統管理員可能會在他回來時對您造成嚴重的身體傷害(並且這樣做是完全合理的- 沒有什麼比假期回來發現有人通過嘗試破壞了東西更糟糕的了“幫助”,除非你在度假時接到緊急電話)。


話雖如此,如果您想手動執行此操作,則必須準確確定軟體包正在安裝什麼php5-pgsql(除了使用 Postgres 支持編譯的 PHP 之外,它還包括pgsql PDO 擴展,可能還有其他東西)。然後,您需要手動安裝所有元件。

無法保證您將能夠組裝此拼圖:例如,PECL(您將在其中獲得 PDO 擴展)僅在受支持的 PHP 版本上進行測試。它可能會起作用,但如果不起作用,解決方案是“將 PHP 升級到受支持的版本”。


為了回應其他人在評論中所說的話:

將系統鎖定到特定版本的 PHP 是不好的。

如果您有一個需要 PHP 5.2 的系統(長期以來不受支持,並且充滿了已知的安全漏洞),那麼是時候與您的系統管理員坐下來,為您上方的 2 個管理級別寫一份備忘錄了。(如果您的系統管理員不明白為什麼這是一個問題*,您可以*編寫備忘錄並抄送他。)

將系統鎖定到特定的 PHP 更新檔級別是瘋狂的。

如果你有一個絕對需要PHP 5.2.4 的系統,你應該已經寫了一份關於它的備忘錄,並親自向每個人大喊它是如何不可持續的,並且會在未來產生重大問題。

如果你寫了那份備忘錄,那麼你就可以看起來有先見之明並說“還記得那份備忘錄嗎?” – 否則你現在就寫它(看起來不太好,但至少表明你正在做你的工作並指出業務的嚴重風險)。

引用自:https://serverfault.com/questions/539577