: http://blog.csdn.net/yanzi1225627/article/details/491236596 t5 C5 t, t8 B5 N; O
7 d' k. E0 a6 r格嚗剖遣LNMP嚗Linux 嚗 Nginx 嚗 MySQL 嚗 PHP 嚗SVN嚗嚗嗡葉svn舐冽乩誨瞞tp嚗嫣噶撘銝剛霂甇乩誨 詨喟桀嚗頧臭辣賢鋆/www/桀銝嚗肓ww桀銝啣遣web隞嗅允雿銝箇蝡寡楝敺嚗www桀銝啣遣wwwsvn雿銝漳vn隞摨啣/www/software冽交駐ginx嚗mysql嚗php摰鋆皞nginx餈銵蝏韐行暈ww:www 銝嚗摰鋆憭yum -y install ntp make openssl openssl-devel pcre pcre-devel libpng libpng-devel libjpeg-6b libjpeg-devel-6b freetype freetype-devel gd gd-devel zlib zlib-devel gcc gcc-c++ libXpm libXpm-devel ncurses ncurses-devel libmcrypt libmcrypt-devel libxml2 libxml2-devel imake autoconf automake screen sysstat compat-libstdc++-33 curl curl-devel cmake
. p: g% K" @3 [; K4 J3 `( G 湔亙敺摰鋆靘韏摰鋆摰 嗅銝頧緯ginx 嚗mysql嚗 php皞隞嚗 舐 google search engine 撠啁 撠餈銝隞緣ar.gz隞園餈scp賭誘撘唳∪其/www/software桀銝 鈭嚗摰鋆nginx閫蝻拇隞塚嗅餈迸ginx-1.8.0嚗颲亙賭誘嚗 ./configure --user=www --group=www --prefix=/www/nginx% K& w% j9 [1 T$ J
嗅make嚗make install撠勗鋆摰瘥鈭 摰鋆摰蝚砌隞嗡嚗撱滴ww冽瑕蝏嚗血隡http://blog.itblood.com/nginx-emerg-getpwnam-www-failed.html 霂胯 扯嚗 /usr/sbin/groupadd -f www
, n% A, j( p9 ^/ @/usr/sbin/useradd M -s /sbin/nologin -g www www //-M 銝撱箇雿輻刻桅 nginx賭誘/www/nginx/sbin/銝嚗瑁/etc/init.d/銝隞踝乩亥挽蝵桀箏臬具 chmod 755 /etc/init.d/nginx- x. @) m6 B p5 l2 X
% Q( h) d2 g: h* Q! Kchkconfig --add nginx
' `$ o8 }5 K& q" W, V4 k' D2 i8 |; P
chkconfig nginx on2 S; ?. m- l. V8 b8 `1 r4 a) _; |2 Q
嗅 cd /etc/rc.d/init.d/ 桀銝啣遣nginx嚗摰孵銝嚗 #!/bin/bash
}- M% g% _# I" C# W$ v* V& W# nginx Startup script for the Nginx HTTP Server
0 ?4 A! q" S- I! ^# it is v.0.0.2 version.7 j" h# h; M5 P5 T9 m
# chkconfig: - 85 15! {# a- t: V# L
# description: Nginx is a high-performance web and proxy server.: g! c4 A, E" b; V8 ^
# It has a lot of features, but it's not for everyone.
) K( ~+ [; T9 N2 X. Y/ j, N# processname: nginx1 D% N' @, L& u6 [, V7 C( ^
# pidfile: /var/run/nginx.pid
. I1 P' M# a' H+ } z# config: /usr/local/nginx/conf/nginx.conf
- C5 ^; S( ?6 k) h) h A8 k! _nginxd=/www/nginx/sbin/nginx/ }0 |. g1 Z! E, B' t/ `
nginx_config=/www/nginx/conf/nginx.conf
0 O9 f" Z% Z' Q e+ z( P/ Qnginx_pid=/www/nginx/logs/nginx.pid
! j# Y: b; o' @RETVAL=08 G+ J9 w- P& |, H$ M
prog="nginx"
" j1 u5 g: S I) V6 W# ^# Source function library.7 W/ u' S% ?* R$ v6 p- k4 [
. /etc/rc.d/init.d/functions
5 [# \/ Z7 S. d, p9 P9 v% F# Source networking configuration.: a5 O4 u t! y; f: n( d
. /etc/sysconfig/network
9 T# W' P: v; T4 H+ E, h# Check that networking is up.
e' } }" J+ _5 I4 d+ z[ ${NETWORKING} = "no" ] && exit 0
) r( Q1 b8 E4 ^: p4 N& Z# C j[ -x $nginxd ] || exit 0
' d% [; i5 p3 Y m( L# Start nginx daemons functions.
3 ^) {6 r' p( y9 q% n( Q) astart() {
, u8 |$ ~, I, X2 ? H* Iif [ -e $nginx_pid ];then4 P7 z6 R! B' J/ {( G$ k
echo "nginx already running...."
4 Y. K% d" o( A$ {exit 1
Z' P M6 d% g& `1 Efi) P/ q/ g. `6 Y+ r# U$ N
echo -n $"Starting $prog: "
/ n, _0 @ D o0 R4 O6 a l0 cdaemon $nginxd -c ${nginx_config}
& g* L4 T! j/ gRETVAL=$?8 x$ F" T" J5 H' j/ F; O9 ~$ V
echo- }3 T6 Y n$ ^+ W6 i; `
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx7 ]5 |' a; Y ]) W# U& \
return $RETVAL/ p: E1 z w8 v1 \; t5 ?2 s
}
! v% y8 F* ]! k# I2 V# Stop nginx daemons functions.: g# `9 X' B# Q$ j% P
stop() {& i( f. E" j- @8 D1 E+ e
echo -n $"Stopping $prog: " c+ H# y% p5 x% s1 I
killproc $nginxd3 O4 M8 Q7 ?, ~
RETVAL=$?
. f( U+ y3 a2 o8 x* Becho$ r( f# W3 w; W8 o, S B. v& n
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /www/nginx/logs/nginx.pid5 Q/ | T$ n4 y {8 o
}. w R/ u) g9 A/ i8 t; |" l% I/ F
reload() {9 K4 f' H1 S' D( t) N& f7 K
echo -n $"Reloading $prog: "6 ^- |* A. }5 B& p8 d
#kill -HUP `cat ${nginx_pid}`
; f" f/ V! q& j3 ^+ e* rkillproc $nginxd -HUP
3 B: Z& a# Y# g6 eRETVAL=$?) b, T$ B0 M i) j
echo' J- T: ]0 {& e( K& u: H
}
* s k n4 i. B+ ]' ^# See how we were called.
G u! x) _$ o6 N3 @! L1 p4 Lcase "$1" in
) T! b( C1 n; L# Gstart)
% }' {% p# u- K' j3 D' l7 ^start8 e+ D8 E2 L [* j
;;
' y- ?: V6 ~+ I% c2 M& _stop)% A, w$ r5 C5 P d* x2 ?
stop3 I# \4 o. @0 X: P7 [
;;/ [" ]2 S5 t6 a7 D
reload)0 w% |# j$ P. S! P' r0 ~% N' s% L+ l
reload
' U' {; q) K" W; U; [8 G, A, E8 o;;) r2 k5 ?3 M3 i0 |8 _# q
restart)7 j1 @. z/ j( h& m
stop( C. n( \! K+ ^, s/ r' m
start
) _' N; U3 u; }+ l- A;;. U5 O$ s8 c1 {
status), J0 B1 A9 T7 G3 U8 E& {5 ]7 t
status $prog
* n- s1 u, |$ R9 M1 ORETVAL=$?
* f @# E7 V' f9 i: y0 u; U: E" Y;;
% U( J: V0 B. a2 S* d6 Q*)
; V9 ]8 ?# [3 C# R, g* ^$ v) j) r' H/ Uecho $"Usage: $prog {start|stop|restart|reload|status|help}"8 `& S3 z1 l8 L4 F1 G9 m7 [5 i
exit 1
2 n8 [# D# _- d8 f# [. `: |/ resac
, Y* E# c! |! g* J/ ^exit $RETVAL
$ @# @+ } t1 |$ E0 v! u( R7 Y
/ ^& z, D/ x, T B& A4 ?/ O2 }* x" E$ _ 瘜冽嚗憒nginx摰鋆頝臬銝臬/www/nginx銝嚗敶靽格孵停憟賬
* s, v, m8 A9 F }chmod 775 /etc/rc.d/init.d/nginx #韏鈭扯chkconfig nginx on #霈曄蔭撘箏臬/etc/rc.d/init.d/nginx restart service nginx restart單迨nginx摰鋆撠得k鈭嚗雿銝支葵桅嚗9 U$ f F! E7 Z8 Y+ C
1嚗舀湔寥霈已eb寧桀/www/web桅 2嚗臭php游嚗暺霈孓ginx臭霈小hp敺 撖嫣1嚗nginx暺霈已eb寧桀 nginx摰鋆頝臬銝html隞嗅允嚗隞祆隞孵/www/web桀銝 餈/www/nginx/conf桀銝嚗vim nginx.conf嚗撠
# P# [5 [1 s. U1 Z8 j& ] location / {
Y6 B1 p% Q* e" ^; {8 h root html;
- T1 J9 y% |- O5 V; B# t index index.php index.html index.htm;
" n1 x" w/ h' I+ ]: \: s7 o }
7 [2 i/ M3 F1 v6 v# D靽格嫣蛹嚗; D% U. `1 T' Y) _4 n% W
9 Q7 j1 F/ T8 z. f$ S8 f3 p
location / { root /www/web; index index.html index.php; } 瘜冽嚗憓鈭撖隘ndex.php霂怒撠
0 E+ T1 B5 w# K# E8 Llocation ~ \.php$ {+ I. i: O+ T$ c# w O
root html;' _7 v* g' Q" V+ V4 x/ H0 P
fastcgi_pass 127.0.0.1:9000;
0 s' ]7 w0 S& v q fastcgi_index index.php;
7 N6 V4 n: X8 i+ d fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;7 P0 C1 g$ `* {( p- @- j( d+ Q
include fastcgi_params;
2 H1 k M9 V+ t, O6 G }% l/ f5 |1 s x* g
靽格嫣蛹嚗 e' [7 D- Z0 X
: z: h) N2 C# \3 s
location ~ \.php$ { root /www/web; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; #include fastcgi_params; include fastcgi.conf; } 嗅撠得k鈭蝚砌銝芷桅頝php游嚗敺摰鋆摰瘥php氬 銝嚗摰鋆MySQL閫蝻拙僎餈唳桀嚗扯嚗
9 b' `1 F) K2 @" d#cmake -DCMAKE_INSTALL_PREFIX=/www/mysql 銋make make install摰鋆摰鋆摰瘥閬隞乩銝芯嚗1嚗璉/etc/銝臬血皂y.conf, 憒霂餈mv賭誘孵銝 my.cnf.backup ps嚗甇斗郊撉日撣賊閬嚗嚗嚗 2嚗撱榦ysql冽瑕蝏 #/usr/sbin/groupadd mysql; ?$ ]# ]% ?1 o
! E3 P! {% z9 t9 P. T2 _0 J7 L4 o) |#/usr/sbin/useradd -g mysql mysql 憓mysql冽瑕蝏
1 @! N, K7 `5 z 扯 cat /etc/passwd 亦冽瑕銵( }$ d0 s6 R2 L$ k9 L* L
cat /etc/group 亦冽瑞銵 chown -R mysql:mysql /www/mysql靽格雋ysql摰鋆桀 f- t4 M7 K: z5 f1 K
3嚗餈/www/mysql,撱箇頂蝏芸蒂唳桀 scripts/mysql_install_db --basedir=/www/mysql --datadir=/www/mysql/data --user=mysql& f4 @ R% ^. P& y; H
4嚗瘛餃∴臬決ySQL cp support-files/mysql.server /etc/init.d/mysql
0 T! L4 l, E5 K2 [7 p( y# \, ^chkconfig mysql on/ L' z6 _4 n5 T$ X3 q
service mysql start --臬決ySQL
- H5 [2 o: ~2 ? 5,霈曄蔭root撖 銝箔霈拐遙雿唳寥質賜皂ysql/bin銝賭誘嚗vim /etc/prifile 瘛餃嚗 PATH=/www/mysql/bin: $PATH
: U7 Z; O) {+ W/ t2 B+ u4 zexport PATH
( G7 I+ D) A# j4 `2 g- n- e 靽摮source /etc/profile 扯嚗 ' T# x: C% U7 j, P8 l+ h
mysql -uroot mysql> SET PASSWORD = PASSWORD('root');* w- M7 B m; R; q
' h* Q3 L+ a/ z( j
霈曄蔭root冽瑞撖銝氳oot 6嚗銝箔舀餈蝔霈輸格唳桀嚗扯嚗 i: A: g$ H4 e* g: C: F
mysql> grant all on *.* to xroot@"%" identified by "xroot; mysql> flush privileges; //湔唳 餈瑕停撱箔銝銝芰冽瑕銝漩root嚗撖銝漩root冽瘀臭誑餈蝔霈輸格唳桀 ,摰鋆php(php-fpm)閫撟嗉交嚗 5 _1 ]6 r; f8 I0 }% ~
#./configure --prefix=/www/php --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-openssl --with-libxml-dir --with-zlib --enable-mbstring --with-mysql=/www/mysql --with-mysqli=/www/mysql/bin/mysql_config --enable-mysqlnd --with-pdo-mysql=/www/mysql --with-gd --with-jpeg-dir --with-png-dir --with-zlib-dir --with-freetype-dir --with-curl 嗅make make install亦閬隞乩鈭嚗 1嚗游nginx嚗臬私hp 餈軏d /www/php/etc/ 桀銝嚗瑁php-fpm.conf.default 銝歉hp-fpm.conf扯/www/php/sbin/php-fpm start 臬私hp嚗fpm 2嚗蝵峰hp.ini 撠摰鋆皞/www/software/php-5.6.14/php.ini-production 瑁郡hp摰鋆桀lib隞嗅允銝 3嚗憒閬摰鋆curl拙霂嚗銝Yconfigure撌脩撣虫嚗嚗餈唳ext/curl桀銝嚗靽霂菔銝撌脩摰鋆鈭curlcurl-devel,嗅嚗 a嚗/www/php/bin/phpize 隞乩嚗銝箔嫣噶臭誑餈銝芰桀/etc/profile嚗 4 _( C* J x3 K. f4 h/ U& x
PATH=/www/php/bin:/www/mysql/bin: $PATH export PATH b,./configure --with-curl --with-php-config=/www/php/bin/php-config銋make make install嚗curl.so隡 /www/php/lib/php/extensions/no-debug-non-zts-20131226桀銝嚗嗅蝻颲php.ini曉送xtension_dirextension靽格孵喳胯 雿輻 yum 瘥頛嫣噶: 隞乩舫撠 centOS 6.x/x86_64: yum install php php-mysql php-fpm php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel 隞乩舫撠 centOS 5.x/i386: rpm -ivh http://mirror.yandex.ru/epel/5/i386/epel-release-5-4.noarch.rpm
& F2 t; A0 G; H- d: M! ~! U( W5 `/ [& z, u7 D& @) m6 n7 a# L9 ]
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm* E8 S, U4 j+ @' b( ?1 h7 Z5 q
Create /etc/yum.repos.d/php-fpm.repo file and add:
5 I( n5 Y; e5 g6 ~* z w m0 ]' Q- [nginx]
9 d/ J* P2 G T) D* W - name=nginx repo z y5 G$ X- j6 ?6 x# L
- baseurl=http://nginx.org/packages/centos/$releasever/$basearch/2 l5 t2 b3 j/ ]* V0 X7 d4 x% N
- gpgcheck=0
' i5 z! r5 V# u - enabled=1
銴鋆賭誨蝣
9 g* Q) I% e. T6 Z9 H+ R( Jyum --enablerepo=remi,remi-test install php-fpm$ q: t) N- S8 C* C; A
: y& K7 k) f0 X U9 G- f9 \5 y) Y
4 H! K8 f& O0 }' R鈭嚗摰鋆svn蝵峰ost嚗commit甇斗郊雿冽臭誨瞞tp嚗嫣噶撘鈭箏撘撟嗅甇乩誨臭誑湔仿餈yum摰鋆喳胯 # rpm -qa subversion //璉交臬西芸蒂鈭雿祉svn
0 n" x* Y/ w- n9 m 嚗yum remove subversion //貉蝸雿祉svn
1 h9 M$ f8 J) E) a# U3 p' B # yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql //摰鋆svn
: K; @; @ [" Q9 w8 o! R9 M 餈# svnserve --version撉霂臬血鋆乩亙停臬撱箔摨撟嗡web桀甇乓 1嚗mkdir -p /www/wwwsvn 甇斗隞嗅允撠望盎vn隞摨. svnadmin create /www/wwwsvn 撱箔摨嚗扯銝餈啣賭誘嚗臭誑圈Xconf, db,format,hooks, locks, README.txt蝑隞塚霂湔銝銝杵VN摨撌脩撱箇嚗ps嚗甇文臭誑餈svnserve -d -r /www/svndata 撱箇svn砍桀嚗嗅svnadmin究vndata桀銝啣遣隞摨嚗 2嚗蝵桃冽瑕撖 肓wwsvn銝餈軏onf隞嗅允嚗X銝銝芣隞塚authz passwd svnserve.conf閬蝻颲 嚗vim passwd //霈曄蔭冽瑕撖 [users]
& z. C. g4 H/ i& f3 _7 ]6 F# harry = harryssecret8 n( Y5 ?, D% ^" C. P0 w
# sally = sallyssecret( Z# F: G E8 |6 \9 V
wangning=wangning
0 O" R2 O: t7 Vyanzi=yanzi
. C% x+ j% F% G$ b/ u$ s- }4 k #vim authz //霈曄蔭
5 z1 k5 ^/ ?. g[/] wangning = rw yanzi = rw # &joe = r # * = #vim svnserve.confanon-access = none
, [. }( |" b5 w6 m7 L& o' ]/ ]( i0 Zauth-access = write
6 |; I s+ K! p7 o### The password-db option controls the location of the password( C/ |8 J: ^6 L. C0 _* E
### database file. Unless you specify a path starting with a /,2 s; r3 I: X1 L+ @1 R
### the file's location is relative to the directory containing
7 \4 ~4 Y9 n/ X7 \5 \. I### this configuration file.
' J& A- u4 v0 P2 t% l### If SASL is enabled (see below), this file will NOT be used.
+ q* g, E7 b! g### Uncomment the line below to use the default password file.
+ i5 M0 m- P5 v L5 w. ^; c, Jpassword-db = passwd- {9 M2 I* b6 ]; b2 n
### The authz-db option controls the location of the authorization
4 Q& e7 j6 m6 j### rules for path-based access control. Unless you specify a path
; l6 B) `8 f; k: U/ c! I### starting with a /, the file's location is relative to the the5 I; x3 y: \% Y9 f/ } r; f
### directory containing this file. If you don't specify an- |$ s5 j) t7 r: `
### authz-db, no path-based access control is done.
/ ]( V3 c% G* L. a! t4 k### Uncomment the line below to use the default authorization file.% N& ]0 H# ?- A! M6 S( B) Q2 D
authz-db = authz( K5 H( c( ^2 S: l, w
### This option specifies the authentication realm of the repository.
. @( v D0 }9 c( j: N6 v$ F### If two repositories have the same authentication realm, they should$ z9 x5 Y1 W- z" c( J
### have the same password database, and vice versa. The default realm
, _6 r! |! X% `! t: k7 M6 k* X### is repository's uuid.1 K# a/ O# `' R0 g8 D2 P
realm = My First Repository: p ?1 V( L9 d/ M/ U
瘜冽嚗銝Z鈭銵V賣蝛箸潦 3,臬典甇┬vn #svnserve -d -r /www/wwwwvn //臬究vn
& u/ b m& X, \ #killall svnserve //甇( o4 H3 S( Q G# q9 }* a4 X
敺臬究vn嚗臭誑典X霂鈭 svn checkout svn://192.1.15.222 --username xxx
4 D% L' _$ Q# H& @ 4,蝵峰ost嚗commit 蝏餈銝餈圈蝵桀嚗svn隞摨啣/www/wwwsvn, 雿眨eb寧桀/www/web,銝方銝臭銝芰桀嚗瘜svn push銝亙停唬具 a嚗擐究erver蝏蝡舫嚗嚗svn co svn://192.1.15.222 /www/web 霈啣撠/www/web桀靽格嫣蛹www:www chown -R www:www /www/web
5 I3 z& l; Y& B- B. S( j3 f; e b, # cd /www/wwwsvn/hooks/,嗅cp post-commit.tmpl post-commit vim post-commit嚗券Z伐 . M0 r1 ]) z4 U- b: g; ?/ Y6 U
export LANG=zh_CN.UTF-8 svn up --username yanzi --password yanzi /www/web/ chown -R www:www /www/web/ 嗅撠曹ok鈭嚗典┬vn commitweb桀銋撖孵隞嗅改 ps:1嚗svn upY摮撖臭霈曄svn冽瑯 2嚗銝├p撠望真pdate嚗git亦閫嚗撠望舀銝芯摨A嚗嗅啣遣鈭銝朋餉頦服嚗瘥甈,鈭斤嗅嚗霈咕銋pull銝銝餈乓究vn真pdate 3 , 鋆摰nginx php-fpm 撠 SElinux 摰冽輻,血蝬脤箇 "Access denied" :$ ?0 I$ M3 e: o* a
#system-config-securitylevel 豢DISABLE敺OK嚗敹璈
- `! i* i! Z9 w瑁setenforce 0撠勗臭誑急踝瑁setenforce 1撠勗臭誑急
vi /etc/sysconfig/selinux SELINUX=enforcing 寞--> SELINUX=disabled ! z& e! n5 P2 P* p
vi /var/log/audit/audit.log ( tail -f /var/log/audit/audit.log) 亦 SElinux 雿憿
7 g" Z+ a' h# A, T |