[轉(zhuǎn)]Apache+PHP3+PostgreSQL作為基于Web的數(shù)據(jù)庫平臺的安裝
Jun 21, 2016 am 09:13 AMapache|web|數(shù)據(jù)|數(shù)據(jù)庫
發(fā)信人: xiaoning (我要飛), 信區(qū): Linux
標??題: Apache+PHP3+PostgreSQL作為基于Web的數(shù)據(jù)庫平臺的安
發(fā)信站: BBS 水木清華站 (Thu Jan 20 16:00:28 2000)
??
以下將說明使用Apache+PHP3+PostgreSQL作為基于Web的數(shù)據(jù)庫平臺的安裝和配置方法
。
關(guān)于Apache、PHP3和PostgreSQL的更多內(nèi)容可以從軟件的附帶文檔、Linux的HOWTO文件
??
以及以下站點處找到:
Apache: http://www.apache.org
PHP3: http://www.php.net
PostgreSQL: http://www.postgresql.org
1. PostgreSQL的安裝和設(shè)置
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(通常這兩種工具都已經(jīng)安裝了) 。
PostgreSQL的默認安裝位置為/usr/local/pgsql/,系統(tǒng)文件約需3-10M空間。附帶的測
試
程序在運行時需要約20M空間,所以安裝時應(yīng)注意預留足夠的空間,建議/usr/local/pg
sql/
目錄下保證有50M以上空間。另外展開和編譯源程序約需30-60M空間。
對多用戶的應(yīng)用環(huán)境,建議設(shè)置一個專用用戶名,例如 postgres :
$ su 首先登錄為root
# /usr/sbin/adduser postgres
另外PostgreSQL使用了System V的共享內(nèi)存機制。FreeBSD默認狀態(tài)不支持該機制。如使
用
中的內(nèi)核的設(shè)置文件中無以下項目則需追加后重新編譯內(nèi)核:
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 [假設(shè)下載文件保存在/tmp目錄下]
完成后應(yīng)生成一個postgresql-v6.4目錄,下面開始編譯:
$ cd /usr/local/src/pgsql/postgresql-v6.4/src
$ ./configure --with-mb=EUC_CN
其中,--with-mb=指定系統(tǒng)默認字符編碼。除GB碼(EUC_CN) 外,還可以指定為日語
(EUC_JP)、韓語(EUC_KR) 、臺灣(EUC_TW) 、UNICODE、MULE_INTERNAL、LATIN1等。
注意,如使用6.3.2版需用--with-template=... 指定操作系統(tǒng),具體內(nèi)容見源程序附帶
的說明文件。
configure如順利完成,將生成GNUmakefile,Makefile.global和Makefile.port等文件。
??
$ gmake all
在編譯結(jié)束后將顯示以下信息:
All of PostgreSQL is successfully made. Ready to install.
安裝:
$ gmake install
正常完成后,PostgreSQl的執(zhí)行文件和庫文件等將被安裝到/usr/local/pgsql目錄下。
??
安裝附帶文檔:
$ gmake install-man
$ cd /usr/local/src/postgresql-v6.4/doc
$ make install
至此PostgreSQL的編譯安裝已經(jīng)完成,下面開始初期設(shè)置。
1.4 初期設(shè)置
設(shè)置環(huán)境變量:
如使用的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"
然后執(zhí)行 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"
然后執(zhí)行 source ~/.cshrc
以上環(huán)境變量是所有使用數(shù)據(jù)庫的用戶都需要設(shè)置的。
數(shù)據(jù)庫目錄的初始化:
$ initdb
可以使用的參數(shù):
--pgdata=/pgsql/db 指定數(shù)據(jù)庫目錄,默認使用環(huán)境變量PGDATA指定的位置
--pgencoding=EUC_CN 指定數(shù)據(jù)庫的字符編碼,默認使用configure時指定的編碼。
需要注意的是執(zhí)行initdb的用戶將擁有所建數(shù)據(jù)庫目錄的管理權(quán)。
使用以下命令啟動PostgreSQL:
$ postmaster -S
運行測試程序:
$ cd test/regression
$ gmake all runtest
如測試程序能正常運行則說明PostgreSQL能正常運行。
為了讓 PostgreSQL在系統(tǒng)啟動時能自動啟動,需作以下變更:
首先以root登錄
$ su
Linux: 在/etc/rc.d/rc.local中追加以下內(nèi)容:
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的文件,內(nèi)容為:
#! /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文件的權(quán)限:
# chmod 755 pgsql.sh
現(xiàn)在PostgreSQL的安裝和設(shè)定基本已經(jīng)完成了,但是目前為止能使用數(shù)據(jù)庫的用戶只有
postgres。
為使其他用戶可以使用數(shù)據(jù)庫,需要登錄數(shù)據(jù)庫用戶和生成用戶數(shù)據(jù)。
例如通過Web服務(wù)器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可以同時管理多個數(shù)據(jù)庫(但數(shù)據(jù)庫之間不能進行join等操作)。新建數(shù)據(jù)庫
:
$ createdb 數(shù)據(jù)庫名
新建的數(shù)據(jù)庫將被放在/usr/local/pgsql/data/base的同名目錄下(環(huán)境變量PGDATA指定
??
路徑的base目錄下)。如省略數(shù)據(jù)庫名參數(shù),將自動以用戶名作為數(shù)據(jù)庫名。
例如 名為db1的數(shù)據(jù)庫將被保存在/usr/local/pgsql/data/base/db1目錄下。
也可使用initlocation命令指定其他位置:
$ initlocation /pgsql/data
$ export PGDATA2=/pgsql/data
$ createdb -D PGDATA2 db2
則數(shù)據(jù)庫db2將被保存在/pgsql/data目錄下。另外PostgreSQL 6.4版可以在建立數(shù)據(jù)庫
時
指定文字編碼:
createdb -E “字符編碼” “字符編碼” 參見
configure、initdb。
刪除數(shù)據(jù)庫:destroydb 數(shù)據(jù)庫名
PostgreSQL最基本的數(shù)據(jù)庫管理工具是pgsql. 基本使用方法:pgsql 數(shù)據(jù)庫名
1.5 安全設(shè)置:
PostgreSQL提供了基于主機的認證方式host based authentication(HBA) 、基于口令的
??
用戶身份認證和用戶操作權(quán)限設(shè)置等安全機制。
1.5.1 HBA方式和基于口令的用戶身份認證方式
HBA方式的設(shè)置文件為pg_hba.conf。其格式為:
host DBNAME IP_ADDRESS ADDRESS_MASK USRAUTH [AUTH_ARGUMENT]
host: 固定標志,不能修改
DBNAME: 數(shù)據(jù)庫名,all代表所有數(shù)據(jù)庫
IP_ADDRESS,ADDRESS_MASK:指定IP地址,也可指定子網(wǎng),如192.168.10.0/255.255.2
55.0
USERAUTH: 對用戶的認證方式,包括ident(RFC1413) 、trust(不進行認證) 、reject
(拒絕符合條件的訪問) 、password [passwd_file](根據(jù)flat file口令文件進行認證)
、
crypt(使用PostgreSQL的系統(tǒng)數(shù)據(jù)庫pg_shadow進行認證) 、kbr4/kbr5(Kerberos V4/V
5認
證) 。如在作為Web 數(shù)據(jù)庫使用, 使用passwd口令文件進行本地登錄時可如下設(shè)置:
Host all 127.0.0.1 255.255.255.255 password passwd
passwd文件默認位置為/usr/local/pgsql/data, 有數(shù)據(jù)庫管理權(quán)限的用戶可以使用
pg_passwd命令管理該文件(注意:flat file口令認證方式采用明文傳送口令,故要從網(wǎng)
絡(luò)
上其他主機登錄,建議使用crypt認證方式) 。
1.5.2 用戶操作權(quán)限設(shè)置
使用SQL命令grant/revoke可以設(shè)置用戶/用戶組可否使用select/insert/update/rule命
令。
根據(jù)SQL標準,一個數(shù)據(jù)表文件(table) 在剛建立時只有建立該表文件的用戶有權(quán)訪問。
??
要分配給用戶訪問權(quán)限,可以使用grant命令:
grant on to
權(quán)限種類:all,select,insert,update,delete,rule
table名:被設(shè)置用戶訪問權(quán)限的表文件
用戶/組:public(所有用戶) 或用戶名/組名
revoke命令作用與grant命令相反,用法如下:
revoke on from
table已設(shè)置的用戶權(quán)限可以使用pgsql的\z 命令查看。
2. Apache+PHP3的安裝及設(shè)置
2.1 源程序
Apache和PHP3的最新版本源程序可以從http://www.apache.org/和http://www.php.net
/找到。
以下以Apache 1.3.6和PHP3 3.0.5 為例。
2.2 編譯
假設(shè)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:
設(shè)置環(huán)境變量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 修改設(shè)置文件
# cd /usr/local/src/php-3.0.5
# cp php3.ini-dist /usr/local/lib/php3.ini
將/usr/local/apache/etc/srm.conf中以下兩行內(nèi)容前的#號刪除,如果以.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
在本地機上啟動網(wǎng)絡(luò)瀏覽器,地址欄輸入http://localhost/(或在其他計算機上的瀏覽
器
地址欄輸入Apache服務(wù)器地址),如能顯示出Apache的開始畫面則說明Apache已經(jīng)
安裝成功。下面測試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文件的運行結(jié)果是否正常。如日期函數(shù)能顯示正確結(jié)果,則說明PHP3模塊工作
正常。
至此,基于Apache Web服務(wù)器和服務(wù)器端腳本語言PHP3的PostgreSQL數(shù)據(jù)庫系統(tǒng)的安裝
已經(jīng)完成 :-)?

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Langkah -langkah untuk menggunakan laman web Joomla di PHPStudy termasuk: 1) Konfigurasi PHPStudy, pastikan perkhidmatan Apache dan MySQL dijalankan dan periksa keserasian versi PHP; 2) Muat turun dan Decompress Laman Web PHPStudy dari laman web rasmi Joomla ke direktori root phpstudy, dan kemudian lengkapkan pemasangan melalui penyemak imbas mengikut wizard pemasangan; 3) Buat konfigurasi asas, seperti menetapkan nama laman web dan menambah kandungan.

