: http://blog.csdn.net/yanzi1225627/article/details/49123659! a0 @4 o- ^2 {+ n8 F+ p
- R- m8 ]+ ^, ^& M格嚗剖遣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
/ W: C( M' m, y 湔亙敺摰鋆靘韏摰鋆摰 嗅銝頧緯ginx 嚗mysql嚗 php皞隞嚗 舐 google search engine 撠啁 撠餈銝隞緣ar.gz隞園餈scp賭誘撘唳∪其/www/software桀銝 鈭嚗摰鋆nginx閫蝻拇隞塚嗅餈迸ginx-1.8.0嚗颲亙賭誘嚗 ./configure --user=www --group=www --prefix=/www/nginx4 F/ D6 x( t1 @( b+ B7 R/ n7 z
嗅make嚗make install撠勗鋆摰瘥鈭 摰鋆摰蝚砌隞嗡嚗撱滴ww冽瑕蝏嚗血隡http://blog.itblood.com/nginx-emerg-getpwnam-www-failed.html 霂胯 扯嚗 /usr/sbin/groupadd -f www
/ k) R- z7 A( q" r" j9 y/ B5 ^/usr/sbin/useradd M -s /sbin/nologin -g www www //-M 銝撱箇雿輻刻桅 nginx賭誘/www/nginx/sbin/銝嚗瑁/etc/init.d/銝隞踝乩亥挽蝵桀箏臬具 chmod 755 /etc/init.d/nginx
' O' G( Q6 h& z8 ?7 ]) T2 \% l% T8 y
chkconfig --add nginx
, j% g3 p; G( P3 E& d% k- U- o
' W; Z: u+ i6 h1 F2 R; h. n! C$ ychkconfig nginx on
9 }2 f C) W' a: K+ ?& x 嗅 cd /etc/rc.d/init.d/ 桀銝啣遣nginx嚗摰孵銝嚗 #!/bin/bash
9 j ^# o' M, L# nginx Startup script for the Nginx HTTP Server; }% Z0 i: [% t$ N4 s% V& Y
# it is v.0.0.2 version.9 m$ i4 T' {3 \0 ?
# chkconfig: - 85 15- I/ k) _9 _+ @+ T* {+ s' f
# description: Nginx is a high-performance web and proxy server.
, p$ v7 x' I' A: }- R6 f- H# It has a lot of features, but it's not for everyone.0 d2 C8 I6 l/ t% p
# processname: nginx
8 H+ V5 [1 z0 V( D" [# pidfile: /var/run/nginx.pid4 I) `) A1 l8 L) j8 ~. M
# config: /usr/local/nginx/conf/nginx.conf
* j+ L4 |6 R: s0 c N6 S4 T6 knginxd=/www/nginx/sbin/nginx
6 |1 q" u& l# E3 a/ B6 Gnginx_config=/www/nginx/conf/nginx.conf
# o) g- P( n e9 q. O+ snginx_pid=/www/nginx/logs/nginx.pid: R0 U+ Y- O" a3 y0 |
RETVAL=03 N. ?( }+ ~7 y$ Y; ^7 }. S
prog="nginx", |; P) ^" \) l0 x
# Source function library.
; l) ^9 E# i0 S; L0 X, s; H& q. /etc/rc.d/init.d/functions V! f! \. v+ x+ n" C9 @/ L
# Source networking configuration.: T8 ~, n4 l; O) K$ v! Z1 n
. /etc/sysconfig/network! @- w7 ?) {* \* @% U0 ?
# Check that networking is up.
7 v# _$ @4 _* j[ ${NETWORKING} = "no" ] && exit 0
7 f9 E4 c! E$ v8 ^5 V4 J# G: k) L[ -x $nginxd ] || exit 0
' H/ ~& y5 o6 H' E- Y$ y# Start nginx daemons functions.
9 }) y N& d Y3 `$ tstart() {
+ i" x. b; O4 k, v; v9 ?0 B7 Iif [ -e $nginx_pid ];then
4 v1 X2 g( o& C1 Y& d5 b, t+ zecho "nginx already running...."% H% |# d' _+ F P9 w4 P. P
exit 1
5 S8 ?7 O U( |. D! M# c. m: T! Qfi! Q, { ?% E) p( u& n! I
echo -n $"Starting $prog: ": s* _$ U, }6 s
daemon $nginxd -c ${nginx_config}3 c( ^0 E) c$ R
RETVAL=$?- j6 L( A! D1 z* ~+ X ~% F& o+ P
echo `- I( h: d; Q
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
& u% N* X2 o- p2 y. h( breturn $RETVAL
& g6 o9 p1 Z/ y5 B}: \) j$ x, {) j& P- J
# Stop nginx daemons functions.$ b% B0 X6 }0 B/ T; P
stop() {
8 ~1 Q: g5 v' T& Z: Mecho -n $"Stopping $prog: "8 N4 A. Q( c, I3 l
killproc $nginxd+ G8 G/ J$ L/ p( r- ]# Q$ ]1 d
RETVAL=$?
. y6 o7 ?% x. L& d. G+ J0 uecho
7 _: ]- V7 o' J: n[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /www/nginx/logs/nginx.pid
. A3 \& [) q3 ~, j4 [6 s$ F0 V' j}
% M" T8 R, m# f* d! X$ wreload() {% ~( }! s1 X+ n+ A) j2 d
echo -n $"Reloading $prog: "( J- p# s7 b F. f" P
#kill -HUP `cat ${nginx_pid}`
' n2 }) a' o3 G& ^ e# vkillproc $nginxd -HUP
) [9 h" w4 G* _RETVAL=$?) }0 e- g8 {" {# w
echo/ l% k' p9 Q+ e0 }& o9 U. }
}
1 g7 F2 z! L E; d; S9 v4 M# See how we were called., n2 E6 ~# \' I( [
case "$1" in
/ |! W& \& g7 J: i- O/ hstart)
( E% Y6 {+ }, t% k& ?start, p i0 P# F( G
;;0 x' z+ h- [4 A+ a( V
stop) _2 [* C. [$ \0 a' Y9 @4 `7 m
stop: H8 J3 k. u8 c, v, t4 d/ S% a
;;
+ ]- k' R/ Q7 p& ]reload)
# W, c5 P5 E' m0 h% Preload
8 t Y; L6 b+ |5 y3 o5 e;;( F4 f7 {) g* @/ V! b+ L
restart). e b; T1 ~3 Y
stop! ?: B9 m; `7 h9 ?3 v
start
9 O, R/ o7 F6 B( u- S. Z;;
7 k @. _& |1 {5 T# u; ustatus)9 h" q+ g7 t; Q: W* e& P# G f8 d
status $prog( g. V: {6 Q/ W* H$ f0 E, p/ _" R6 p
RETVAL=$?
! l% W2 \3 l# q$ ?7 a: u;;) W& T; m N0 m3 h) h1 h" n( d! g
*)/ D+ b6 q w6 T, ?) ]# T5 R6 h
echo $"Usage: $prog {start|stop|restart|reload|status|help}", V$ [6 Y- l: B% |
exit 1
) F ?/ ] t6 x$ m1 \9 L4 n, O9 X/ Mesac
8 W5 V; r% [8 G( A zexit $RETVAL9 C: i5 Z5 _( p5 Z B6 S2 ]! O
% V5 W; V" d" @5 w
瘜冽嚗憒nginx摰鋆頝臬銝臬/www/nginx銝嚗敶靽格孵停憟賬 6 q( J, r2 r# A U% R5 E- N
chmod 775 /etc/rc.d/init.d/nginx #韏鈭扯chkconfig nginx on #霈曄蔭撘箏臬/etc/rc.d/init.d/nginx restart service nginx restart單迨nginx摰鋆撠得k鈭嚗雿銝支葵桅嚗4 f0 s b0 A+ E
1嚗舀湔寥霈已eb寧桀/www/web桅 2嚗臭php游嚗暺霈孓ginx臭霈小hp敺 撖嫣1嚗nginx暺霈已eb寧桀 nginx摰鋆頝臬銝html隞嗅允嚗隞祆隞孵/www/web桀銝 餈/www/nginx/conf桀銝嚗vim nginx.conf嚗撠
% i' p `. |2 W" V location / {
. Y+ Q( t+ v1 k& l4 V5 j& |8 C8 E root html;
+ s1 h5 Q) t# k4 Q4 ]) G index index.php index.html index.htm;9 l" N4 p$ _( `& ?" I3 X
}
+ x4 v/ q9 p+ b/ e! i! H" P; ^" s靽格嫣蛹嚗8 H; R/ [- |6 `. O8 o
1 e* L5 C: S6 ~2 `# z# f
location / { root /www/web; index index.html index.php; } 瘜冽嚗憓鈭撖隘ndex.php霂怒撠 + e) ?! z2 l# x
location ~ \.php$ {2 @6 i# f4 m/ I# V6 ~- b
root html;
7 t3 a" @+ r' R2 B/ ^8 M A fastcgi_pass 127.0.0.1:9000;8 j/ A( E7 S ~9 U% T3 \ k' j
fastcgi_index index.php;& f4 b. F/ K. T/ A; m4 d! u; l
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
. G* O% ^" e( ]* u2 e: _ include fastcgi_params;9 F9 `6 A( d0 }! s; J4 w' h, ?
}
% J* S" I- R% S, b- ]+ ?靽格嫣蛹嚗, V' \* e; E* B: g' k7 G' W
# C* F: U& V, E 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閫蝻拙僎餈唳桀嚗扯嚗 . n) s0 W; }5 g
#cmake -DCMAKE_INSTALL_PREFIX=/www/mysql 銋make make install摰鋆摰鋆摰瘥閬隞乩銝芯嚗1嚗璉/etc/銝臬血皂y.conf, 憒霂餈mv賭誘孵銝 my.cnf.backup ps嚗甇斗郊撉日撣賊閬嚗嚗嚗 2嚗撱榦ysql冽瑕蝏 #/usr/sbin/groupadd mysql( F8 U. b \) D+ X" |& f
6 o/ ?4 \7 [% r( `' R1 @& z. ~- ?
#/usr/sbin/useradd -g mysql mysql 憓mysql冽瑕蝏
/ Y) H7 S9 M" i( c5 w) [* N) ? 扯 cat /etc/passwd 亦冽瑕銵6 ~. r# z! G/ D5 G- Y
cat /etc/group 亦冽瑞銵 chown -R mysql:mysql /www/mysql靽格雋ysql摰鋆桀
1 _, _4 d% b0 o, _ 3嚗餈/www/mysql,撱箇頂蝏芸蒂唳桀 scripts/mysql_install_db --basedir=/www/mysql --datadir=/www/mysql/data --user=mysql
" q/ x M! l9 k( z' x! | 4嚗瘛餃∴臬決ySQL cp support-files/mysql.server /etc/init.d/mysql
- D ]4 j, a4 pchkconfig mysql on. ]% ?% B4 q- ]7 d
service mysql start --臬決ySQL" {# ^" [( q( s0 m, K" ]6 U
5,霈曄蔭root撖 銝箔霈拐遙雿唳寥質賜皂ysql/bin銝賭誘嚗vim /etc/prifile 瘛餃嚗 PATH=/www/mysql/bin: $PATH2 L1 R1 V4 I1 i
export PATH
+ Y3 z$ r8 m) h7 c% n s1 d 靽摮source /etc/profile 扯嚗
( y( [+ |4 z) n ^- umysql -uroot mysql> SET PASSWORD = PASSWORD('root');; @2 [3 |+ p6 Y5 @9 h$ ~8 D) j
" v% S. r9 G( o霈曄蔭root冽瑞撖銝氳oot 6嚗銝箔舀餈蝔霈輸格唳桀嚗扯嚗 1 Q! k- Z! j6 D: @5 |% r$ l8 f
mysql> grant all on *.* to xroot@"%" identified by "xroot; mysql> flush privileges; //湔唳 餈瑕停撱箔銝銝芰冽瑕銝漩root嚗撖銝漩root冽瘀臭誑餈蝔霈輸格唳桀 ,摰鋆php(php-fpm)閫撟嗉交嚗
. A/ l# Y' K: q9 b#./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嚗
0 U+ T; x' ?% jPATH=/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.rpm1 {- a5 h, Y) ]; C B
, d) b7 ?% @% h. ^$ j ]rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm$ Z5 n! _$ p$ n5 z, u
Create /etc/yum.repos.d/php-fpm.repo file and add:
! k) Q3 v$ N) ^( t3 m% o3 N- [nginx]
3 N! z( h" R$ @ - name=nginx repo
4 F: M3 X9 l/ n - baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
1 x1 f( f. k/ p% T s3 m - gpgcheck=0
7 X' T& P2 I& u; v! J [5 ~/ r. | - enabled=1
銴鋆賭誨蝣
. m. l# d+ k& e" Y+ I6 k* f/ yyum --enablerepo=remi,remi-test install php-fpm6 T, X3 W5 H0 Y; g
1 @. ?/ |1 \2 d% c2 w
0 t# k& {1 \. A) v. k" q5 u* Q
鈭嚗摰鋆svn蝵峰ost嚗commit甇斗郊雿冽臭誨瞞tp嚗嫣噶撘鈭箏撘撟嗅甇乩誨臭誑湔仿餈yum摰鋆喳胯 # rpm -qa subversion //璉交臬西芸蒂鈭雿祉svn
4 q% [9 h1 C( D& p6 Y, Z+ g 嚗yum remove subversion //貉蝸雿祉svn4 @6 h+ G) |; l5 i
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql //摰鋆svn
9 @& f. ]& Y! W$ [ 餈# 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]3 c" C+ W' A- T4 h8 j: ~/ |
# harry = harryssecret6 e9 e- I O$ h, H( R4 S% w
# sally = sallyssecret
% I4 Q. C7 H7 Y5 l5 w5 wwangning=wangning' H' C! T; P- E7 t5 Q
yanzi=yanzi9 c1 s, B. Z) Q+ d1 Y x! \! M
#vim authz //霈曄蔭
5 T3 Q; i# h/ ]8 U( K+ Q[/] wangning = rw yanzi = rw # &joe = r # * = #vim svnserve.confanon-access = none2 Y4 H3 _2 r1 q* P, [( Q
auth-access = write
" ~( \1 A. o1 }- p; C" O o( C4 Z### The password-db option controls the location of the password
6 a4 e) P# j( ?! j### database file. Unless you specify a path starting with a /,9 J. T y$ h0 U; [
### the file's location is relative to the directory containing6 U; y' S6 t- `+ x2 _) w
### this configuration file.; z) u! F. H0 {6 d( e: ~
### If SASL is enabled (see below), this file will NOT be used.
! R D( n* H5 u& w) u$ l### Uncomment the line below to use the default password file.
8 {1 v8 k( y6 X* k. S4 N; ~password-db = passwd$ t& w) Z" a! g4 M
### The authz-db option controls the location of the authorization
; f7 B k- ?7 e v5 S+ ?/ v### rules for path-based access control. Unless you specify a path+ {6 t% B9 _: l! |7 b
### starting with a /, the file's location is relative to the the; O* Q; K% t* P1 b4 s" w1 |
### directory containing this file. If you don't specify an3 A8 r4 k2 i$ x5 d& O+ |5 ~
### authz-db, no path-based access control is done.0 S( [- G5 t0 y4 k9 e: y, h
### Uncomment the line below to use the default authorization file.
; }& g# [$ v ^$ Pauthz-db = authz! _ }7 N m& e. {& W7 e4 U) k& {4 c
### This option specifies the authentication realm of the repository.
/ }) n/ n$ i6 I( v* r r& ~4 Y### If two repositories have the same authentication realm, they should
0 ]4 L1 {+ H0 _ ~9 q### have the same password database, and vice versa. The default realm
* k: d1 r; z( j& U$ Z+ J5 Z# W8 Q### is repository's uuid.$ ~( U, X0 L: Z5 L+ I2 i
realm = My First Repository
6 ? N# g2 e; v0 E. v5 t4 } 瘜冽嚗銝Z鈭銵V賣蝛箸潦 3,臬典甇┬vn #svnserve -d -r /www/wwwwvn //臬究vn. h% a; X- c4 n+ |
#killall svnserve //甇
, o9 N q6 I9 B' Z$ t2 g$ |5 f9 I 敺臬究vn嚗臭誑典X霂鈭 svn checkout svn://192.1.15.222 --username xxx( S, A: l0 V8 J0 l6 i: I& X9 z6 ]2 U
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
. w Z. t* [) g3 F2 {4 Y' P- U b, # cd /www/wwwsvn/hooks/,嗅cp post-commit.tmpl post-commit vim post-commit嚗券Z伐 5 [ a H* y7 y5 @! 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" :9 S6 a- q; |1 l& N! w
#system-config-securitylevel 豢DISABLE敺OK嚗敹璈 u+ B6 U3 v5 L% J+ {
瑁setenforce 0撠勗臭誑急踝瑁setenforce 1撠勗臭誑急 vi /etc/sysconfig/selinux SELINUX=enforcing 寞--> SELINUX=disabled 8 y' W+ b2 U; y' L: w( J+ ^
vi /var/log/audit/audit.log ( tail -f /var/log/audit/audit.log) 亦 SElinux 雿憿
2 a5 f& n) Q6 B% C6 }( A4 d+ p |