<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      [轉]Apache+PHP3+PostgreSQL作為基于Web的數據庫平臺的安裝

      [摘要]發信人: xiaoning (我要飛), 信區: Linux 標題: Apache+PHP3+PostgreSQL作為基于Web的數據庫平臺的安 發信站: BBS 水木清華站 (Thu Jan 20...
      發信人: xiaoning (我要飛), 信區: Linux
      標題: Apache+PHP3+PostgreSQL作為基于Web的數據庫平臺的安
      發信站: BBS 水木清華站 (Thu Jan 20 16:00:28 2000)

      以下將說明使用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/pg
      sql/
      目錄下保證有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.2
      55.0
      USERAUTH: 對用戶的認證方式,包括ident(RFC1413) 、trust(不進行認證) 、reject
      (拒絕符合條件的訪問) 、password [passwd_file](根據flat file口令文件進行認證)

      crypt(使用PostgreSQL的系統數據庫pg_shadow進行認證) 、kbr4/kbr5(Kerberos V4/V
      5認
      證) 。如在作為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作為PH
      P3
      文件的擴展名,則將.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數據庫系統的安裝
      已經完成 :-) 


      日韩精品一区二区三区高清