Kod PHP boleh dilaksanakan dengan banyak cara: 1. Gunakan baris arahan untuk terus memasukkan "nama fail php" untuk melaksanakan skrip; 2. Masukkan fail ke dalam direktori root dokumen dan mengaksesnya melalui penyemak imbas melalui pelayan web; 3. Jalankannya dalam IDE dan gunakan alat debugging terbina dalam; 4. Gunakan kotak pasir PHP dalam talian atau platform pelaksanaan kod untuk ujian.

Punca bahawa prestasi sistem tidak pulih selepas menyahpasang perkhidmatan APACHE mungkin termasuk penghunian sumber oleh perkhidmatan lain, mesej ralat dalam fail log, penggunaan sumber oleh proses yang tidak normal, masalah sambungan rangkaian, dan residu sistem fail. Pertama, periksa sama ada terdapat perkhidmatan atau proses lain sebelum menyahpasang dengan Apache; Kedua, perhatikan fail log sistem operasi dan cari mesej ralat yang mungkin berlaku semasa proses pemotongan; kedua, periksa penggunaan memori sistem dan beban CPU, dan cari proses yang tidak normal; Kemudian, gunakan arahan NetStat atau SS untuk melihat status sambungan rangkaian untuk memastikan tiada pelabuhan diduduki oleh perkhidmatan lain; Akhirnya, bersihkan fail konfigurasi yang tersisa dan fail log selepas pemasangan untuk mengelakkan menduduki ruang cakera.

