ÿþB u i l d i n g A p a c h e , M y S Q L , a n d P H P o n M a c O S X
B y L u c a s M a r s h a l l
A l l m a t e r i a l s C o p y r i g h t © 1 9 9 7 - 2 0 0 2 D e v e l o p e r S h e d , I n c . e x c e p t w h e r e o t h e r w i s e n o t e d .
B u i l d i n g A p a c h e , M y S Q L , a n d P H P o n M a c O S X
T a b l e o f C o n t e n t s
I n t r o d u c t i o n . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
P r e r e q u i s i t e s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
M a k i n g M y S Q L . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
M a k i n g A p a c h e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
M a k i n g W e b D A V . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
M a k i n g P H P . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 0
C a v e a t s . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3
i
I n t r o d u c t i o n
A p p l e ' s n e w e s t o p e r a t i n g s y s t e m , M a c O S X , h a s b e e n a n t i c i p a t e d b y M a c u s e r s f o r m a n y y e a r s n o w . I t ' s a
f u s i o n o f a r e v i s e d M a c O S , a n d a v e r y f a s t a n d r e l i a b l e B S D - b a s e d U N I X c o r e .
T h e B S D c o r e i n M a c O S X a l l o w s f o r a n y p r o g r a m t h a t i s a b l e t o b e c o m p i l e d o n L i n u x , B S D , o r a n y o t h e r
U N I X o r U N I X d e r i v a t i v e t o b e c o m p i l e d a n d r u n i n M a c O S X . T h e f u s i o n o f t h e M a c O S ' s e a s e o f u s e w i t h
t h e p o w e r o f U N I X h a s a t t r a c t e d m u c h a t t e n t i o n f r o m t h e o p e n s o u r c e c o m m u n i t y , a n d m a n y o p e n s o u r c e
d e v e l o p e r s h a v e w o r k e d t o m a k e s u r e t h e i r p r o j e c t s w i l l w o r k w e l l o n t h e n e w s y s t e m .
A m o n g t h e b e s t o p e n s o u r c e p r o g r a m s a r e s e v e r a l t h a t y o u m a y h a v e r e a d a b o u t h e r e o n D e v S h e d : A p a c h e ,
M y S Q L , a n d P H P . I t j u s t h a p p e n s t h a t a l l o f t h e s e p r o g r a m s c o m p i l e a n d r u n r e l a t i v e l y p a i n l e s s l y o n M a c O S
X . T h i s a r t i c l e d e t a i l s t h e s t e p s f o r a l l t h e s e p r o g r a m s , a n d t h e f e w p r o b l e m s t h a t c r o p u p r u n n i n g t h e m .
I n t r o d u c t i o n 1
P r e r e q u i s i t e s
T h i s a r t i c l e a s s u m e s t h a t y o u a r e a u s e r w i t h A d m i n i s t r a t o r p r i v i l e g e s a n d t h a t t h e M a c O S X D e v e l o p e r T o o l s
a r e i n s t a l l e d . I f t h e D e v e l o p e r T o o l s a r e n o t i n s t a l l e d , t h e y c a n b e i n s t a l l e d f r o m t h e g r e y D e v e l o p e r T o o l s C D
t h a t c a m e w i t h y o u r c o p y o f M a c O S X .
T o g e t e v e r y t h i n g y o u ' l l n e e d t o f o l l o w t h i s a r t i c l e , o p e n u p a t e r m i n a l . T h e T e r m i n a l p r o g r a m c a n b e f o u n d i n
/ A p p l i c a t i o n s / U t i l i t i e s a n d l o o k s l i k e t h i s :
T y p e t h e f o l l o w i n g c o m m a n d s i n t o y o u r t e r m i n a l ( d o n ' t t y p e t h e % s , t h e y a r e j u s t r e p r e s e n t a t i v e o f t h e
p r o m p t ) .
% c d / t m p
% w g e t h t t p : / / d o w n l o a d . s o u r c e f o r g e . n e t / p u b / m i r r o r s / m y s q l / D o w n l o a d s / M y S Q L - 3 . 2 3 / m y s q l - 3 . 2 3 . 3 8 . t a r . g z
% w g e t h t t p : / / h t t p d . a p a c h e . o r g / d i s t / h t t p d / a p a c h e _ 1 . 3 . 1 9 . t a r . g z
% w g e t h t t p : / / w w w . p h p . n e t : 8 0 0 0 / d i s t r i b u t i o n s / p h p - 4 . 0 . 5 . t a r . g z
% w g e t
h t t p : / / w w w . w e b d a v . o r g / m o d _ d a v / m o d _ d a v - 1 . 0 . 2 - 1 . 3 . 6 . t a r . g z
W h e n y o u ' r e d o n e , d o n ' t c l o s e t h e T e r m i n a l w i n d o w , y o u ' l l n e e d i t l a t e r . N o w t h a t y o u h a v e e v e r y t h i n g , l e t ' s
s t a r t g e t t i n g t h i n g s s e t u p .
P r e r e q u i s i t e s 2
M a k i n g M y S Q L
C o m p i l i n g M y S Q L i s t h e m o s t d i f f i c u l t p a r t o f o u r e n t i r e p r o c e s s . I t d o e s n ' t j u s t i n v o l v e c o m p i l i n g a n d
i n s t a l l i n g , b u t y o u a l s o h a v e t o c r e a t e a S t a r t u p I t e m f o r i t s o i t w i l l s t a r t w h e n e v e r y o u r M a c O S X b o x s t a r t s .
Y o u s h o u l d c o m p i l e i t f i r s t s o y o u ' l l h a v e a l l t h e c l i e n t l i b r a r i e s y o u ' l l n e e d l a t e r f o r P H P .
F i r s t o f a l l , y o u n e e d t o c r e a t e a n e w u s e r n a m e d m y s q l . T h e r e a s o n f o r h a v i n g a u s e r f o r a s e r v e r p r o c e s s l i k e
t h i s i s s e c u r i t y . W h e n I h a v e y o u a c t u a l l y c o m p i l e M y S Q L l a t e r , I ' l l h a v e y o u m a k e s u r e i t a l w a y s r u n s u n d e r
t h e m y s q l u s e r , a n d t h e n y o u ' l l b e a b l e t o l i m i t , v i a U N I X p e r m i s s i o n s , w h a t f i l e s t h e p r o c e s s c a n m o d i f y .
T o c r e a t e a n e w u s e r c o r r e c t l y , y o u ' l l n e e d t o g e t i n t o N e t I n f o , t h e u n d e r l y i n g d a t a b a s e t h a t k e e p s t r a c k o f a l o t
o f t h i n g s i n M a c O S X . T o a c c e s s N e t I n f o , y o u n e e d t o u s e t h e N e t I n f o M a n a g e r , w h i c h c a n b e f o u n d i n t h e
U t i l i t i e s f o l d e r t h a t i s i n t h e A p p l i c a t i o n s f o l d e r . I t l o o k s l i k e t h i s :
N e t I n f o i s a v e r y i m p o r t a n t p a r t o f M a c O S X , s o t h e r e i s q u i t e a b i t o f s e c u r i t y a r o u n d i t . O n c e y o u h a v e
N e t I n f o M a n a g e r o p e n , t h e f i r s t t h i n g y o u ' l l n e e d t o d o i s u n l o c k i t s o y o u c a n m a k e c h a n g e s . J u s t c l i c k t h e
l o c k i n t h e l o w e r l e f t o f t h e N e t I n f o M a n a g e r w i n d o w . I t l o o k s l i k e t h i s :
A d i a l o g b o x w i l l c o m e u p a s k i n g f o r t h e u s e r n a m e a n d p a s s w o r d f o r a n u s e r w i t h A d m i n i s t r a t o r a c c e s s .
F i l l o u t t h e f i e l d s a n d c l i c k O K . T h e N e t I n f o m a n a g e r s h o u l d n o w b e u n l o c k e d , a n d y o u ' l l b e a b l e t o m o d i f y
t h e N e t I n f o t r e e . T h e t r e e i s d i s p l a y e d i n a m a n n e r s i m i l a r t o t h e B r o w s e r v i e w i n t h e F i n d e r . C l i c k o n u s e r s ,
t h e n c l i c k o n t h e n e w d i r e c t o r y b u t t o n .
T h i s w i l l c r e a t e a n e w N e t I n f o d i r e c t o r y . U s e t h e N e w P r o p e r t y a n d N e w V a l u e o p t i o n s i n t h e D i r e c t o r y m e n u
t o c r e a t e p r o p e r t i e s . S e l e c t N e w P r o p e r t y , s e t t h e n a m e , s e l e c t N e w V a l u e , f i l l i n t h e v a l u e , m a k e s u r e t h a t t h e
p r o p e r t y n a m e s a n d v a l u e s m a t c h t h o s e o f t h e d i r e c t o r y i n t h e s c r e e n s h o t b e l o w .
O n c e y o u r N e t I n f o l o o k s l i k e m i n e , g o a h e a d a n d c l i c k o n o n e o f t h e o t h e r d i r e c t o r i e s a n d t h i s d i a l o g b o x w i l l
a p p e a r :
C l i c k S a v e , t h e n c l i c k U p d a t e t h i s c o p y i n t h e n e x t d i a l o g . Y o u ' r e n o w d o n e w i t h N e t I n f o M a n a g e r , s o y o u
c a n q u i t i t .
Y o u ' r e n o t d o n e y e t , h o w e v e r . Y o u s t i l l n e e d t o c o m p i l e M y S Q L ! Y o u s h o u l d s t i l l h a v e t h e T e r m i n a l o p e n
f r o m e a r l i e r . T y p e t h e f o l l o w i n g i n t o i t :
M a k i n g M y S Q L 3
B u i l d i n g A p a c h e , M y S Q L , a n d P H P o n M a c O S X
% g n u t a r z x f m y s q l - 3 . 2 3 . 3 8 . t a r . g z
T h i s w i l l d e c o m p r e s s t h e M y S Q L s o u r c e i n t o a d i r e c t o r y i n t h e c u r r e n t d i r e c t o r y . N e x t , t y p e t h e f o l l o w i n g :
% c d m y s q l - 3 . 2 3 . 3 8
% . / c o n f i g u r e - - e n a b l e - a s s e m b l e r - - w i t h - m y s q l d - u s e r = m y s q l
T h e - - e n a b l e - a s s e m b l e r f l a g t e l l s t h e c o n f i g u r e s c r i p t t h a t w e w a n t M y S Q L t o b e c o m p i l e d u s i n g a s s e m b l e r
c o d e w h e r e p o s s i b l e - t h i s h a s t h e a d v a n t a g e o f s p e e d i n g u p o u r f i n a l M y S Q L s e r v e r .
N o t e : S o m e p e o p l e h a v e r e p o r t e d p r o b l e m s c o m p i l i n g ( t h e n e x t s t e p ) w h e n t h e y h a v e s p e c i f i e d t h e
- - e n a b l e - a s s e m b l e r f l a g . I f i t d o e s n ' t w o r k f o r y o u , j u s t r e - r u n t h e c o n f i g u r e s c r i p t , o m i t t i n g t h e
- - e n a b l e - a s s e m b l e r f l a g .
T h e - - w i t h - m y s q l d - u s e r = m y s q l f l a g t e l l s t h e c o n f i g u r e s c r i p t t h a t w e w a n t t h e c o m p i l e d M y S Q L t o r u n
u n d e r t h e m y s q l u s e r w e m a d e e a r l i e r .
N o w y o u c o m p i l e .
% m a k e
T h e " m a k e " c o m m a n d w i l l c o m p i l e a l l t h e p r o g r a m s t h a t a r e p a r t o f t h e M y S Q L d i s t r i b u t i o n .
% s u d o m a k e i n s t a l l
T h e " m a k e i n s t a l l " c o m m a n d i n s t a l l s t h e M y S Q L d i s t r i b u t i o n , p r o g r a m s a n d l i b r a r i e s . P u t t i n g " s u d o " b e f o r e i t
r u n s i t a s r o o t , t h e U N I X s u p e r - u s e r . S u d o w i l l a s k y o u f o r y o u r p a s s w o r d ( n o t r o o t ' s ) .
% s u d o / u s r / l o c a l / b i n / m y s q l _ i n s t a l l _ d b
T h i s w i l l i n s t a l l t h e v e r y i m p o r t a n t m y s q l p e r m i s s i o n s d a t a b a s e .
% s u d o c h o w n - R m y s q l / u s r / l o c a l / v a r
M a k i n g M y S Q L 4
B u i l d i n g A p a c h e , M y S Q L , a n d P H P o n M a c O S X
T h i s c o m m a n d w i l l c h a n g e t h e o w n e r o f t h e n e w l y i n s t a l l e d M y S Q L d a t a b a s e s t o t h e m y s q l u s e r .
% s u d o / u s r / l o c a l / b i n / s a f e _ m y s q l d r n o s h a d e s i z e = 1
c o l o r = # c c c c c c >
T h i s w i l l s t a r t M y S Q L . N o w t h a t M y S Q L i s a l l i n s t a l l e d , y o u m a y w a n t t o m a k e a M a c O S X S t a r t u p I t e m f o r
i t s o i t w i l l s t a r t e v e r y t i m e t h e c o m p u t e r s t a r t s . H e r e ' s h o w y o u d o i t .
I f t h e r e i s n ' t a S t a r t u p I t e m s f o l d e r i n y o u r L i b r a r y f o l d e r , e x e c u t e t h i s c o m m a n d :
% m k d i r / L i b r a r y / S t a r t u p I t e m s
I t w i l l m a k e o n e . T h e r e a s o n w e p u t i t i n L i b r a r y a n d n o t S y s t e m / L i b r a r y i s t h a t e v e r y t h i n g i n S y s t e m / L i b r a r y
i s r e s e r v e d f o r u s e b y t h e o p e r a t i n g s y s t e m o n l y .
% m k d i r / L i b r a r y / S t a r t u p I t e m s / M y S Q L
T h i s w i l l m a k e a n e w d i r e c t o r y f o r o u r M y S Q L s t a r t u p i t e m . N e x t y o u ' l l n e e d t o m a k e a s t a r t u p s c r i p t .
T y p e t h i s :
% p i c o / L i b r a r y / S t a r t u p I t e m s / M y S Q L / M y S Q L
a n d t h e n p a s t e t h e f o l l o w i n g i n t o t h e w i n d o w .
# ! / b i n / s h
. / e t c / r c . c o m m o n
# #
# S t a r t u p M y S Q L s e r v e r
# #
M a k i n g M y S Q L 5
B u i l d i n g A p a c h e , M y S Q L , a n d P H P o n M a c O S X
i f [ " $ { M Y S Q L S E R V E R : = - N O - } " = " - Y E S - " ] ; t h e n
C o n s o l e M e s s a g e " S t a r t i n g M y S Q L S e r v e r "
/ u s r / l o c a l / s h a r e / m y s q l / m y s q l . s e r v e r s t a r t
f i
T e a c h i n g y o u h o w t o u s e p i c o o r v i , o r a n y o t h e r U N I X t e x t e d i t o r i s b e y o n d t h e s c o p e o f t h i s a r t i c l e . I ' m
h a v i n g y o u u s e p i c o b e c a u s e i t i s e a s i e s t .
T o s a v e i n p i c o t y p e c t r l - O , t h e n s e l e c t t h e a p p r o p r i a t e o p t i o n s t h a t c o m e u p a t t h e b o t t o m o f t h e T e r m i n a l . T o
e x i t p i c o , t y p e c t r l - X .
O n c e y o u ' v e s a v e d a n d e x i t e d , t y p e t h e f o l l o w i n g c o m m a n d t o m a k e t h e p a r a m e t e r l i s t f o r y o u r s t a r t u p i t e m .
% p i c o / L i b r a r y / S t a r t u p I t e m s / M y S Q L / S t a r t u p P a r a m e t e r s . p l i s t
a n d p a s t e t h e f o l l o w i n g :
{
D e s c r i p t i o n = " M y S Q L S e r v e r " ;
P r o v i d e s = ( " M y S Q L " ) ;
R e q u i r e s = ( " R e s o l v e r " ) ;
O r d e r P r e f e r e n c e = " N o n e " ;
M e s s a g e s =
{
s t a r t = " S t a r t i n g M y S Q L S e r v e r " ;
s t o p = " S t o p p i n g M y S Q L S e r v e r " ;
} ;
}
T h i s p a r a m e t e r l i s t t e l l s M a c O S X w h a t t h e S t a r t u p I t e m p r o v i d e s a n d w h a t i t r e q u i r e s .
% c h m o d - R - w / L i b r a r y / S t a r t u p I t e m s / M y S Q L /
T h i s c o m m a n d m a k e s i t s o n o o n e c a n e d i t o u r n e w S t a r t u p I t e m .
M a k i n g M y S Q L 6
B u i l d i n g A p a c h e , M y S Q L , a n d P H P o n M a c O S X
% c h m o d + x / L i b r a r y / S t a r t u p I t e m s / M y S Q L / M y S Q L
T h i s o n e t e l l s t h e s y s t e m t h a t t h e M y S Q L s t a r t u p s c r i p t i s e x e c u t a b l e .
% s u d o c h o w n - R r o o t / L i b r a r y / S t a r t u p I t e m s / M y S Q L
A n d t h i s o n e c h a n g e s t h e o w n e r o f o u r n e w S t a r t u p I t e m t o b e t h e s u p e r u s e r , r o o t . N o w t h a t w e h a v e a s t a r t u p
i t e m , w e n e e d t o t e l l t h e s y s t e m t h a t w e w a n t i t r u n a t s t a r t u p .
R u n t h e f o l l o w i n g c o m m a n d :
% s u d o p i c o / e t c / h o s t c o n f i g
A n d p a s t e t h e f o l l o w i n g a t t h e b o t t o m o f t h e f i l e .
M Y S Q L S E R V E R = - Y E S -
W h e w . W e ' r e a l l d o n e w i t h M y S Q L n o w . T h e r e a r e s o m e p r o b l e m s r u n n i n g M y S Q L t h a t I w i l l c o v e r i n t h e
c a v e a t s s e c t i o n n e a r t h e e n d o f t h i s a r t i c l e , b u t u n t i l t h e n , w e h a v e s o m e m o r e ( e a s i e r ) c o m p i l i n g t o d o .
M a k i n g M y S Q L 7
M a k i n g A p a c h e
Y o u m a y b e a s k i n g " W h y d o I n e e d t o c o m p i l e A p a c h e w h e n M a c O S X a l r e a d y c o m e s w i t h i t ? " W e l l , i n m y
o p i n i o n i t ' s a l w a y s g o o d t o h a v e a n e w v e r s i o n o f s u c h e s s e n t i a l s o f t w a r e . A l s o , i t ' s b e s t t o e n s u r e
c o m p a t i b i l i t y w i t h t h e n e w m o d u l e s y o u ' r e g o i n g t o b e c o m p i l i n g , e s p e c i a l l y m o d _ d a v .
% c d . .
T h i s w i l l t a k e y o u o u t o f t h e M y S Q L s o u r c e d i r e c t o r y .
% g n u t a r z x f a p a c h e _ 1 . 3 . 1 9 . t a r . g z
% c d a p a c h e _ 1 . 3 . 1 9
T h e A p a c h e s o u r c e i s d e c o m p r e s s e d a n d r e a d y t o g o .
% . / c o n f i g u r e - - w i t h - l a y o u t = D a r w i n - - s e r v e r - u i d = w w w \
- - s e r v e r - g i d = w w w - - e n a b l e - m o d u l e = m o s t - - e n a b l e - s h a r e d = m a x
T h e - - w i t h - l a y o u t = D a r w i n o p t i o n t e l l s t h e c o n f i g u r e s c r i p t t h a t w e w a n t A p a c h e i n s t a l l e d w i t h t h e c o r r e c t
l a y o u t f o r M a c O S X , t h e - - s e r v e r - u i d = w w w a n d - - s e r v e r - g i d = w w w t e l l s c o n f i g u r e t o m a k e i t s o t h e
c o m p i l e d A p a c h e r u n s a s u s e r w w w i n g r o u p w w w ( t h i s u s e r a n d g r o u p a r e a l r e a d y i n t h e s y s t e m , A p p l e u s e s
t h e m f o r t h e b u i l t i n A p a c h e ) , - - e n a b l e - m o d u l e = m o s t t e l l s t h e c o n f i g u r e s c r i p t t o e n a b l e t h e s t a n d a r d A p a c h e
m o d u l e s , a n d - - e n a b l e - s h a r e d = m a x t e l l s t h e s c r i p t t o i n c l u d e m o d _ s o ( n e e d e d f o r d y n a m i c m o d u l e s , o r
D S O s ) a n d c o m p i l e a l l t h e s t a n d a r d m o d u l e s a s d y n a m i c m o d u l e s .
% m a k e
% s u d o m a k e i n s t a l l
T h e s e c o m m a n d s c o m p i l e a n d i n s t a l l A p a c h e . Y o u w o n ' t b e n e e d i n g t o m a k e a S t a r t u p I t e m f o r i t b e c a u s e
t h e r e w a s a l r e a d y o n e i n s t a l l e d i n t h e d e f a u l t A p a c h e A p p l e i n c l u d e d i n M a c O S X .
T h a t ' s i t f o r A p a c h e . W a s n ' t t h a t e a s y ?
M a k i n g A p a c h e 8
M a k i n g W e b D A V
W e b D A V i s a v e r y u s e f u l p r o t o c o l t h a t a l l o w s f o r f i l e t r a n s f e r , v e r s i o n i n g , a n d o t h e r t h i n g s v i a H T T P . T h e
s t a n d a r d i n s t a l l a t i o n o f A p a c h e c o m e s w i t h m o d _ d a v , t h e m o d u l e r e s p o n s i b l e f o r h a n d l i n g W e b D A V
r e q u e s t s , s o I ' l l s h o w y o u h o w t o c o m p i l e i t f o r o u r n e w c o p y o f A p a c h e . Y o u c a n f i n d o u t m o r e a b o u t
W e b D A V a t h t t p : / / w w w . w e b d a v . o r g .
% c d . .
% g n u t a r z x f m o d _ d a v - 1 . 0 . 2 - 1 . 3 . 6 . t a r . g z
% c d m o d _ d a v - 1 . 0 . 2 - 1 . 3 . 6
N o w t h a t t h e m o d _ d a v s o u r c e i s d e c o m p r e s s e d , w e c o n f i g u r e .
% . / c o n f i g u r e - - w i t h - a p x s = / u s r / s b i n / a p x s
T h e - - w i t h - a p x s o p t i o n t e l l s t h e c o n f i g u r e s c r i p t t h a t w e w a n t m o d _ d a v c o m p i l e d a s a D S O u s i n g A p a c h e ' s
A P X S m e c h a n i s m .
% m a k e
% s u d o m a k e i n s t a l l
T h i s w i l l c o m p i l e , i n s t a l l , a n d e n a b l e m o d _ d a v . I f y o u w a n t i t t o d i s a b l e i t ( a s i t i s i n A p p l e ' s d e f a u l t A p a c h e )
y o u ' l l n e e d t o e d i t / e t c / h t t p d / h t t p d . c o n f a n d c o m m e n t o u t ( p u t # a t t h e s t a r t o f t h e l i n e ) t h e s e l i n e s :
L o a d M o d u l e d a v _ m o d u l e l i b e x e c / h t t p d / l i b d a v . s o
A d d M o d u l e m o d _ d a v . c
O n e m o r e s t e p a n d y o u ' r e d o n e . O n t o P H P .
M a k i n g W e b D A V 9
M a k i n g P H P
T h e l a s t s t e p i s t o g e t P H P s e t u p .
% c d . .
% g n u t a r z x f p h p - 4 . 0 . 5 . t a r . g z
% c d p h p - 4 . 0 . 5
N o w P H P i s d e c o m p r e s s e d a n d r e a d y t o b e c o n f i g u r e d .
% . / c o n f i g u r e - - w i t h - m y s q l = / u s r / l o c a l
- - w i t h - a p x s = / u s r / s b i n / a p x s \
- - w i t h - z l i b = / u s r
T h e - - w i t h - m y s q l o p t i o n t e l l s t h e c o n f i g u r e s c r i p t t h a t w e w a n t t o u s e t h e M y S Q L l i b r a r i e s t h a t w e r e
i n s t a l l e d w i t h M y S Q L i n s t e a d o f t h e o n e s t h a t c o m e w i t h P H P . T h e - - w i t h - a p x s o p t i o n d o e s t h e s a m e t h i n g
i t d o e s i n t h e m o d _ d a v c o n f i g u r a t i o n , t e l l s t h e c o n f i g u r e s c r i p t t h a t w e w a n t P H P c o m p i l e d a s a D S O , a n d t h e
- - w i t h - z l i b o p t i o n t e l l s t h e c o n f i g u r e s c r i p t w h e r e t o f i n d t h e z l i b l i b r a r i e s i t n e e d s ( T h e s e a r e i n c l u d e d i n
M a c O S X ) .
R u n n i n g t h e c o n f i g u r e s c r i p t s t r a n g e l y b r e a k s o n e f i l e i n t h e d i s t r i b u t i o n , m a i n / i n t e r n a l _ f u n c t i o n s . c . I n t h a t
f i l e , s o m e o f t h e # i n c l u d e l i n e s a r e r u n t o g e t h e r i n t o o n e l i n e , a n d h a v e t h e l e t t e r " n " s e p a r a t i n g t h e m .
Y o u c a n e d i t t h i s f i l e m a n u a l l y t o f i x t h i s , b u t I ' v e m a d e a P e r l s c r i p t t h a t w i l l d o t h e t r i c k , i f y o u ' d r a t h e r u s e
i t .
E x e c u t e t h e f o l l o w i n g c o m m a n d s t o u s e m y s c r i p t .
% w g e t h t t p : / / w w w . d e v s h e d . c o m / S e r v e r _ S i d e / A d m i n i s t r a t i o n / B u i l d i n g O n O S X / f i x _ p h p . p l
% c h m o d + x f i x _ p h p . p l
T h i s w i l l g e t t h e s c r i p t a n d a l l o w y o u t o e x e c u t e i t , a n d
% . / f i x _ p h p . p l
M a k i n g P H P 1 0
B u i l d i n g A p a c h e , M y S Q L , a n d P H P o n M a c O S X
w i l l r u n i t , f i x i n g t h e p r o b l e m .
% m a k e
% s u d o m a k e i n s t a l l
T h e s e c o m m a n d s w i l l c o m p i l e , i n s t a l l , a n d e n a b l e t h e P H P m o d u l e .
Y o u ' r e n o t d o n e y e t , y o u n e e d t o t e l l A p a c h e t o u s e t h e P H P m o d u l e f o r a l l f i l e s w i t h a . p h p e x t e n s i o n . E d i t
t h e A p a c h e c o n f i g u r a t i o n f i l e :
% s u d o p i c o / e t c / h t t p d / h t t p d . c o n f
a n d r e m o v e t h e # s f r o m t h e l i n e s t h a t l o o k l i k e t h i s :
# A n d f o r P H P 4 . x , u s e :
#
# A d d T y p e a p p l i c a t i o n / x - h t t p d - p h p . p h p
# A d d T y p e a p p l i c a t i o n / x - h t t p d - p h p - s o u r c e . p h p s
s o t h e y e n d u p l o o k i n g l i k e t h i s :
# A n d f o r P H P 4 . x , u s e :
#
A d d T y p e a p p l i c a t i o n / x - h t t p d - p h p . p h p
A d d T y p e a p p l i c a t i o n / x - h t t p d - p h p - s o u r c e . p h p s
a n d r e s t a r t y o u r A p a c h e s e r v e r .
% s u d o a p a c h e c t l r e s t a r t
N o w , t o t e s t y o u r P H P s e t u p , y o u ' l l n e e d t o m a k e a P H P s c r i p t . T y p e t h e f o l l o w i n g :
M a k i n g P H P 1 1
B u i l d i n g A p a c h e , M y S Q L , a n d P H P o n M a c O S X
% p i c o / L i b r a r y / W e b S e r v e r / D o c u m e n t s / p h p i n f o . p h p
a n d p a s t e t h i s i n :
<