搜索
首页后端开发php教程PHP安装攻略:PostgreSQL_PHP
PHP安装攻略:PostgreSQL_PHPJun 01, 2016 pm 12:35 PM
使用安装攻略数据库文件用户

PostgreSQL

以下将说明使用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 unix
  user ID: 1000 ->1000
  Is user "nobody" allowed to create dataase(y/n)n
  Is user "nobody" allowed to add users?(y/n)n
  createuser: nobody was successfully added

  删除用户可以使用命令destroyuser 用户名
  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 on to
  权限种类:all,select,insert,update,delete,rule
  table名:被设置用户访问权限的表文件
  用户/组:public(所有用户) 或用户名/组名
  revoke命令作用与grant命令相反,用法如下:
  revoke on from
  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数据库系统的安装已经完成 :-)
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
探索伊甸超越时空之猫的60章攻略探索伊甸超越时空之猫的60章攻略Jan 23, 2024 pm 01:18 PM

另一个伊甸超越时空的猫60章攻略是什么呢?第60章算是很不错的一关了,很多人都在问这一关到底该如何通关?现在小编为您奉上另一个伊甸60章的攻略与分享,一起来看看吧!另一个伊甸超越时空的猫60章攻略1、从地图正右方到达区域2。2、在区域2地图右下方触发剧情。3、返回区域1,在地图中央偏左处触发剧情。4、从地图左边的路口,到达地图“沉淀之地”。该图来源:taptap:让人微笑的光景【再生村落安格尔】隐藏要素:①完成山之国支线《从远方来的人们》后,可在左上C处和魔兽阿姨对话得到EGPD徽章,再去埃尔吉

《纸嫁衣6》第五章攻略全文图解(中)《纸嫁衣6》第五章攻略全文图解(中)Jan 23, 2024 pm 06:54 PM

中式剧情解谜游戏《纸嫁衣》系列推出了它的第六部作品无间梦境千秋魇篇,很多玩家已经开始体验该游戏,速度快的已经通关全章节了!不过还有不少玩家卡关了!在第5章中大家也遇到不少问题,在纸嫁衣6攻略第五章(中)怎么过关呢?接下来小编给大家分享带来的是taptap乔森的《纸嫁衣6》第五章攻略全文图解(中),一起来看看吧!《纸嫁衣6》第五章攻略全文图解(中)切换肖视角根据大楼前的迷宫配合奚视角,让奚捡东西,奚获得罗汉像,到达地动仪和铜鼎,将木块放到拼图上,做拼图游戏,做完获得鹦鹉木雕和古币将罗汉像传送至肖处

《想不到鸭》游学合影通关攻略《想不到鸭》游学合影通关攻略Jan 18, 2024 pm 06:06 PM

抖音上最近很火的休闲闯关解谜游戏是《想不到鸭》。要开始游戏,只需进入抖音APP,然后在右上角搜索中找到该游戏并点击玩一玩,即可体验各个关卡。游戏中有许多关卡,其中之一是游学合影关卡,需要帮助小砂糖橘完成合影。今天,本站网小编为大家带来了《想不到鸭》游学合影通关攻略分享,详细步骤请参考下方图文分享。不要臭钱大嫂买房过去与未来破屋老人天桥老人遗憾往事毕业合照怀旧入冬过节聚餐强哥暴富我要当皇上丑女逆袭回家看看看望姥姥奶奶过河女主对话看望爷爷医学奇迹无声的爱不同儿媳舞蹈穿搭宝贝晚安一路狂飙爱豆演唱会悬崖

穿越时空的猫62章攻略:发现另一个伊甸穿越时空的猫62章攻略:发现另一个伊甸Jan 23, 2024 pm 06:30 PM

