Linux系統自動安裝PHP+MYSQL+Apache+Perl教程
6 d( B; m2 y; X/ k' l
9 }' J# g0 V' S1 x LAMP (Linux + Apache + MySQL + PHP) 作為與Windows、IIS和.NET等專有和商業軟件進行競爭的一種開源軟件解決方案,以其特有的安全、快速、易用、易於開發以及大量的開源代碼,受到了人們越來越多的關注。特別是近幾年來發展迅速,已經成為Web 服務器的事實標準。 ) |6 h. l `8 H5 @2 e1 }1 n& M: |8 o
# W3 L- \. X- F) x: P 但是,使用過LAMP的人都知道,要熟練地使用它並不是一件很容易的事情,它配置起來比較繁瑣,升級困難,維護也不方便,需要一定的Linux作基礎。對於沒有Linux作經驗的用戶,很難正確地完成配置,這在一定程度上影響了LAMP的普及和推廣。
! B/ B9 L' u5 J; i; Q5 C. S
* U8 X: A- ~) ?7 D# r XAMPP它不僅可以幫助用戶快速搭建網站,而且安裝、啟動、配置也非常簡單,只需幾條命令就可完成。對於想使用LAMP建站的人來講,XAMPP無疑是很好的選擇。 9 ], ^ B' O i2 p" @8 Y' ?1 R
$ B* F9 u7 M6 ]3 W! s8 v
認識XAMPP
^: d4 z& L# U; \* i* H" E# ]9 m- m. A; z0 x
XAMPP(Apache+MySQL+PHP+PERL)是一個功能強大的建站集成軟件包。這個軟件包原來的名字是LAMPP,但是為了避免誤解,最新的幾個版本就改名為 XAMPP 了。它可以在Windows、Linux、Solaris三種作系統下安裝使用,支持多語言:英文、簡體中文、繁體中文、韓文、俄文、日文等。 3 h) D' f- O" K5 q$ T+ E
1 b" O. S) k4 s. F" Y+ t
XAMPP 1.5.1所集成的主要軟件包括: + k- `1 Z3 f2 Z- E& S. J
7 X; v; \3 z( `8 h: k
● Apache 2.2.0:一個歷史悠久並且功能十分強大的Web服務器。0 \! n. e6 r; P! w
● MySQL 5.0.18:PHP的首選數據庫,5.0版在確保其性能、可靠性及易用性的同時,還增加了視圖、存儲過程、觸發器及服務器端游標等企業數據庫的功能。
! @9 z; v3 a8 R% ]9 W2 Z● PHP 5.1.1 & 4.4.1:一種服務器端編程語言,其語言簡單、效率高、支持各種數據庫。再加上PHP的開源軟件在網上隨處可見,使得其學習、開發成本非常低,越來越多的網上應用使用PHP開發。 ' E7 p0 I# w' {( ]) Z% R8 H
● Perl 5.8.7:用於在Unix環境下編程,Perl即有高級語言(如C)的強大能力和靈活性,又有腳本描述語言的方便性。
?; H, ^. `' R7 B● ProFTPD 1.2.10:一個 FTP 服務器。% Q3 i; \: G1 I# n( o# S( t0 D
● phpMyAdmin 2.7.0-pl2:一個非常實用的通過Web瀏覽器對Mysql數據庫進行管理作的玩具,它是用PHP編寫的。 ; I+ |* b6 J* i. n
● OpenSSL 0.9.8a:提供了建立在普通的通信層基礎上的加密傳輸層,對 OpenSSL 的一些常見用法包括加密郵件客戶的身份驗證過程, 基於 Web 的交易如信用卡等等。
. n1 O: T( {. {0 q/ h( G+ p7 |( v● Expat:一種SAX分析器,協助PHP把XML文檔解析為HTML。! K0 c8 j- W6 o
● FreeTDS:可以在Linux下連接Windows數據庫的擴展庫。* ~. P& a8 s# w5 R p
● Gettext:一個玩具集,可以幫助 GNU 軟件包生成多語言的消息。* }% W2 Q4 e: E$ N7 a
● GD:提供了一系列用來處理圖片的API,使用GD庫可以處理圖片,或者生成圖片。在網站上GD庫通常用來生成縮略圖或者用來對圖片加水印或者對網站數據生成報表。
% ?; _2 X; Y& h; u' l* X● Gdbm:Unix系統dbm數據庫的 GNU 實現,gdbm適合存儲靜態的、索引化的數據結構,它在創建數據項時非常慢,但檢索數據項時非常快。
$ ?3 }2 K5 z; J0 @; T● IMAP C-Client:一個郵件編程 API 。
/ I% ^, e9 i. H9 k● Libpng:創立和作PNG 格式的圖形文件。- H, \. l# a( l3 _$ k
● Libjpeg:一個可以作JPEG 格式文件的庫。" G8 Q+ `5 z' `5 @; W; d8 C& T
● Libxml:一個 XML C 解析器和 GNOME 玩具包。* Q9 {$ @" f& |! L
● mod_perl:在 Apache 中嵌入了一個永久的 Perl 解釋器。
5 Z2 H. v! W6 Q9 ]& V8 n9 ~● mcrypt:一個加密程序。 7 W) L8 o, \5 r* o5 i) u
● Ming:一個 Flash (SWF) 輸出庫。- f9 v6 P6 L* ~6 C2 p6 G
● Ncurses:字符終端處理庫。 S9 A- w5 G5 r D7 n
● Salbotron:一個 XML 玩具包。 * L* p. G! _! N9 d6 e4 p
● SQLite:一種更小更強大的數據庫,它是純C語言的代碼,可以非常輕鬆地和PHP相結合。在效率上完全超越微軟的Access,即使是MySQL的速度也不能和它相比。. Q' ]" X8 x8 W
● Zlib:一個壓縮庫。 * J. ~; Z. s( p: v6 g. z
/ F& n# n# t# F' I m+ e; J安裝與啟動
! Y8 H8 C* w% P7 X/ }: q9 B& ]$ P* ?' j- E8 ^
將下載的安裝包XAMPP-Linux-1.5.1.tar.gz 文件上傳到Linux服務器,以系統管理員用戶登錄,通過下面的命令將其安裝到/opt,安裝後的目錄為/opt/lampp。
; V1 c. i9 ]0 h. L$ p: M5 M
+ k+ W2 z5 U, E9 q. A6 \tar xvfz XAMPP-Linux-1.5.1.tar.gz -C /opt
" H; O+ R+ ^3 r6 C# L' v1 _4 B" X, S" H1 ^: g
安裝完畢後,輸入下面的命令就可以啟動XAMPP了: 3 J5 k. P+ \0 o3 ~: p+ q) H1 C6 J8 s
E7 m% S+ e! {4 u# @) H
/opt/lampp/lampp start 4 C: p7 l7 P2 C8 n: \$ A* j
, `# p- d0 ?8 V# R# m) k
這時你會看到如下信息: 7 F7 H/ x( E* i9 w
7 l5 c# j& F- [% c/ w
Starting XAMPP for Linux 1.5.1... , ]% ~2 u5 I3 ]
: s3 X2 x5 {* w6 U
XAMPP: Starting Apache with SSL (and PHP5)... % h# z Y9 }0 G
8 o1 O3 v% d7 V. I$ g, @
XAMPP: Starting MySQL...
/ Z+ {" ~( ^1 E8 j9 Z" U
( w6 x: Y2 t! I7 |% YXAMPP: Starting ProFTPD... 6 \( X) M n" J2 }& L8 H6 q( `
' R3 A* M- G/ h3 h' B5 X$ b, {
XAMPP for Linux started. 4 I8 o- g4 U; \% k
1 A6 V. k/ A" N2 {$ i! e" R- F* G這裡需要注意:XAMPP從 1.4.7版開始支持PHP 5與PHP 4可選啟動,便於用戶根據PHP程序的需要做出選擇。 [3 [0 G. k' b! }
/ U- t2 r6 ~8 Y: U切換到php4的命令為: ( L3 e* x7 a: t9 b
+ P( r1 S' I- i
/opt/lampp/lampp php4
' {; L. a% `' [" e* \
6 v$ ~: P z( U7 ] Y/ h! A9 i切換到php5的命令為:
6 |, H& ?* g, |# }# Z1 T. V4 E1 v9 @
- E4 d* b7 z, F- b6 v1 d/opt/lampp/lampp php5 u: ^3 m g8 ^4 g" d
$ l0 Q, ?$ Y2 A: ]1 e/ Z( q: H
如果忘記了當前正在使用的PHP版本,可以通過下面的命令查看:
. q% P9 @) r. P& d" ?3 s% v0 w+ V6 l2 U6 O
/opt/lampp/lampp phpstatus ^) T: X" O' \2 ]9 }
; G* O# d3 G- {# q" Q其他啟動參數如下:
% {' I. Q3 z& [9 X G. Z. ]. i, H3 ]
restart 重啟XAMPP ) p! s, j) i* ^# F% {, k% U+ A
# a3 i* U5 S H0 k `3 zstartapache 只啟動Apache % j* p T) Q. F
$ s1 H% D! b4 t5 s3 l7 J
startssl 啟動Apache 的SSL 支持
. P& L2 i) P" i1 N& d Q
, A& G* G; |0 O# i4 m4 w5 P! {5 [startmysql 啟動MySQL
* o! v# N. J' K0 W# _
6 ~5 s8 {& ~4 C) U& fstartftp 啟動ProFTPD / b3 H. J) w, t7 G T
' T# ~$ W( X) Vstopapache 停止Apache.
; l+ _ E9 t4 A
- X* ^; C+ T* \$ O8 R9 q/ v- Q/ estopssl 停止Apache 的SSL 支持 , K! R( D6 c0 N8 q1 t- [& x
. X! J( S- i6 M8 [" L+ o% [3 g8 Rstopmysql 停止 MySQL數據庫 ( O+ ^6 O6 }0 b! {* a$ Z. n; B
. R P. P0 K. P. h% n) gstopftp 停止ProFTPD 1 J0 A0 i* B% |0 e1 p. A
5 h; r3 X1 N2 ^( A$ M
5 k0 X- {" y7 Z% |測試使用 1 e3 z) R6 R, w0 X) l) c
8 t. Y# n0 P( B; m4 g( L* H經過上述簡單的作,就完成了安裝與啟動,這讓人感覺有點難以置信,我們可以通過瀏覽器訪問服務器來測試一下。& J5 L8 F: j- \& @3 L- f! n) {3 J
' ~4 \& Y1 k% |" {' S3 Y: o; \0 S 7 X5 D" y! c( U u/ I
圖1 XAMPP的開始界面
* e, | J5 Y: u2 V
; h4 l5 C" e6 Z
( v& Y% i# i8 k1 n+ ?圖1就是XAMPP的開始界面,通過它可以查看已安裝軟件包的運行狀態(見圖2)、安全性(見圖3),以及一些演示。
: J3 v6 E! U) d& \ - L4 J6 Q. K& P4 W) o* M( T/ h4 K
圖2 查看軟件包的運行狀態8 F- C9 x& F* M
7 {# t' a$ P% [5 v& c. X

: E: ^0 c' B8 R( w圖3 查看軟件包的安全性能8 @: Y' p, V9 u( I& F R+ E
# B% G0 B( o& }7 O/ L* H
另外它還提供了一些管理玩具的鏈接及多語言的選擇等,在XAMPP 1.5.1中集成了三個管理玩具,分別為:
! n' r" v1 x; J* ]; H5 R2 n C5 G
, S) _4 v* i. I. {1.phpMyAdmin
. W/ T C' P* P1 u- Y" I
& T) F5 f) W" O: p5 _phpMyAdmin是一個非常實用的Mysql數據庫管理作玩具,它是用PHP編寫的,用戶可以通過Web瀏覽器新建刪除數據庫,增加、刪除、修改表結構和表數據,還可以通過表單形式提交查詢語句,返回數據結果。(見圖4)
6 i& K+ x5 p" i4 a, {$ `
" s. s& w- k5 a: P" |5 V圖4 phpMyAdmin界面) M) E9 ~8 Y7 V, u# U A4 P" i- K5 e8 T5 ~
9 H0 Z4 {# \3 f7 o h
2.phpSQLiteAdmin# m/ k9 s. a# h; z! |- r
SQLite的小巧、高效以及與PHP的完美結合,使其獲得了越來越多人的青睞。XAMPP不僅集成了SQLite數據庫,而且也集成了一個通過Web瀏覽器對其進行管理的玩具——phpSQLiteAdmin。(見圖5)- B* S. N# Y0 S5 [) w0 [2 l

; n0 I4 I0 f2 K( I圖5 phpSQLiteAdmin界面
0 g4 {1 x' N2 V4 D, L! |+ p0 V( q1 l
9 |4 x3 a! s1 h: p/ x3.Webalizer 5 d( N+ L# n6 v
Webalizer是一個高效的、免費的Web服務器日誌分析程序。其分析結果以HTML文件格式保存,從而可以很方便地通過Web服務器進行瀏覽。Internet上的很多站點都使用Webalizer進行Web服務器日誌分析。(見圖6)
1 q3 U. D3 z4 @" u" i$ e; e! y; R ; s1 m# T) e+ P) N
圖6 Webalizer界面1 A1 ?+ k- D! t X* t/ Z; N
; Q/ x% A4 F* n2 E# V, ]4 A) f7 h
提高系統安全 N/ a7 f$ U( a, j: H
# B( _0 |0 q% mXAMPP默認安裝之後是很不安全的,普通用戶不用任何密碼就可以訪問其Web管理頁面,修改數據庫。
; t2 m! \4 h5 w& o% W( ^下面是XAMPP安裝後的一些軟件的默認用戶名及密碼:MySQL的超級用戶是root,無密碼;允許通過網絡訪問MySQL數據庫;ProFTPD 用戶為nobody,密碼為lampp;允許通過網絡訪問XAMPP管理頁面,用戶是lampp,無密碼。
, @9 K' `8 F# e7 i C0 F7 m
1 a: v1 n8 v# ~' v9 B, T很顯然,這樣的安全性是達不到發佈網站的要求的,因此XMAPP還提供了一條用戶命令,可以讓用戶一次性完成對所用軟件的密碼設置,命令如下:
+ c3 g! j6 c* p. d q! ?
* I. Y& c A- ]/opt/lampp/lampp security
5 L6 K: z1 l9 X$ o9 a7 N- Y* F7 X3 ]0 E2 D
這時系統會陸續給出現有的不安全的地方,用戶可以選擇是否修復這個問題,並設置相應的密碼,提示信息如下:
/ v7 }+ g& O$ Y D# [
- r8 j# s& M# BXAMPP: Quick security check...
; r% q3 @8 c3 c& n+ N% p$ T5 iXAMPP: Your XAMPP pages are NOT secured by a password.
) v/ g' N; P$ s/ v, g) ^2 N) P* CXAMPP: Do you want to set a password? [yes]
; k; G; h' e# v- ?* E* GXAMPP: Password: 7 k$ F7 H! V% i" F4 S
XAMPP: Password (again):
: U. E/ |2 c7 T. S6 WXAMPP: Password protection active. Please use 'lampp' as user name! 9 A! P: N- z* N& O
XAMPP: MySQL is accessable via network.
6 f/ b( n1 Q2 q4 k% m; z! EXAMPP: Normaly that's not recommended. Do you want me to turn it off? [yes]
# y: x' p. E" s+ ]- DXAMPP: Turned off.
! l6 y2 `% z5 `) cXAMPP: The MySQL/phpMyAdmin user pma has no password set!!! 8 }* \, Z% i8 V
XAMPP: Do you want to set a password? [yes] $ d4 T1 T [& U* z
XAMPP: Password: . `1 N$ j( g+ Y8 |
XAMPP: Password (again):
7 S# C8 L+ \; ~7 o9 n% M% V& B8 O- mXAMPP: MySQL has no root passwort set!!! ! s' w5 r8 e3 U: O5 ~- m
XAMPP: Do you want to set a password? [yes]
% r( m% L- O) o; A" I0 HXAMPP: Write the password somewhere down to make sure you won't forget it!!!
4 ?1 F2 E8 v+ W, Y3 x! ~XAMPP: Password: 4 s% U# c, U7 L+ k& |/ N+ N
XAMPP: Password (again):
9 v/ h: j U2 e+ f! iXAMPP: Setting new MySQL root password.
( T8 a; M7 L4 ZXAMPP: Change phpMyAdmin's authentication method.
4 ^ F- j" l" L9 G: a. TXAMPP: The FTP password is still set to 'lampp'. 0 C0 ]6 g r: `& M( K7 o
XAMPP: Do you want to change the password? [yes]
( z, R7 x2 B2 u; F' W5 uXAMPP: Password: 8 Q5 M. ~' I, _
XAMPP: Password (again): - u$ v5 q/ H4 {6 T+ `
XAMPP: Reload ProFTPD...
. k* L3 S, X) L7 JXAMPP: Done.
; v( k2 J- K4 ~5 X0 j$ B( j3 `8 p# G9 H) a7 ]: h" C, R3 H
以上粗體字部分是需要加強安全性的各部分,其含義如下: ) W$ R6 X$ D) z
* Q- ~) {/ i" `1 l; s' _8 @# Z
「Your XAMPP pages are NOT secured by a password.」指需要為XAMPP頁面設置一個密碼;「MySQL is accessable via network.」指設置是否允許通過網絡訪問MySQL數據庫,為了網站數據的安全需要將其設為no;「MySQL has no root passwort set!!!」指MySQL的超級用戶root沒有設置密碼;「The FTP password is still set to 'lampp'.」指FTP 當前密碼為lampp。
9 p# {" { d& s0 B. J
/ Y* m2 y, B$ B0 K$ w數據的備份、恢復
- c& ?2 e- \ O f( N# m& Z' ~9 m7 p# {# M; a. ]! L+ ~
1.備份
. q5 v; g6 M. [% x% M2 O$ D( J5 m. q" H
做為系統安全保障的一部分,及時、全面的備份是一項必不可少的工作。數據庫以及各軟件的配置文件、日誌等,經常會使管理員暈頭轉向,一不小心就會漏掉一項。而XAMPP則讓這一工作變得非常簡單,輸入下面的命令就可一步完成:
7 r8 v* _- x5 B6 |0 t* u; f5 _
- _- w t) u% ^$ S Y4 \3 y3 d$ f# T/opt/lampp/lampp backup ****
# E2 Y. V' L3 V# \/ k" M7 g
- N( [ H/ o1 _# }2 U命令後面跟著的是MySQL 的 root 用戶的密碼。命令執行後會看到下面的內容: " C( R0 G* I! J" z% a/ w
- |: I2 Z( ^- | P7 R S
Backing up databases... # H7 V% g' c) Z$ L5 ?0 Q0 u
' R) A3 z! B& v, G4 hBacking up configuration, log and htdocs files... 4 {, b0 c" N2 O& s1 [* h. o4 Z
4 M. o' s! e8 S; J @" G/ g& YCalculating checksums... $ U& |" W e) H2 W# O0 L2 q
" H6 K B2 ]% \: H( K4 ^Building final backup file... # o" |) W6 K/ q& W4 o- }# N
, p6 k' l8 J9 w& z6 l1 vBackup finished.
0 r3 Z& h4 s! |. ^4 Z& p$ e7 N/ F+ f; m; f
Take care of /opt/lampp/backup/xampp-backup-19-02-06.sh , T& {4 @4 ?( ^8 D& d# e
: ~: b7 X3 k: h, g; O/ d, Q
2.恢復
- t# t$ m3 J% u* [ S! K/ N5 l$ g3 ^$ [
恢復以前的備份,只需以 root 用戶身份運行下面的命令: # A l' s W# ?7 n( z
# s4 v# k8 u2 S& f, A% Y2 m7 m, o# sh /opt/lampp/backup/xampp-backup-19-02-06.sh **** ( d: b8 F' @2 P& S' E& |* T
" n" x. |" N* A) P' F4 h命令後面跟著的是MySQL 的 root 用戶的密碼,這時用戶將看到如下信息: ( f* [! \2 p- @" l9 f9 E3 j
. P% y! T0 e d. Y8 r$ wChecking integrity of files...
N7 O4 \( j# p! L9 a- _ j# Z
5 y( v/ E3 a8 gRestoring configuration, log and htdocs files...
V" G8 ^8 c5 _4 G$ {
. {. s( X4 n: _: g2 L8 R. R8 _Checking versions...
, {$ O: G6 T6 [1 \, V4 @: t4 m. L, \, {: d% v
Installed: XAMPP 1.5.1 \" d/ y( F' {/ m6 `
* _. H2 v2 N* U& E0 @Backup from: XAMPP 1.5.1
j' S/ y# Q3 Z/ H6 @3 r! q2 r G1 H' S- f6 N% J7 _4 D
Restoring MySQL databases...
( T- O( T. w6 `: Q. ]4 v
) K0 @- U6 b' O1 XRestoring MySQL user databases...
6 O1 [! W( I; J! d) w+ P8 E5 R9 }. K2 W4 g2 g2 j2 q
Backup complete. Have fun!
- l6 P/ u/ k) ]) u8 o% A2 z4 Q/ L n f# P
You may need to restart XAMPP to complete the restore. ' |8 r& i+ b( C* k% `6 D$ L
% k+ [7 V! @3 t恢復完後,需要重新啟動XAMPP,才能使恢復的數據可用。
1 ?. Z# f5 p8 R5 X
a, K$ }: v; h& }
# ?5 F; y5 C0 G/ H& h/ q$ b7 @, B小貼士
# h8 }% a2 H" E# ], v
* |: G6 h! Q. D* u) q) W: ?XAMPP + G; D+ w, G- k6 t* q
主頁:http://www.apachefriends.org/en/
8 E! ]2 T* p* N, k" c% o最新版本:1.5.1 4 v7 H/ h+ g F5 C1 {" w
軟件大小:45 MB 7 N1 B) D- l9 W* k5 U( q% P
作系統:Windows、Linux、Solaris |