星期五, 七月 13, 2007
Debian Linux 架設 PostgreSQL + PhpPgAdmin
紀錄在 Debian Linux 上安裝 PostgreSQL 和 phppgadmin 的設定和過程~ :)
安裝 postgresql
- apt-get install postgresql # 照理說這樣子 Postgre SQL 就已經裝好了.
測試看看 PosrgreSQL 基本操作:
- sudo -u postgres psql template1 # 要用 postgres 的身份執行才可以
- template1=# create user PG_USER with password 'PASSWORD' createdb createuser; # 建立新帳號/密碼
- template1=# alter user postgres with password 'PASSWORD'; # 修改postgres的密碼
- template1=# \q # 離開
- PS: 於此處下的指令, 都會存在 /var/lib/postgresql/.psql_history 這個檔案裡.
再來來架設 phppgadmin:
- 安裝 phppgadmin
- apt-get install phppgadmin libapache2-mod-php5
- 將 /phppgadmin 指到 phppgadmin 預設安裝路徑(/usr/share/phppgadmin), 採用 package 寫好的 conf 檔
- ln -s /etc/phppgadmin/apache.conf /etc/apache2/sites-enabled/001-phppgadmin
- 修改權限設定, 預設只讓本機自己存取, 改成都先不限.
- vim /etc/phppgadmin/apache.conf
- 將下述
allow from 127.0.0.0/255.0.0.0
# allow from all - 改成
#allow from 127.0.0.0/255.0.0.0
allow from all - /etc/init.d/apache2 reload
- 這樣子就完工囉!!
phppgadmin 預設是不讓 postgres 登入, 所以最好要先 create 一個 user 再登入使用.
- 如果想要讓 postgres 登入, 一定要先修改 postgres 的密碼(postgres 的密碼不能為空)
- vim /etc/phppgadmin/config.inc.php
- 修改 $conf['extra_login_security'] = true;
- 變成 $conf['extra_login_security'] = false;
- 這樣子就可以用 postgres 登入.
預設 PostgreSQL data 儲存路徑: /var/lib/postgresql/8.2/main, 修改成自定的路徑:
- mkdir -p /var/postgresql/data
- chown -R postgres:postgres /var/postgresql/
- sudo su - postgres # 轉換成 postgres 的身份
- vim ~/.bashrc # 設定環境參數, 將下述寫入 .bashrc 檔最下面即可
- export POSTGRE_HOME=/usr/lib/postgresql/8.2
- export PGLIB=$POSTGRE_HOME/lib
- export PGDATA=/var/postgresql/data
- export LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
- export PATH=$PATH:$POSTGRE_HOME/bin
- source ~/.bashrc
- initdb --pgdata=/var/postgresql/data
- 啟動 DB:(下述二者挑其一即可)
- pg_ctl -D /var/postgresql/data -l logfile start
- postgres -D /var/postgresql/data
參考:
- PostgreSQL 8.1 on GNU/Debian - 預設說明整理
- phpPgAdmin 4.x for Debian 快速安裝使用
- HOWTO Fully Install PostgreSQL on Debian
- 電子書: Practical PostgreSQL
相關標籤
回 KitshiNg
厄... 從另一個觀點看, 這也是好事嘛~ DB 本來就不該停掉的... XDDDDDD
這... 就先這樣子吧. XDDD
我手邊現在也沒有 postgresql 的機器可以測~ 反正能跑最重要 :P
問Tsung - 有關 PostgreSQL 支援中文問題
回 Tsung
http://hk.php.net/manual/hk/function.pg-client-encoding.php
望真一點...好像解釋是只回饋出一個 Client 用的 encoding, 用錯了=.=..Sorry
但我想問問,是否用 array 儲存中文會發生問題的呢
我用 fgetcsv() 拿 csv 的資料出來時,出來的 array 甚麼都沒找到
但我用 fgets() 拿 csv 的資料出來時,出來的中文字是沒問題的
但如果再放把這些出來沒問題的中文字,分段放進去 array 中,
最後再將這個 array output 出來,但又是沒有東西在裡面。
(因為我需要把一些 csv 檔,用 php 把它全部寫入到 PostgreSQL 中 ,途中需要做一些加減的計算才寫到 postgreSQL )
發生甚麼是呢 ?
(( 請原諒我的打擾 ))
回 KitshiNg
所以你主要是要處理 csv 檔, 並不需要 PostgreSQL 吧?
處理 csv 檔, 我沒用過 fgetcsv 耶, 我都是 fgets, 再用 split 去切.
php array 存 array 是不會有問題的, 我想是不是你寫法上有問題呢?
還是你要把程式放在某個地方, 讓我看一下? 或寄給我看看?
回 Tsung
我是用 fgets ,再用 strtok 去切開的
對。主要只是要處理 csv 檔, 然後要儲存到 PostgreSQL 裡。
好吧,我隔幾日把這個檔案寄給你吧。
( 因為這個檔案遺留了別處 :p )
回 Tsung
我記憶中...
我建立了 utf8 的 PostgreSQL database 後
用 phppgadmin 進入,編輯一個記錄,把記錄改成中文字體。
儲存後,發現亂碼了
但用 EUC_TW 的 database 就沒有亂碼了。
但無論是哪個,我用 csv 檔存進去都是亂碼
* 如何把 csv 轉成 utf-8 再存進去呢..@@?
* 遲幾天寄個處理 csv 的檔給你看看有沒有問題 :)
回Kitshing
mb_convert_encoding($var, 'UTF-8', 'cp950');
用這個就可以了 :)
為什麼我的postgresql.conf沒有tcpip.socket選項?
hi,dear:
為什麼我的postgresql.conf沒有tcpip.socket選項?
無法開啟tcpip訪問?
發表迴響
PS2: 若您的留言被誤判, 我都會再自行看過, 不需要一直重覆張貼~