另一个伊甸超越时空的猫62章攻略是什么呢?第62章是暴风加尔法弦,一艘被遗弃的囚舰悲剧,许多人都不知道这一关到底该如何通关?今日,小编为您奉上具体的攻略与分享,欲知详情请速看!另一个伊甸超越时空的猫62章攻略62章-风暴之加尔法弦,废弃监狱船的惨剧】路线:空中城郭伊斯亚→监狱船空中城郭伊斯亚1、在主城地图右上方乘坐电梯到达“机场”。2、在左方乘坐飞船到达“监狱船加尔法弦”。监狱船加尔法弦1、从地图左方入口进入“监狱船加尔法弦A栋”。监狱船加尔法弦A栋1、在地图中央触碰开关,击败召唤来的机器人,打

《想不到鸭》逃离博物馆通关攻略《想不到鸭》逃离博物馆通关攻略Jan 18, 2024 pm 07:51 PM

想不到鸭小游戏是抖音上最近很火的休闲闯关解谜游戏,进入抖音APP,然后在右上角搜索中找到该游戏即可点击玩一玩进入游戏体验各个关卡!游戏中分为多个板块,其中想不到鸭主编推荐板块关卡之一逃离博物馆怎么过关呢?今天本站网小编给大家带来了《想不到鸭》逃离博物馆通关攻略分享,不清楚该关卡具体如何过关的小伙伴速来看看下方图文分享吧!《想不到鸭》逃离博物馆通关攻略逃离博物馆目标:夺回属于自己的东西1、逃离博物馆夺回属于自己的东西这一关我们需要在房间里找出我们国家的珍宝,首先可以点击点击衣柜上面的画。2、然后点

解锁伊甸之门:攻略超越时空的猫59章解锁伊甸之门:攻略超越时空的猫59章Jan 22, 2024 pm 02:03 PM

另一个伊甸超越时空的猫59章攻略是什么呢?在游戏中别让权十郎跑了是第59章的主题,许多玩家都希望了解这一关如何通关?现在,小编就为您提供第五十九章的攻略,感兴趣的玩家可以来看一看!另一个伊甸超越时空的猫59章攻略1、从地图正右方到达区域2。2、在区域2地图右下方触发剧情。3、返回区域1,在地图中央偏左处触发剧情。4、从地图左边的路口,到达地图“沉淀之地”。该图来源:taptap:让人微笑的光景【再生村落安格尔】隐藏要素:①完成山之国支线《从远方来的人们》后,可在左上C处和魔兽阿姨对话得到EGPD

探索白荆回廊,火雷队烙痕搭配攻略分享探索白荆回廊,火雷队烙痕搭配攻略分享Jan 23, 2024 am 08:33 AM

白荆回廊是一款拥有全配音优秀玩法的即时策略二次元战棋游戏。游戏中有多种多样的阵容搭配玩法流派,其中火雷队备受玩家喜爱。玩家们对于火雷队的烙痕搭配也十分好奇。本期将为大家带来火雷队烙痕搭配攻略,帮助玩家更好地进行配置。白荆回廊火雷队烙痕搭配攻略【残照】激励技能“弱点标记”,【化为千鹤】激励技能“烈焰暴击”,【天陷】激励技能“炽热生命”,火雷优先借个【夕阳挽歌】激励技能“力量喷涌”或者借【暗巷漆影】激励技能“人多势众”,莫红袖搭配【代号百草】激励技能“屏障.炎”,龙晴要配【噩梦】激励技能“屏障.水”

2024年1月11日的保卫萝卜4周赛攻略2024年1月11日的保卫萝卜4周赛攻略Jan 23, 2024 pm 02:15 PM

保卫萝卜4的每日周赛关卡提供了各种不同的挑战,玩家需要仔细思考通关策略。下面是这次关卡的通关思路。2024保卫萝卜4周赛1月11日攻略1、首先在图下右下角位置建造一个多重箭炮台和一个回旋镖,清除附近障碍。2、待障碍清除后,在屏幕上空余位置继续建造火瓶和回旋镖炮台。3、升级道具后,会出现太上老君我们集火攻击。4、保持图下阵容,集中攻击香炉,轻松完成今日周赛关卡。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),