您的位置:IT教程网首页>网络编程教程>php教程>PHP安装攻略:PostgreSQL

PHP安装攻略:PostgreSQL


PostgreSQL可以同时治理多个数据库(但数据库之间不能进行join等操作)。新建数据库:
$ createdb 数据库名
新建的数据库将被放在/usr/local/pgsql/data/base的同名目录下(环境变量PGDATA指定路径的base目录下)。如省略数据库名参数,将自动以用户名作为数据库名。
例如 名为db1的数据库将被保存在/usr/local/pgsql/data/base/db1目录下。也可使用initlocation命令指定其他位置:
$ initlocation /pgsql/data
$ export PGDATA2=/pgsql/data
$ createdb -D PGDATA2 DB2

则数据库db2将被保存在/pgsql/data目录下。另外PostgreSQL 6.4版可以在建立数据库时指定文字编码:createdb -E “字符编码” “字符编码” 参见configure、initdb。
删除数据库:destroydb 数据库名
PostgreSQL最基本的数据库治理工具是
pgsql. 基本使用方法:pgsql 数据库名

1.5 安全设置:
PostgreSQL提供了基于主机的认证方式host based authentication(HBA) 、基于口令的用户身份认证和用户操作权限设置等安全机制。

1.5.1 HBA方式和基于口令的用户身份认证方式
HBA方式的设置文件为pg_hba.conf。其格式为:
host DBNAME IP_ADDRESS ADDRESS_MASK USRAUTH [AUTH_ARGUMENT]
host: 固定标志,不能修改
DBNAME: 数据库名,all代表所有数据库
IP_ADDRESS,ADDRESS_MASK:指定IP地址,也可指定子网,如192.168.10.0/255.255.255.0
USERAUTH: 对用户的认证方式,包括ident(RFC1413) 、trust(不进行认证) 、reject (拒绝符合条件的访问)、password [passwd_file](根据flat file口令文件进行认证) 、 crypt(使用PostgreSQL的系统数据库pg_shadow进行认证)、kbr4/kbr5(Kerberos V4/V5认证) 。如在作为Web 数据库使用, 使用passwd口令文件进行本地登录时可如下设置:
Host all 127.0.0.1 255.255.255.255 password passwd
passwd文件默认位置为/usr/local/pgsql/data, 有数据库治理权限的用户可以使用
pg_passwd命令治理该文件(注重:flat file口令认证方式采用明文传送口令,故要从网络上其他主机登录,建议使用crypt认证方式)。

1.5.2 用户操作权限设置
使用SQL命令grant/revoke可以设置用户/用户组可否使用select/insert/update/rule命令。

根据SQL标准,一个数据表文件(table) 在刚建立时只有建立该表文件的用户有权访问。要分配给用户访问权限,可以使用grant命令:
grant $#@60; 权限种类 $#@62; on to $#@60; 用户/组 $#@62;
权限种类:all,select,insert,update,delete,rule
table名:被设置用户访问权限的表文件
用户/组:public(所有用户) 或用户名/组名
revoke命令作用与grant命令相反,用法如下:
revoke $#@60;权限种类$#@62; on from $#@60;用户/组$#@62;
table已设置的用户权限可以使用pgsql的\z 命令查看。

2. Apache PHP3的安装及设置

2.1 源程序
Apache和PHP3的最新版本源程序可以从http://www.apache.org/和http://www.php.net/找到。
以下以Apache 1.3.6和PHP3 3.0.5 为例。

2.2 编译
假设Apache和PHP3的源程序都保存在/tmp目录下,首先登录为root:
$ su
# cd /usr/local/ src
# tar -xzvf /tmp/apache_1.3.6.tar.gz
# ./configure
# cd /usr/local/ src
# tar -xzvf /tmp/php3-3.0.5.tar.gz
# cd php-3.0.5
# ./configure --with-pgsql --with-apache=
../apache_1.3.6 --enable-track-vars
# make
# make install

最后一步将建立/usr/local/ src/apache_1.3.6/ src/modules/php3目录,并将以下文件

复制到该目录下:
Makefile.libdir libmodphp3.a mod_php3.c php_version.h
Makefile.tmpl libphp3.module mod_php3.h
编译和安装Apache:

设置环境变量LD_LIBRARY_PATH csh和tcsh shell使用以下命令:
# setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
sh和bash使用如下命令:
# LD_LIBRARY_PATH=/usr/local/pgsql/lib
# export LD_LIBRARY_PATH

然后
# cd /usr/local/ src/apache_1.3.6
# ./configure --activate-module= src/modules/php3/libphp3.a
# make
# make install

2.3 修改设置文件
# cd /usr/local/ src/php-3.0.5
# cp php3.ini-dist /usr/local/lib/php3.ini
将/usr/local/apache/etc/srm.conf中以下两行内容前的#号删除,
假如以.php3作为PHP3文件的扩展名,则将.phtml 更改为 .php3:
#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps
在srm.conf文件的DirectoryIndex下增加 index.php3:
DirectoryIndex index.html index.php3

2.4 启动Apache
# /usr/local/apache/sbin/apachectl start
apachectl start: httpd started

在本地机上启动网络浏览器,地址栏输入http://localhost/(或在其他计算机上的浏览器地址栏输入Apache服务器地址),如能显示出Apache的开始画面则说明Apache已经安装成功。下面测试PHP3模块工作是否正常:
# cd /usr/local/apache/share/htdocs/
# ln -s /usr/local/ src/php-3.0.5 .
然后在浏览器的地址栏输入
http://localhost/php-3.0.5/examples/date.php3

观察php3文件的运行结果是否正常。如日期函数能显示正确结果,则说明PHP3模块工作正常。
至此,基于Apache Web服务器和服务器端脚本语言PHP3的PostgreSQL数据库系统的安装已经完成 :-)

共2页: 上一页 [1] 2 下一页