| 導購 | 订阅 | 在线投稿
分享
 
 
 

PHP安裝攻略:PostgreSQL

來源:互聯網網民  2008-05-18 21:58:42  評論

以下將說明使用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

另外PostgreSQL使用了System V的共享內存機制。FreeBSD默認狀態不支持該機制。如使用中的內核的設置文件中無以下項目則需追加後重新編譯內核:

options SYSVSHM

options SYSVSEM

options SYSVMSG

建保存源程序的目錄/usr/local/src/pgsql和安裝目錄/usr/local/pgsql:

1.3 編譯

以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的文件,內容爲:

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文件的權限:

現在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

../apache_1.3.6 --enable-track-vars

最後一步將建立/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使用以下命令:

sh和bash使用如下命令:

然後

2.3 修改設置文件

將/usr/local/apache/etc/srm.conf中以下兩行內容前的

如果以.php3作爲PHP3文件的擴展名,則將.phtml 更改爲 .php3:

在srm.conf文件的DirectoryIndex下增加 index.php3:

DirectoryIndex index.html index.php3

2.4 啓動Apache

apachectl start: httpd started

在本地機上啓動網絡浏覽器,地址欄輸入http://localhost/(或在其他計算機上的浏覽器地址欄輸入Apache服務器地址),如能顯示出Apache的開始畫面則說明Apache已經安裝成功。下面測試PHP3模塊工作是否正常:

然後在浏覽器的地址欄輸入

http://localhost/php-3.0.5/examples/date.php3

觀察php3文件的運行結果是否正常。如日期函數能顯示正確結果,則說明PHP3模塊工作正常。

至此,基于Apache Web服務器和服務器端腳本語言PHP3的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   另外PostgreSQL使用了System V的共享內存機制。FreeBSD默認狀態不支持該機制。如使用中的內核的設置文件中無以下項目則需追加後重新編譯內核:   options SYSVSHM   options SYSVSEM   options SYSVMSG   建保存源程序的目錄/usr/local/src/pgsql和安裝目錄/usr/local/pgsql:   1.3 編譯   以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的文件,內容爲:   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文件的權限:   現在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   ../apache_1.3.6 --enable-track-vars   最後一步將建立/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使用以下命令:   sh和bash使用如下命令:   然後   2.3 修改設置文件   將/usr/local/apache/etc/srm.conf中以下兩行內容前的   如果以.php3作爲PHP3文件的擴展名,則將.phtml 更改爲 .php3:   在srm.conf文件的DirectoryIndex下增加 index.php3:   DirectoryIndex index.html index.php3   2.4 啓動Apache   apachectl start: httpd started   在本地機上啓動網絡浏覽器,地址欄輸入http://localhost/(或在其他計算機上的浏覽器地址欄輸入Apache服務器地址),如能顯示出Apache的開始畫面則說明Apache已經安裝成功。下面測試PHP3模塊工作是否正常:   然後在浏覽器的地址欄輸入   http://localhost/php-3.0.5/examples/date.php3   觀察php3文件的運行結果是否正常。如日期函數能顯示正確結果,則說明PHP3模塊工作正常。   至此,基于Apache Web服務器和服務器端腳本語言PHP3的PostgreSQL數據庫系統的安裝已經完成 :-)
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有