首頁 後端開發 php教程 Apache + php3 + PostgreSQL的安装_PHP

Apache + php3 + PostgreSQL的安装_PHP

Jun 01, 2016 pm 12:35 PM
postgresql 使用 安裝 資料庫 文件 使用者 設定

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数据库系统的安装已经完成 :-)

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

<🎜>:泡泡膠模擬器無窮大 - 如何獲取和使用皇家鑰匙
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系統,解釋
3 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Java教學
1664
14
CakePHP 教程
1423
52
Laravel 教程
1318
25
PHP教程
1269
29
C# 教程
1248
24
iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 iOS 18 新增「已復原」相簿功能 可找回遺失或損壞的照片 Jul 18, 2024 am 05:48 AM

蘋果公司最新發布的iOS18、iPadOS18以及macOSSequoia系統為Photos應用程式增添了一項重要功能,旨在幫助用戶輕鬆恢復因各種原因遺失或損壞的照片和影片。這項新功能在Photos應用的"工具"部分引入了一個名為"已恢復"的相冊,當用戶設備中存在未納入其照片庫的圖片或影片時,該相冊將自動顯示。 "已恢復"相簿的出現為因資料庫損壞、相機應用未正確保存至照片庫或第三方應用管理照片庫時照片和視頻丟失提供了解決方案。使用者只需簡單幾步

如何在PHP中處理資料庫連線錯誤 如何在PHP中處理資料庫連線錯誤 Jun 05, 2024 pm 02:16 PM

PHP處理資料庫連線報錯,可以使用下列步驟:使用mysqli_connect_errno()取得錯誤代碼。使用mysqli_connect_error()取得錯誤訊息。透過擷取並記錄這些錯誤訊息,可以輕鬆識別並解決資料庫連接問題,確保應用程式的順暢運作。

在PHP中使用MySQLi建立資料庫連線的詳盡教學 在PHP中使用MySQLi建立資料庫連線的詳盡教學 Jun 04, 2024 pm 01:42 PM

如何在PHP中使用MySQLi建立資料庫連線:包含MySQLi擴充(require_once)建立連線函數(functionconnect_to_db)呼叫連線函數($conn=connect_to_db())執行查詢($result=$conn->query())關閉連線( $conn->close())

什麼是Bitget Launchpool?如何使用Bitget Launchpool? 什麼是Bitget Launchpool?如何使用Bitget Launchpool? Jun 07, 2024 pm 12:06 PM

BitgetLaunchpool是一個為所有加密貨幣愛好者而設計的動態平台。 BitgetLaunchpool以其獨特的產品脫穎而出。在這裡,您可以質押您的代幣來解鎖更多獎勵,包括空投、高額回報,以及專屬早期參與者的豐厚獎金池。什麼是BitgetLaunchpool? BitgetLaunchpool是一個加密貨幣平台,可以透過使用者友善的條款和條件來質押和賺取代幣。透過在Launchpool中投入BGB或其他代幣,用戶有機會獲得免費空投、收益和參與豐厚的獎金池。質押資產的收益在T+1小時內計算,獎勵按

如何在 Golang 中使用資料庫回呼函數? 如何在 Golang 中使用資料庫回呼函數? Jun 03, 2024 pm 02:20 PM

在Golang中使用資料庫回呼函數可以實現:在指定資料庫操作完成後執行自訂程式碼。透過單獨的函數新增自訂行為,無需編寫額外程式碼。回調函數可用於插入、更新、刪除和查詢操作。必須使用sql.Exec、sql.QueryRow或sql.Query函數才能使用回呼函數。

如何在 Golang 中將 JSON 資料保存到資料庫中? 如何在 Golang 中將 JSON 資料保存到資料庫中? Jun 06, 2024 am 11:24 AM

可以透過使用gjson函式庫或json.Unmarshal函數將JSON資料儲存到MySQL資料庫中。 gjson函式庫提供了方便的方法來解析JSON字段,而json.Unmarshal函數需要一個目標類型指標來解組JSON資料。這兩種方法都需要準備SQL語句和執行插入操作來將資料持久化到資料庫中。

如何用 Golang 連接遠端資料庫? 如何用 Golang 連接遠端資料庫? Jun 01, 2024 pm 08:31 PM

透過Go標準庫database/sql包,可以連接到MySQL、PostgreSQL或SQLite等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用sql.Open()函數開啟資料庫連線。執行SQL查詢和插入操作等資料庫操作。使用defer關閉資料庫連線以釋放資源。

如何使用C++處理資料庫連線和操作? 如何使用C++處理資料庫連線和操作? Jun 01, 2024 pm 07:24 PM

在C++中使用DataAccessObjects(DAO)函式庫連接和操作資料庫,包括建立資料庫連線、執行SQL查詢、插入新記錄和更新現有記錄。具體步驟為:1.包含必要的函式庫語句;2.開啟資料庫檔案;3.建立Recordset物件執行SQL查詢或操作資料;4.遍歷結果或依照特定需求更新記錄。

See all articles