安装步骤:
4 B3 h$ B. N. L3 e# m+ F; o& P& n8 M# r% t! C9 }% u
1.mysql
9 ^) Z7 Q1 A6 A3 A8 `* b4 t
% ` N) J: i, X/ |( _- ?9 r
在如下页面
下载mysql的forlinuxrpm包
. i& K* l/ ^; }+ l http://www.mysql.com/downloads/down...3.52-1.i386.rpm
2 h) b8 c, g/ Q, v
http://www.mysql.com/downloads/down...3.52-1.i386.rpm
# p" b0 `( ?8 ~$ w
) ]4 W! R- S% F- w9 }& L: E2 s S I 存至/home/tmp目录
7 R5 j& S; R& q; J) G2 y# ?: T
: X6 I' [# N5 i7 F$ `, I 命令列表:
! ^" C" ~( j% R5 N: A
0 @8 R" L5 v$ A1 @0 \6 y/ B
$ G$ Q$ ~- k/ d. _% ~% Ycd/home/tmp
( ^+ O8 q; L7 m8 h" ?: nrpm-ivhMy
SQL-3.23.52-1.i386.rpm#安装mysqlserver
# P4 n* A( M8 m8 J
rpm-ivhMySQL-client-3.23.52-1.i386.rpm#安装mysqlclient
- J( U+ j* J/ v2 M" i; L
/usr/mysql/safe_mysqld%26#启动mysqlserver
, Z0 s- \. T5 {4 X- ~* E! U
mysql#运行mysql客户端,并开放root用户的远程访问权限。以便调试
' ~: ^1 {# q# N* r- a1 i" @+ b) g
usemysql
9 M* a# t6 I5 Kupdateusersethost='%'whereuser='root'andhost%26lt;%26gt;'localhost';
" f$ y" M4 c/ g8 q5 w+ B
flushprivileges;
# V* y, ^2 h( ^' y1 m1 A: i8 i
quit
8 P' R0 n& F+ j# n/ j" b# d
: v, g1 o, q; a; o9 o, D
至此mysql安装完成
0 t" f4 W! k9 n) D6 D/ e/ M0 i( V
( ?6 q! R3 D% k% X% Q v6 J6 `我修改的部分my.cnf配置(不运行一些没必要的东西,记录
程序运行的慢查询)
+ |4 z* A$ i) O* H0 q
以下是代码:
' K. b' M5 P" S( u* d
skip-locking
. m* d! `& c8 R$ \8 s% ?& J0 {' b
skip-networking
7 h/ c& i1 {) Q) F9 mskip-bdb
9 U( i* |! m6 d6 F: U2 R2 n+ l9 ^skip-innodb
9 s# C9 E4 r1 a$ Y% ~
set-variable=log-slow-queries=/var/lib/mysql/slow_queries
8 @1 d, Q) Q. y/ `1 n' r) a
4 q4 i% ~1 w5 o4 p* G( T$ J0 R
5 B/ P6 n. @ T r 2.apache
6 f% h; e3 |2 r0 _0 W1 w* D
) ?$ B: u! n# H7 c1 z$ J/ o6 z 在如下页面下载apache的forlinux的源码包
3 z9 u; w" s- E8 [: W3 ]+ ?
! j, N: | s' f E http://www.apache.org/dist/httpd/apache_1.3.28.tar.gz
3 h6 a. O |6 c; q5 E$ v3 O) J: D' {; F
存至/home/tmp目录
( U& x. S( _( t i
- ?& b, c7 L4 M# W f 命令列表:
- P; s! t! I8 D, d0 |: ~% m
* U9 r2 i( [% \5 ?8 u. w" e x+ E: w+ U& e3 Z# Z7 D
cd/home/tmp
+ F3 F" p t" ctar-zxvfapache_1.3.28.tar.gz
, S( v: G1 L0 G: h' y5 G8 C
mvapache_1.3.28.tar.gzapache
' }3 s. ^( Z( t% I$ J
cdapache
6 ]+ k. S4 l' T./configure--prefix=/usr/local/apache--enable-module=so
( r2 l9 r7 H$ Xmake
% H$ n c; s* j0 T* _) w0 smakeinstall
( w; P4 m+ j6 X* \! j4 K6 n5 y3 a
安装apache至/usr/local/apache并配置apache支持dso方式
! S1 ^9 w: I1 Z5 ]+ K; a
) f. i- d) |. j- ?2 v, R最大连接数设置
: i9 ] t, F( s; d( H; ~
. O) z) P/ ?4 ]4 a j% _在httpd.conf中设置:
2 ~" ^) \+ C; u7 }8 kMaxClientsn
! @) A* O7 c; l$ _$ I7 \ G
n是整数,表示最大连接数,取值范围在1和256之间,如果要让apache支持更多的连接数,那么需要修改源码中的httpd.h文件,把定义的HARD_SERVER_LIMIT值改大然后再编译。
$ K7 V, Z* h1 E- J! O2 S& P
3 S K3 \" z% w8 D 3.php
9 z. x$ V9 O* c5 @. ?3 k5 f6 @$ R% R8 x( f/ d1 ]6 [% f ]) Y7 f
在如下页面下载php的forlinux的源码包
4 c" {4 ~" ]1 g0 z9 x/ c; D& z7 a) Y& B- s6 k% D, B) e9 B
http://www.php.net/get_download.php?df=php-4.2.3.tar.gz
% W) k3 d$ t& [7 k6 S* {- T# E
+ a" a2 \/ M/ [6 e i Y
存至/home/tmp目录
" Q8 N6 [; u& K
1 f7 N9 n" }. `( L 命令列表:
6 X! |+ Q" {3 G: O2 x6 f* p6 a. U; q8 A, N* _
[- t; Q$ _, [" k- ncd/home/tmp
4 X: X' z+ ]3 t" h8 ^3 h" B" htar-zxvfphp-4.2.3.tar.gz
+ w$ v4 r3 G! M9 S/ smvphp-4.2.3.tar.gzphp
/ V. ~* m. D2 F7 C0 K2 @cdphp
& ]% X& \+ B6 \" l$ R: U./configure--prefix=/usr/local/php--with-apxs=/usr/local/apache/bin/apxs--with-config-file-path=/etc--with-zlib--with-mysql--with-xml
) Z! I3 `3 `2 a0 Y' Q$ H8 A/ ^# ^# m7 hmake
: w: i z8 d( i5 r1 h& n/ A9 v
makeinstall
/ j& {' e+ f6 Q) n2 Y% jcpphp.ini-dist/usr/local/lib/php.ini
6 y& R1 A) p1 Y3 D
' J' Z. p, h" z4 l) o8 c, e9 }以dso方式安装php至/usr/local/php设置配置文件目录为/usr/local/lib开启mysql,xml支持
7 d) G; K# {' J+ `4 h) z
6 k/ K3 Q, \# r% V# e7 u4 P 4.配置
% |4 V% H! ~7 R
# h! G$ q0 {- D3 c7 w
vi/usr/local/apache/conf/httpd.conf
7 B+ N& x% x8 Z/ b6 s7 y对apache做如下配置
7 `& _& p2 l0 E# z7 s7 K#将
ServerAdminq3boy@younet.com一行改为您的邮箱地址
/ w. Q: p2 `" w1 B" q% x
`4 T% i4 z! Y& b0 n+ E6 o5 Y- n! F#DocumentRoot"/home/httpd/html/"此处为html文件主目录
8 P6 Q, l' C" _4 r) T8 M
6 t. m& W. v8 a#同上
7 F8 G$ L. Q4 T$ ~* K! O1 }
: o' {' ~# v( l7 o( ~. H
#OptionsFollowSymLinksMultiViews为
安全起见,去掉"Indexes"
& W) d! q1 g1 X2 k
2 _) c) e8 V$ ~# X#
) k/ T4 X2 d3 I
#DirectoryIndexdefault.phpdefault.phtmldefault.php3default.htmldefault.htm
* t& l( u0 W/ S/ M" z
#
' J! C9 g* j0 {% \( l# h& c: [
#设置apache的默认文件名次序
7 e K2 {7 \5 c3 T* I; H: P I
% H, [3 `+ l p7 u#AddTypeapplication/x-httpd-php.php.phtml.php3.inc
) P3 B, n. @3 M, R: ^1 g#AddTypeapplication/x-httpd-php-source.phps
5 T! H; t; W5 ~1 f
#设置php文件后缀
7 C% G4 [5 ?* o9 g# T. D' j4 X. ], u' }2 H' n. v
6 P K* P, P% B# g y6 H: w 存盘退出
/ A2 ^( Z+ S& w3 v. @# y8 i8 ?" W# c4 E9 K# W
vi/usr/local/lib/php.ini
@* G3 X. J1 Z#register-golbals=On
( r; Z# d9 Y) D! D
4 p& Q$ i; a2 @4 E! E$ ` 存盘退出
P4 n, f; V$ `9 y7 v
s, ]1 N) q& r% C3 I 5.启动服务
+ v- ?2 _9 o1 S! R5 Q2 u /usr/local/apache/bin/apachectlstart
( v D" R% P/ b- f
P9 _7 P$ O; Y) Z2 ]; E. O 6.备注
! J. q. a( D) o
apache在linux下的默认最大进程数为256,无论如何修改httpd.conf都不能超过这个限制。如果想加大这个限制,在编译apache前
编辑/home/tmp/apache/src/include/httpd.h,将其中#defineHARD_SERVER_LIMIT256一行改为#defineHARD_SERVER_LIMIT2048后再编译apache,
( A8 V# K8 Z. ^$ N; R- C5 R
4 _: g* N8 S! ?% F& k% j$ X# u apache1.3.26中mod_so似乎已经不是默认模块了。编译时候需加上--enable-module=so,我第一次编译没加此参数,结果php编译时无法找到apxs
. y+ v+ p& R9 s$ `0 c3 c/ I- L& i
, |+ n4 n: }* f# B5 H) Y8 T php4.2.3中默认配置文件路径似乎变了。编译时需加上--with-config-file-path=/usr/local/lib参数,我第一次编译完php.ini放了n个地方都没有用。不得已。只能加上这个参数。
, N; f% J, n* G/ W* t7 {/ t$ i/ R" S; q: p$ e
p.s.不保证本文所述步骤适用于其他版本
$ r2 ^+ n7 O- g) t* a3 g5 a) a. E& ?4 s" A8 E2 @; Y# x
apache启动脚本/etc/init.d/httpd
6 o3 `* N F {! z; m
以下是代码:
) z; K' ]* m3 u& A
#!/bin/bash
0 s0 s% {6 c) z1 X; w
#
- O8 Q. Z9 z; S5 t1 i! ^' N% [( x- n
#StartupscriptfortheApacheWebServer
t! |. p, ]/ `. L9 j#
7 d& f! m2 r' |#chkconfig:-8515
' M8 W4 f# a2 S' W1 U; w#description:ApacheisaWorldWideWebserver.Itisusedtoserve\
' B- P1 M6 N& B* W( [ d- D
#HTMLfilesandCGI.
- r" ^5 G+ r/ y. H3 Q5 i
#processname:httpd
7 P+ i) n) C/ A# B! Q* Y#pidfile:/var/run/httpd.pid
. X/ i4 w5 J9 D
#config:/etc/httpd/conf/access.conf
5 P7 P' P9 }! C+ v6 g#config:/etc/httpd/conf/httpd.conf
( M1 O/ L8 g& s8 C#config:/etc/httpd/conf/srm.conf
7 Y8 l& v3 @' s. |
8 R! N5 [8 m0 {, X- c#Sourcefunctionlibrary.
; j$ M- E; s4 a5 k$ o. c1 r
./etc/rc.d/init.d/functions
. a0 f2 v' y2 b8 f) ~1 R/ }: E6 Z
) G' c$ W4 O+ T& {; D* l5 r& {# q#Thiswillpreventinitlogfromswallowingupapass-phrasepromptif
* @4 S* m9 a- r \4 L4 A
#mod_sslneedsapass-phrasefromtheuser.
: h7 O4 ]( G7 X9 q/ O3 U
INITLOG_ARGS=""
" Q# Q6 r1 R+ x" k* s( Z6 ]1 d1 W. G+ q4 o- o2 Y
#Pathtotheapachectlscript,serverbinary,andshort-formformessages.
2 g: v$ @5 a/ Y2 Y8 Oapachectl=/usr/local/apache/bin/apachectl
# |3 A, k+ x- G/ v6 V+ [. i9 \httpd=/usr/local/apache/bin/httpd
2 F6 g3 ^: W. U+ O% ^prog=httpd
- J' x( t/ L! J8 QRETVAL=0
( Z* E# D% o+ X; [
' C- V6 `$ r5 s2 q; n#Findtheinstalledmodulesandconverttheirnamesintoargumentshttpd
* }1 f5 l+ p4 h6 c2 X w#canuse.
- ]3 @: n5 ^2 H6 G* e0 x" n) X
moduleargs(){
) k8 y- S5 |+ mmoduledir=/usr/local/apache
, D8 L$ {1 J" h/ r, A3 o1 I4 tmoduleargs=`
- y9 Q$ f7 X0 M6 x6 ?
/usr/bin/find${moduledir}-
typef-perm-0100-name"*.so"│env-itr'[:lower:]''[:upper:]'│awk'{\
7 y9 c! b8 }& [! r" Bgsub(/.*\//,"");\
) W( f8 N0 _, L% Y% z) c
gsub(/^MOD_/,"");\
/ L, z; X g! i+ N5 z4 jgsub(/^LIB/,"");\
: k5 k: o+ T3 E0 s. Tgsub(/\.SO$/,"");\
+ m7 K2 {6 I; X1 vprint"-DHAVE_"$0}'`
* ~8 E$ \. @4 S# ]3 B
echo${moduleargs}
3 p4 e- V4 Q( B
}
) L: y6 | M- u2 {; y
$ o* f" y/ W j& ]9 T! |4 |6 P#Thesemanticsofthesetwofunctionsdifferfromthewayapachectldoes
% f" K( P' \3 F5 i
#things--attemptingtostartwhilerunningisafailure,andshutdown
0 e$ I, x9 c- u) b/ l# I7 q' U
#whennotrunningisalsoafailure.Sowejustdoitthewayinitscripts
" `- F6 F+ C: `& e f" f [
#areexpectedtobehavehere.
( R' s9 G& J/ @3 X9 N; ostart(){
- C" \5 b% ]9 l; C
echo-n$"Starting$prog:"
. F+ c2 S9 m8 X6 V2 C
daemon$httpd`moduleargs`$OPTIONS
9 u, `) M/ F8 m; xRETVAL=$?
3 o. k2 |( N' O ^; fecho
/ V2 l: O+ [6 K
[$RETVAL=0]%26%26touch/var/lock/subsys/httpd
( B0 L% Z! l1 m) V( ?2 o# z' b) {return$RETVAL
6 P. Q/ [6 q* y( U
}
1 U$ p" D* \7 E2 c/ ?; U j
stop(){
) b T) }8 @3 L' H% Y3 m
echo-n$"Stopping$prog:"
+ Y' E" K! m$ ]. h) T2 A2 Y" ]killproc$httpd
) L; r# `1 X! L) pRETVAL=$?
. |7 h! l+ ~1 Mecho
* [8 x+ n$ v* f
[$RETVAL=0]%26%26rm-f/var/lock/subsys/httpd/var/run/httpd.pid
/ P; J8 o9 U4 G9 V4 v
}
- d0 o2 \1 d& d& n* ureload(){
, D# M0 i% S2 F+ m$ A2 |1 E, xecho-n$"Reloading$prog:"
! y: }+ C1 A# D4 N* k3 ^' M. M. b
killproc$httpd-HUP
( ]) J; ^; M& R& x9 nRETVAL=$?
7 N+ Y- A( V2 k5 f+ s, H+ P) }. j
echo
! W0 G& [) _7 O}
' |3 ^1 H# @* s/ {: C6 U- V: L9 j% @5 {
#Seehowwewerecalled.
7 t- y, B( B# ~
case"$1"in
e( v$ o: ?0 O
start)
0 I2 W6 |4 J/ U6 w- B; s2 o
start
: i( w& D5 @/ l3 v
;;
! t! x. f. s- M% K [1 t& ^0 Pstop)
% x- ~" B5 E/ b: v6 r% R1 |& ~stop
) g2 c/ [9 P# e0 E5 q0 ^;;
6 ^4 I- F# o/ F/ [) ]/ F+ B9 S8 s
status)
6 V. O" K' ~+ d4 X) c. h/ vstatus$httpd
+ `- |2 ]; o' W8 Q3 O+ g
RETVAL=$?
9 `% k, Z' T; X' K;;
2 D5 { m9 C4 g [! y- Zrestart)
9 |* w/ q; t0 K' z
stop
+ {& L7 g( b) d6 G$ n! f
start
& e3 h+ d1 ~8 v;;
) D& [/ \- x. N9 T. M' \: F
condrestart)
8 b7 ]0 F; O: f* R; s6 `' `' Z2 N
if[-f/var/run/httpd.pid];then
r. c* Q5 p c9 H7 T, pstop
" g+ ^% M4 K/ ]start
6 _& f: `7 n# t/ k9 @4 i3 t
fi
- `+ [7 C( }( x
;;
- m( O+ {; e4 b' I
reload)
, ~) i% j; Q$ }' wreload
0 C. {7 x( v! w: |% u( G; K;;
0 k- f: V: ^2 G* R8 V# Zgraceful│help│configtest)
; l& i: w) P; T- B$ ~$apachectl$@
* j% {( k6 M: L6 O/ RRETVAL=$?
! u; m% L7 ^% v7 O! z7 @$ e' m8 v
;;
) m& U/ v$ T1 I3 i* t*)
: G# Q9 }2 ]0 j' K+ recho$"Usage

prog{start│stop│restart│condrestart│reload│status│fullstatus│graceful│help│configtest}"
1 R K/ f3 ]& G" N7 {- `
exit1
! D |; t8 t8 L4 b4 Oesac
9 s* ^( w+ X+ B5 x3 v3 U
. F, y" a4 x' rexit$RETVAL