Mengemas kini versi Tomcat dalam sistem Debian secara amnya termasuk proses berikut: Sebelum melakukan operasi kemas kini, pastikan anda membuat sandaran lengkap persekitaran Tomcat yang sedia ada. Ini meliputi folder /OPT /TOMCAT dan dokumen konfigurasi yang berkaitan, seperti server.xml, context.xml, dan web.xml. Tugas sandaran boleh diselesaikan melalui arahan berikut: Sudocp-R/Opt/Tomcat/Opt/Tomcat_backup Dapatkan versi baru Tomcat pergi ke laman web rasmi Apachetomcat untuk memuat turun versi terkini. Menurut sistem Debian anda

Perintah untuk memulakan perkhidmatan Apache pada macOS adalah sudoapachectlstart, dan fail konfigurasi terletak di/etc/apache2/. Langkah -langkah utama termasuk: 1. Edit fail httpd.conf, ubah suai port mendengar seperti Listen8080; 2. Laraskan laluan dokumen ke direktori peribadi seperti/pengguna/anda_USERNAME/tapak, dan mengemas kini tetapan kebenaran yang sepadan; 3. Gunakan perintah sudoapachectlgraceful untuk memulakan semula Apache untuk memastikan bahawa konfigurasi berkuatkuasa; 4. Dayakan modul mod_deflate untuk memampatkan data untuk meningkatkan kelajuan pemuatan halaman.

Sebab -sebab kegagalan penghapusan fail semasa Penghapusan Apache termasuk isu kebenaran fail, mengunci fail, dan proses berjalan. Penyelesaian termasuk: 1. Hentikan Perkhidmatan Apache: SudosystemCtLStOppapache2; 2. Secara manual memadam direktori Apache: SUDORM-RF/ETC/APACHE2/USR/SBIN/APACHE2; 3. Gunakan LSOF untuk mencari dan menamatkan proses mengunci fail: Sudolsof | Grepapache2, dan kemudian Sudokill-9; 4. Cuba hapus fail lagi.

Mengkonfigurasi Apache untuk menyambung ke pangkalan data MySQL memerlukan langkah -langkah berikut: 1. Pastikan Apache dan MySQL dipasang; 2. Mengkonfigurasi Apache untuk menyokong PHP, dengan menambah arahan LoadModule dan AddHandler dalam httpd.conf atau apache2.conf; 3. Mengkonfigurasi PHP untuk menyambung ke MySQL, membolehkan lanjutan MySQLI dalam php.ini; 4. Buat dan uji fail PHP yang disambungkan. Melalui langkah -langkah ini, hubungan antara Apache dan MySQL dapat dilaksanakan dengan jayanya.

Terdapat banyak kaedah dan alat untuk memantau kelompok Hadoop pada sistem Debian. Berikut adalah beberapa alat pemantauan yang biasa digunakan dan kaedah penggunaannya: alat pemantauan Hadoop sendiri Hadoopadminui: mengakses antara muka Hadoopadminui melalui penyemak imbas untuk memahami status kluster dan penggunaan sumber secara intuitif. HadoopresourceManager: Akses WebUI ResourceManager (biasanya http: // Resourcemanager-IP: 8088) untuk memantau penggunaan sumber kluster dan status pekerjaan. Hadoop
