萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> Linux中的字型(FONTS)設定

Linux中的字型(FONTS)設定

class="21873"> 以下將說明使用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
# t
copyright © 萬盛學電腦網 all rights reserved