发新话题
打印

静态/动态编译Apache php mysql

静态/动态编译Apache php mysql


所需软件:
6 W( j8 b  T' d$ x/ u1 o
3 e1 V" o# a! g5 e) O0 B  i% |apache:1.3.27
2 k  F' d2 }# b6 j( ~
' O- Y# t/ X" e( ]# tphp: 4.3.2 # [! X" c7 i  b7 @
/ _, E3 {# u3 O6 ]: t2 X8 q
mysql:4.0.13 7 X' {- l# ~, A) k+ T* T0 f/ H

3 b2 A/ u: n! }+ ?/ @! O首先来安装mysql 8 O+ m# a' m) g- U; r! z5 X

* I, x# b. Q6 r; ~' k5 Ftar zvxf mysql-4.0.13.tar.gz
3 j* }& {6 D$ z& t9 D; K5 q; S' K, h7 t! s2 E7 I; c
cd mysql-4.0.13 7 g9 j# B. v  d6 @+ j

5 z1 [, B4 _" {) ~. b5 E0 Z./configure --prefix=/usr/local/mysql --sysconfdir=/etc --localstatedir=/var/lib/mysql
8 {& b( M+ `& f  _
& w. ]; ?8 t. k3 g( omake
$ x8 F- B; b. Z  v( ]/ Z
" j, ]. c: s) R$ M+ dmake install 6 x- E0 d, y1 o
. }7 l5 x" ]: C3 I' x
安装完成。 1 G8 K$ v5 C! ]3 P' x/ j) j
2 v% }2 f) m1 ~4 Z
然后初始化数据库 2 D7 Z6 w  I6 |! h6 N$ E. R! f4 J
( k2 \8 U4 {5 x  H# P0 \
/usr/local/mysql/bin/mysql_install_db --user=mysql
! @) U$ G, `. w- d# F/ x2 P' m1 Z5 X, N) f
设置权限: 3 Q# ^% B( ?) `! r# V) U* ^& s* d
$ B0 m( L: x; z
chown -R root /usr/local/mysql 8 m$ v! P& P, |8 M) {
' ?" _  |; l4 v0 E
chown -R mysql /usr/local/mysql/var 0 ]; T  s: L+ f, a- y. O" b( w
. y4 F, k# S" Z5 s4 A7 ^( r+ o
chgrp -R mysql /usr/local/mysql & J8 _# M- z& T8 g  k2 W

1 G2 U* @5 D3 J( k5 i% y! T复制配置文件; & o$ G" F7 {- J8 ~: S+ F4 O
  r9 j: p4 c7 ~( X' \% i
cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
) Z! p2 s7 M- ]! t+ G( I4 L: w; S* C
启动mysql:
- g2 S( f) W5 H; ?1 Z
6 W) b. x9 k5 C$ q, S( ?/use/local/mysql/bin/mysqld_safe --user=mysql &;amp; 1 {. V' l& i, l# v

' C8 f& a0 k2 F修改密码:初始的root密码是空的 " B& X5 M3 y2 g8 |( k

1 P- Q( D) ?( k/usr/local/mysql/bin/mysqladmin -u root -p password 123456
. b8 \9 }# M. G9 q0 z" z1 z9 B* R7 \( X6 N' ~
enter password:
; `; V1 k. n. w* g4 ~& C& u4 J. V& I3 T* O# A1 Q1 r
把密码修改为123456,由于初始密码为空,所以enter password直接回车就行
) T8 S- ]4 g, b, V- r; x% x5 B7 y- Y, k! S* Q: |1 \0 V9 R* R9 h
测试一下新的密码: $ ]9 s% {2 {5 M, Y

; i) b$ e0 E( N+ B6 S- R- t; rmysql -u root -p mysql
* S  {- ?: t5 l8 J7 D- N: X4 o3 {- K0 \- P9 F
enter password:123456
% |9 U9 U9 S2 a- k" g* l2 ~2 O
2 s9 I& b$ F. R; Y$ A如果顺利的话就能进入mysql。
+ I; r3 [. V, T' D+ V$ Y( Z- v
% t3 ?, u. ~& G2 X7 \首先是apache1.3.29 php4.3.4 mysql4.0.13的静态编译 ) v; [0 h  ]1 d

  g+ m& R, z8 }4 |( C- d2 Fapache第一次编译,并不要安装,因为php的编译需要apache至少已经编译过一次
* P4 ^3 X- T# f! E' h6 X; n
' u$ i! ~' p6 S" d- l* K+ Atar zvxf apache_1.3.27.tar.gz 8 `3 m% y7 N. G9 Q# R  s

6 W5 g/ Y2 H( \, {2 @8 i9 ncd apache_1.3.27 " g# z( ?. W4 A" P  u. F$ T
& Q- c5 L4 o3 G
./configure --prefix=/usr/local/apache % a8 O8 W6 O( X! p8 d( k

* [' p8 ~* V+ q/ Y编译php
( k! t0 Y0 u, n
: U* @, w  N+ gtar zvxf php4.3.4.tar.gz
$ O. e% e9 U8 K: N- [2 [; M: I
, I: \5 H; [+ _8 P( r8 W: Bcd php4.3.4
9 @3 [% W; N# ~# [. Z% r( U  l  t8 ]
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql \ ( f. X% [9 }: _0 d. m& z
- L# P% _+ E, r1 f# r, m. u
--with-apache=../apache_1.3.27 # A; @- ], M# O- D5 J

, l  S5 v; g( N9 r+ [make $ q) G* |# S8 v
7 M& h* \( l+ B
make install , b+ V7 H6 b# p

6 i2 H6 O& U+ a6 V第二次编译安装apache: 2 a; D( G2 a6 J" R& E) }) r+ c

. H1 v( `5 p- z: ~; I/ ucd ../apache_1.3.29
7 I1 H; l) r. M1 @, H./configure --prefix=/usr/local/apache \
1 {/ i6 r% W9 t7 S--activate-module=src/modules/php4/libphp4.a 8 ~5 q3 d$ n4 B. {1 Y
make
* u8 R# u/ G3 @8 ]make install 6 z* u% ?9 m$ o# M

% D! G; K, R# p$ X4 @3 Lcp ../php4.3.4/php.ini.dist /usr/local/php/lib/php.ini
& X/ L( z. t- z0 U$ m5 s! |" J# Z2 ^; T; l' O8 @
修改/usr/local/apache/conf/httpd.conf # o( s/ W4 Z, O. n' P0 s# h# l4 J

& N- A' m. x! X- C/ w, K4 J查找0 ?1 o$ l3 W& B4 a! L0 q
& ~9 N, ?& F6 o! q- x" w2 S
在此范围添加 , y( y2 F/ \; A. n8 [
5 \& z5 A+ M/ Z) z
AddType application/x-httpd-php .php , f0 q, k6 u+ X5 _5 M3 p
* M& \( ~! W0 }8 T. [
AddType application/x-httpd-php-source .phps
! D6 F% w3 N) l$ a" P8 G& a+ V1 @% b3 R/ t+ U4 P" V1 I
注意:apache和php的源码包在同一个目录,--with-apache=../apache_1.3.27是指向源码解压的目录 , j2 M% Z1 L( [5 Z6 e

$ M/ o% R* x$ z) K- t! C! g2 [+ m, M( V4 \) d' Z) S: M( K; k
ok!静态编译完成,大家只要启动一下服务器
1 `; g5 E6 g/ [) l! P: g6 c1 r! e$ s# E
/usr/local/apache/bin/apachectl start $ M) N1 N; X' [7 a
  m# y1 h  B8 F3 c8 J' H6 K
然后些个php测试页info.php:内容如下 : * o7 l7 m4 j1 }+ A0 f9 f

2 S* e+ e/ J- @3 d) i
3 d7 k$ y$ r6 `* ~) h& i5 `7 dphpinfo(); 4 J" o1 T3 h" N( Z/ f6 q
?>
3 \, i! X8 o7 ~3 q& D$ F5 e/ Z& a: U0 b8 D( _+ G- ?1 n" w

' K* Q+ t( w' L  P& Z) c  s/ F正常的话,应该能看到php的信息了,那么静态编译成功!
# \# K6 o7 A' o8 z( a, Q) X7 t
) ?5 ?* S3 z, R- }. l下面讲讲DSO动态编译的方法:
+ P, `$ Y2 }) b! ~8 P3 |
. h6 ~! I3 E# y4 r& w& p首先编译安装apache
0 h, ~, ?  ?1 H5 _
; |8 @- ?% V5 J* `* a( n7 ~tar zvxf apache_1.3.29
; ^+ D8 N+ P9 f, J! m: U6 ]# {3 D1 r  o1 L
cd apache_1.3.29 + D* D; h( t4 P( Y; i6 F  b' N

0 u  [( W% O% S0 A( D! S+ V* \. @! _5 P./configure --prefix=/usr/local/apache --enable-module=so \ 0 Z8 M% Q2 c: @/ e0 f5 ~- x, Z
' B, E! y# I. X* H1 s
--enable-module=rewrite / [) r5 h: x. p  [

% ]9 X, z9 m8 ~' s& t, hmake
  t5 A+ `" N/ o4 [' O0 j9 q
8 T4 N; P* M+ |# h+ P8 l- \make install # _4 y9 Q2 P: x+ S+ N% J3 p$ d2 a

/ x' @( r: l* \3 e* c: C2 Gso模块用来提供DSO支持的apachehe核心模块,rewrite是地址重写的模块,如果不需要可以不编译
$ O/ W3 [: }! O" C( R/ u- X" j4 r' }7 B4 E* ~
enable-shared=max是指除了so以外的所有标准模块都编译成DSO模块。 0 }* ^6 _0 g% J9 s3 l) w
1 Y2 Z* l3 o- U2 T1 Z" e6 l
然后编译php
; }4 u! o  c* s. C* E6 _. J2 D& X" R: Y) Q( t' V1 y1 e( o
tar zvxf php4.3.4.tar.gz
& O, ^) J! A, ^# |2 m! ^! T! I& E1 D5 F# l
cd php4.3.2
; ?/ S0 [! E, T. `1 r* ~; M) b! g4 X' h
./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql \
6 E3 t) n/ G8 d; i! P7 v
% C4 l0 Y7 s4 r( Z--with-apxs=/usr/local/apache/bin/apxs
6 ]: v& e: _6 ?+ L8 J8 ?8 p- I6 c4 W! ~6 I
make
, B; D( ]% [, h7 A. w
# i' g% B& a' r: j, i  Q/ F. Wmake install
' X; k. Y. w( m# p6 N' O; H4 f2 ]3 K% g2 w
然后修改httpd.conf,方法同静态编译的方法
% v: [& W1 P% Z
( C# z" _; G5 d, e* ?OK,动态编译就完成了,中间有什么区别大家应该看的很清楚了吧!



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题