Linux中的字型(FONTS)设定
以下将说明使用Apache+PHP3+PostgreSQL作为基于Web的数据库平台的安装和配置方法。关于Apache、PHP3和PostgreSQL的更多内容可以从软件的附带文档、Linux的HOWTO文件
以及以下站点处找到:
Apache:
http://www.apache.org
PHP3:
http://www.php.net
PostgreSQL:
http://www.postgresql.org
1.
PostgreSQL的安装和设置
1.1
获得源程序
PostgreSQL最新版本的源程序可以在http://www.postgresql.org找到。目前的最新版本
是6.5.X。以下以6.4
版为例说明安装方法。
1.2
准备工作
编译PostgreSQL需要3.75版以上的GNU
make
(用gmake
-v检查版本号)
,2.7.2版以上的
GNU
C(用gcc
-v
检查版本号)以及bison和flex(通常这两种工具都已经安装了)
。
PostgreSQL的默认安装位置为/usr/local/pgsql/,系统文件约需3-10M空间。附带的测试
程序在运行时需要约20M空间,所以安装时应注意预留足够的空间,建议/usr/local/pgsql/
目录下保证有50M以上空间。另外展开和编译源程序约需30-60M空间。
对多用户的应用环境,建议设置一个专用用户名,例如
postgres
:
$
su
首先登录为root
#
/usr/sbin/adduser
postgres
另外PostgreSQL使用了System
V的共享内存机制。FreeBSD默认状态不支持该机制。如使用
中的内核的设置文件中无以下项目则需追加后重新编译内核:
options
SYSVSHM
options
SYSVSEM
options
SYSVMSG
建保存源程序的目录/usr/local/src/pgsql和安装目录/usr/local/pgsql:
#mkdir
/usr/local/pgsql
#chown
postgres:postgres
/usr/local/pgsql
#mkdir
/usr/local/src
#mkdir
/usr/local/src/pgsql
#chown
postgres:postgres
/usr/local/src/pgsql
1.3
编译
以postgres用户登录,
解压缩源程序:
#
su
postgres
$
tar
-xzvf
/tmp/postgresql-v6.4.tar.gz
[假设下载文件保存在/tmp目录下]
完成后应生成一个postgresql-v6.4目录,下面开始编译:
$
cd
/usr/local/src/pgsql/postgresql-v6.4/src
$
./configure
--with-mb=EUC_CN
其中,--with-mb=指定系统默认字符编码。除GB码(EUC_CN)
外,还可以指定为日语
(EUC_JP)、韩语(EUC_KR)
、台湾(EUC_TW)
、UNICODE、MULE_INTERNAL、LATIN1等。
注意,如使用6.3.2版需用--with-template=...
指定操作系统,具体内容见源程序附带的说明文件。
configure如顺利完成,将生成GNUmakefile,Makefile.global和Makefile.port等文件。
$
gmake
all
在编译结束后将显示以下信息:
All
of
PostgreSQL
is
successfully
made.
Ready
to
install.
安装:
$
gmake
install
正常完成后,PostgreSQl的执行文件和库文件等将被安装到/usr/local/pgsql目录下。
安装附带文档:
$
gmake
install-man
$
cd
/usr/local/src/postgresql-v6.4/doc
$
make
install
至此PostgreSQL的编译安装已经完成,下面开始初期设置。
1.4
初期设置
设置环境变量:
如使用的shell为bash,
则在.bashrc中添加以下命令:
PATH="$PATH":/usr/local/pgsql/bin
export
POSTGRES_HOME=/usr/local/pgsql
export
PGLIB=$POSTGRES_HOME/lib
export
PGDATA=$POSTGRES_HOME/data
export
MANPATH="$MANPTH":$POSTGRES_HOME/man
export
LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
然后执行
source
~/.bashrc
如使用的shell为csh/tcsh则在.cshrc中添加以下命令:
setenv
PATH="$PATH":/usr/local/pgsql/bin
setenv
POSTGRES_HOME=/usr/local/pgsql
setenv
PGLIB=$POSTGRES_HOME/lib
setenv
PGDATA=$POSTGRES_HOME/data
setenv
MANPATH="$MANPTH":$POSTGRES_HOME/man
setenv
LD_LIBRARY_PATH="$LD_LIBRARY_PATH":"$PGLIB"
然后执行
source
~/.cshrc
以上环境变量是所有使用数据库的用户都需要设置的。
数据库目录的初始化:
$
initdb
可以使用的参数:
--pgdata=/pgsql/db
指定数据库目录,默认使用环境变量PGDATA指定的位置
--pgencoding=EUC_CN
指定数据库的字符编码,默认使用configure时指定的编码。
需要注意的是执行initdb的用户将拥有所建数据库目录的管理权。
使用以下命令启动PostgreSQL:
$
postmaster
-S
运行测试程序:
$
cd
test/regression
$
gmake
all
runtest
如测试程序能正常运行则说明PostgreSQL能正常运行。
为了让
PostgreSQL在系统启动时能自动启动,需作以下变更:
首先以root登录
$
su
Linux:
在/etc/rc.d/rc.local中追加以下内容:
POSTGRESDIR=/usr/local/pgsql
if
[
-x
$POSTGRESDIR/bin/postmaster
-a
-d
$POSTGRESDIR/data
];then
rm
-f
/tmp/s.PGSQL.5432
su
-
postgres
-c
"postmaster
-S
-i"
echo
-n
'postmaster'
fi
FreeBSD:
在/usr/local/etc/rc.d中建立名为pgsql.sh的文件,内容为:
#!
/bin/sh
POSTGRESDIR=/usr/local/pgsql
if
[
-x
$POSTGRESDIR/bin/postmaster
-a
-d
$POSTGRESDIR/data
];then
rm
-f
/tmp/s.PGSQL.5432
su
-
postgres
-c
"postmaster
-S
-i"
echo
-n
'postmaster'
fi
修改pgsql.sh文件的权限:
#
chmod
755
pgsql.sh
现在PostgreSQL的安装和设定基本已经完成了,但是目前为止能使用数据库的用户只有postgres。
为使其他用户可以使用数据库,需要登录数据库用户和生成用户数据。
例如通过Web服务器Apache进行查询的用户,用户名为nobody:
%
createuser
nobody
Enter
user's
postgres
ID
or
RETURN
to
use
uni