search
HomeBackend DevelopmentPHP TutorialApache + php3 + PostgreSQL的安装_PHP
Apache + php3 + PostgreSQL的安装_PHPJun 01, 2016 pm 12:35 PM
postgresqluseInstalldatabasedocumentuserset up

PostgreSQLApache

以下将说明使用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数据库系统的安装已经完成 :-)

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
win11安装语言包错误0x800f0950什么原因win11安装语言包错误0x800f0950什么原因Jul 01, 2023 pm 11:29 PM

win11安装语言包错误0x800f0950什么原因?当我们在给windows11系统安装新语言包时,有时会遇到系统提示错误代码:0x800f0950,导致语言包安装流程无法继续进行下去。导致这个错误代码一般是什么原因,又要怎么解决呢?今天小编就来给大家说明一下win11安装语言包错误0x800f0950的具体解决步骤,有需要的用户们赶紧来看一下吧。win11电脑错误代码0x800f0950解决技巧1、首先按下快捷键“Win+R”打开运行,然后输入:Regedit打开注册表。2、在搜索框中输入“

如何在 Google Docs 中安装自定义字体如何在 Google Docs 中安装自定义字体Apr 26, 2023 pm 01:40 PM

GoogleDocs在学校和工作环境中变得很流行,因为它提供了文字处理器所期望的所有功能。使用Google文档,您可以创建文档、简历和项目提案,还可以与世界各地的其他用户同时工作。您可能会注意到GoogleDocs不包括MicrosoftWord附带的所有功能,但它提供了自定义文档的能力。使用正确的字体可以改变文档的外观并使其具有吸引力。GoogleDocs提供了大量字体,您可以根据自己的喜好从中选择任何人。如果您希望将自定义字体添加到Google文档,请继续阅读本文。在本文中

适用于 Windows 11 的记事本++:如何下载和安装它适用于 Windows 11 的记事本++:如何下载和安装它Jul 06, 2023 pm 10:41 PM

Notepad++主要由开发人员用于编辑源代码,由临时用户用于编辑文本。但是,如果您刚刚升级到Windows11,则在您的系统上下载和安装该应用程序可能具有挑战性。因此,我们将讨论在Windows11上下载和安装记事本++。此外,您可以轻松阅读我们关于修复Notepad++在Windows上没有响应的详细指南。记事本++可以在Windows11上运行吗?是的,记事本++可以在Windows11上有效工作,而不会出现兼容性问题。更具体地说,没有臃肿的选项或错误,只需在一个非常小的编辑器中即可。此外

Steam 未检测到 Windows 11/10 中已安装的游戏,如何修复Steam 未检测到 Windows 11/10 中已安装的游戏,如何修复Jun 27, 2023 pm 11:47 PM

Steam客户端无法识别您计算机上的任何游戏吗?当您从计算机上卸载Steam客户端时,会发生这种情况。但是,当您重新安装Steam应用程序时,它会自动识别已安装文件夹中的游戏。但是,别担心。不,您不必重新下载计算机上的所有游戏。有一些基本和一些高级解决方案可用。修复1–尝试在同一位置安装游戏这是解决这个问题的最简单方法。只需打开Steam应用程序并尝试在同一位置安装游戏即可。步骤1–在您的系统上打开Steam客户端。步骤2–直接进入“库”以查找您拥有的所有游戏。第3步–选择游戏。它将列在“未分类

修复:在 Xbox 应用上的 Halo Infinite(Campaign)安装错误代码 0X80070032、0X80070424 或 0X80070005修复:在 Xbox 应用上的 Halo Infinite(Campaign)安装错误代码 0X80070032、0X80070424 或 0X80070005May 21, 2023 am 11:41 AM

<p><strong>HaloInfinite(Campaign)</strong>是一款第一人称射击视频游戏,于2021年11月推出,可供单人和多用户使用。该游戏是Halo系列的延续,适用于Windows、XboxOne和Xbox系列的用户X|S。最近,它还在PC版XboxGamePass上发布,以提高其可访问性。大量玩家报告在尝试使用WindowsPC上的<strong>Xbox应

Windows 11 Lite:它是什么以及如何在您的 PC 上安装它Windows 11 Lite:它是什么以及如何在您的 PC 上安装它Apr 14, 2023 pm 11:19 PM

我们深知MicrosoftWindows11是一个功能齐全且设计吸引人的操作系统。但是,用户一直要求Windows11Lite版本。尽管它提供了重大改进,但Windows11是一个资源匮乏的操作系统,它可能很快就会使旧机器混乱到无法顺利运行的地步。本文将解决您最常问的关于是否有Windows11Lite版本以及是否可以安全下载的问题。跟着!有Windows11Lite版本吗?我们正在谈论的Windows11Lite21H2版本是由Neelkalpa的T

虚拟机如何安装Win11虚拟机如何安装Win11Jul 03, 2023 pm 12:17 PM

  虚拟机怎么安装Win11?近期有用户想要尝试使用VirtualBox虚拟机安装Win11,但是不太清楚具体的操作方法,针对这一情况,小编将为大家演示使用VirtualBox安装Win11的方法,很多小伙伴不知道怎么详细操作,小编下面整理了使用VirtualBox安装Win11的步骤,如果你感兴趣的话,跟着小编一起往下看看吧!  使用VirtualBox安装Win11的步骤  1、要下载VirtualBox,请前往VirtualBox官方下载页面,下载适用于Windows的.exe文件。如果你

如何在 Windows 11 中重新安装邮件应用程序如何在 Windows 11 中重新安装邮件应用程序Apr 14, 2023 pm 03:19 PM

<p><strong>邮件应用程序</strong>是Windows11内置的一个非常有用的电子邮件客户端。它允许您从一个位置管理所有邮件帐户。虽然Mail应用程序非常有用,但有时可能需要重置,有时也需要重新安装,原因有多种。在本文中,我们将通过一些简单的步骤说明如何从Windows11轻松卸载Mail应用程序,以及如何轻松地从MicrosoftStore将其取回。</p>&l

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Repo: How To Revive Teammates
1 months agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
2 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: How To Get Giant Seeds
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version