打印本文 打印本文 关闭窗口 关闭窗口
使用PostgreSQL数据库做PHP开发
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2780  更新时间:2007/11/14 13:07:50  文章录入:mintao  责任编辑:mintao
 
# - Connection Settings -
 
#listen_addresses = ''''localhost'''' # what IP interface(s) to listen on;
                                # defaults to localhost, ''''*'''' = any
listen_addresses = ''''*''''
#port = 5432
看到没有,就是把监听地址默认的localhost改为*,就是允许所有。再启动后telnet,呵呵,黑乎乎屏幕出现,没有问题。
哈哈,现在终于能用PHP来连接了吧。

打开php里的pgsql扩展,输出phpinfo()看看能不能支持pgsql,一看,能了,赶紧写代码看看:

<?php
$link_str = "host=192.168.0.215 port=5432 dbname=test user=postgres password=postgres";
$link_id = pg_connect($link_str);
print_r($link_id);
?>

保存为pgsql.php,打开浏览器:http://localhost/pgsq.php,哈哈,等着出链接ID吧!
哦,怎么回事?出现错误:

Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: FATAL: no pg_hba.conf entry for host "192.168.0.216", user "postgres", database "test" in E:\Web\www\Temp\pgsql\pg.php on line 3

仔细看,pg_hba.conf entry for host "192.168.0.216" ,哦,原来是这个配置文件里没有允许我这个IP地址的访问,真是安全哪!
看来这个pg_hba.conf里面也必须设置才行,赶紧打开:
vi /var/pgsql/data/pg_hba.conf
添加了一段IP地址,如下内容:
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
 
# "local" is for Unix domain socket connections only
local   all         all                               trust
# IPv4 local connections:
host    all         all         127.0.0.1/32          trust
host    all         all         192.168.0.216        trust
# IPv6 local connections:
host    all         all         ::1/128               trust

看见没有,我添加了:
host    all         all         192.168.0.216       trust
如果你要允许一个段的IP,就可以添加成 192.168.0.1/24 什么的。

再启动postgresql,我浏览器再次连接,浏览器输出:
Resource id #1
^_^,成功了吧!

赶紧下个windows下的管理工具来,去:http://www.pgadmin.org/ 下载了一个 pgAdmin III回来,安装完后,启动,添加服务器,成功。用起来不错,跟MysqlCC有一拼,还支持中文。

基本到这里就没有什么了,呵呵,另外,说一个pgsql的特征,就是如果同一个用户在多个IP上登陆到服务器上,那么就只允许一个用户执行,操作,其他用户无法执行,否则出现错误,比如我在我的XP上使用pgAdmin登陆后,我又到服务器端去执行操作:
/var/pgsql/bin/createdb db1
createdb: database creation failed: ERROR:  source database "template1" is being accessed by other users

看见没有,出错了吧。

从上面种种来看,pgsql真是安全哪,把很多安全问题都扼杀在摇篮,而且配置也很丰富,虽然我安装过程复杂了一点。其实多看看手册就明白的很了,只怪我不看手册。

晕,说了半天,没怎么说PHP怎么做开发,呵呵,搭环境比较重要吧,至于开发和pgsql本身的特性,慢慢去研究。


附加点好东西:

官方推荐的安装过程,但是实际中不好使:
-------------------------------------------------------------------------------------------
./configure
gmake
su
gmake install
adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
su - postgres
/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
/usr/local/pgsql/bin/createdb test
/usr/local/pgsql/bin/psql test
------------------------------------------------------------------------------------------

PostgreSQL中文手册:http://www.pgsqldb.org/twiki/bin/view/PgSQL/PgDocList
PostgreSQL中文论坛:http://bbs.pgsqldb.com
PostgreSQL官方网站:http://www.postgresql.org


Author: heiyeluren
WriteTime: 2005-7-15 下午16:30


上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口