跳到主要內容

在CentOS 安裝PHP 以及古董級的PostgreSQL v7.2.1 的方法

這可是超經典的古董, 折騰了我非常久, 期間安裝了數次的CentOS 依然不行, 一直到後來經過友人的建議, 總算解決, 但是期間依然被弄得頭昏腦脹.

經過此次得知, PostgreSQL 7.2.1 的最佳環境是Red Hat 7.1 版, 這是因為其他的套件夠舊.  我在CentOS 3.9 (此版本安裝PostgreSQL 7.3或以上全然沒有問題.  而且Apache 與 PHP 都比RedHat 7.1 新了很多), 無論是使用RPM 或是 使用source 來編譯, 都失敗.  我甚至更新了我的gcc 編譯器依然失敗.  使用RPM 的話, 雖然在之後可以成功安裝, 然而PHP 卻無法連線到PostgreSQL, library link 不起來.

本來有一個方法可以使用, 那就是將libpq.so.3 或者 libpq.so.4 之類的更改成 libpq.so.2 就行了, 不過我卻擔心還有其他的問題存在, 因此不嘗試了, 避免再多花時間.

安裝的方法如下:

準備Red Hat 7.1, 抓出裡面的RPM, 需要的RPM 如下:
  1. apache-1.3.23-11.i386.rpm
  2. apache-devel-1.3.23-11.i386.rpm
  3. mm-1.1.3-4.i386.rpm
  4. mod_ssl-2.8.7-4.i386.rpm
  5. php-4.1.2-7.i386.rpm
  6. php-devel-4.1.2-7.i386.rpm
  7. php-imap-4.1.2-7.i386.rpm
  8. php-ldap-4.1.2-7.i386.rpm
  9. php-mysql-4.1.2-7.i386.rpm
  10. php-odbc-4.1.2-7.i386.rpm
  11. php-pgsql-4.1.2-7.i386.rpm
  12. postgresql-7.2.1-5.i386.rpm
  13. postgresql-server-7.2.1-5.i386.rpm
  14. postgresql-libs-7.2.1-5.i386.rpm
倘若沒有Red Hat 7.1 的ISO, 那就只好到網路上尋找相關的rpm 吧.  建議可以去 http://www.rpmfind.net/ 或者 http://www.filewatcher.com/ 找找看
  1. 將以上的rpm 放在一個資料夾, 比方說 /root/rpm
  2. cd /root/rpm

安裝步驟(如果已經安裝了APACHE, PHP, PostgreSQL 之類的...) :
  1. yum remove httpd* php* openssl*
  2. 用rpm -qa | grep rh-postgresql* 找出有什麼postgresql 被預設安裝了.  倘若有顯示出什麼, 比方說顯示postgresql.7.3.2-libs, 那就rpm -e postgresql.7.3.2-libs (出現什麼, 就用rpm -e 來刪除)
一定要將APACHE, PHP, PostgreSQL 徹底刪除, 然後可以開始安裝:
  1. rpm --import http://mirror.centos.org/centos/RPM-GPG-KEY-CentOS-3
  2. yum install openssl*
  3. 可以用 rpm -ivh *.rpm, 或者是接下來的順序與步驟:
  4. rpm -ivh postgresql-libs-7.2.1-5.i386.rpm
  5. rpm -ivh postgresql-7.2.1-5.i386.rpm postgresql-server-7.2.1-5.i386.rpm
  6. rpm -ivh mm-1.1.3-4.i386.rpm
  7. rpm -ivh apache-devel-1.3.23-11.i386.rpm
  8. rpm -ivh apache-1.3.23-11.i386.rpm
  9. rpm -ivh php*.rpm
  10. rpm -ivh mod_ssl-2.8.7-4.i386.rpm

一切順利安裝好之後:
  1. service postgresql start
  2. vi /var/lib/pgsql/data/postgresql.conf, 修改#tcpip_socket = false , 成 tcpip_socket = true
  3. service postgresql restart
  4. 如此一來, PHP 就可以連線到PostgreSQL 了.  不過相對的, Apache 版本變成 1.3.23, PHP 則降級成 4.1.2

今天已經很累了, 連續搞這個搞了很多天而沒有休息. 慢點我再嘗試將Apache, PHP 升級看看是否沒有問題. 今天是元宵節, 等下可以開心而且輕鬆地過節吃晚飯了~

初夕晚~初一早上 + 今天才像過新年... 昨天之前完全沒有意識到原來還在過年. 因為剛才聽到很多鞭砲聲~

那麼就... 遲來的祝大家新年快樂, 萬事如意, 恭喜發財, 元宵節快樂~ To all of my friends, happy belated Chinese new year and Chap Goh Mei~

留言

這個網誌中的熱門文章

解決Apache 2.2, 關於HTTPS 之下使用PROXY 面對的 proxy server received an invalid response from an upstream server 以及 proxy: pass request body failed 的問題

修改以下 (proxy 以及 從proxy 接收的server): httpd.conf: ----------- 在 Include conf.d/*.conf 的前面加入以下: LimitRequestBody 2147483647  #2Gb Timeout 24000 ProxyTimeout 24000 ProxyBadHeader Ignore ssl.conf ---------- 在各個virtualhost 裡加入以下:     SSLEngine on     SSLProxyEngine on     SSLProxyVerify none     SSLProxyCheckPeerCN off     #SSLProxyCheckPeerName off     SSLProxyProtocol +SSLv3 +TLSv1 +TLSv1.1 +TLSv1.2 以下這個只在proxy server 裡的virtualhost 設定     ProxyPass / https://REMOTE_HOST:443/ retry=1 acquire=3000 timeout=3600 Keepalive=On 

解決CentOS 8 的 failed to set locale defaulting to c.utf-8 的問題

這原因是沒有安裝好支援的語言與字型, 特別是UTF8 並沒有被安裝到 因此使用以下指令確認 localedef -i en_US -f UTF-8 en_US.UTF-8 假如出現 "[error] character map file `UTF-8' not found: No such file or directory" 或者 [error] default character map file 'ANSI_X3.4-1968' not found : No such file or directory 那就安裝UTF8 吧 yum whatprovides "*/UTF-8.gz" 如果找到的話 "UTF-8.gz" 的話 yum install "*/UTF-8.gz" -y 再執行一次: localedef -i en_US -f UTF-8 en_US.UTF-8