: http://blog.csdn.net/yanzi1225627/article/details/49123659+ h$ R5 \+ S8 C0 d& A6 X. [: \* G
$ V1 m% z) @+ T* y8 c5 r9 X ^格嚗剖遣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
" ~' L7 g4 J" Q" | 湔亙敺摰鋆靘韏摰鋆摰 嗅銝頧緯ginx 嚗mysql嚗 php皞隞嚗 舐 google search engine 撠啁 撠餈銝隞緣ar.gz隞園餈scp賭誘撘唳∪其/www/software桀銝 鈭嚗摰鋆nginx閫蝻拇隞塚嗅餈迸ginx-1.8.0嚗颲亙賭誘嚗 ./configure --user=www --group=www --prefix=/www/nginx
* V- ~% K2 T6 y 嗅make嚗make install撠勗鋆摰瘥鈭 摰鋆摰蝚砌隞嗡嚗撱滴ww冽瑕蝏嚗血隡http://blog.itblood.com/nginx-emerg-getpwnam-www-failed.html 霂胯 扯嚗 /usr/sbin/groupadd -f www8 q$ ^9 z X5 r$ g7 F: \+ r
/usr/sbin/useradd M -s /sbin/nologin -g www www //-M 銝撱箇雿輻刻桅 nginx賭誘/www/nginx/sbin/銝嚗瑁/etc/init.d/銝隞踝乩亥挽蝵桀箏臬具 chmod 755 /etc/init.d/nginx6 N8 _$ N7 T0 O5 L& j
( i7 H# _2 n% Ochkconfig --add nginx" E `0 Z$ Z1 [- O! p6 k$ O) z
2 x X: j K. R! r4 r
chkconfig nginx on$ [3 {+ ]& v- c8 S# U
嗅 cd /etc/rc.d/init.d/ 桀銝啣遣nginx嚗摰孵銝嚗 #!/bin/bash$ B# l) R9 q) o5 Y0 ^" x) p( c' z
# nginx Startup script for the Nginx HTTP Server' B0 k; y" T% M
# it is v.0.0.2 version.
3 t' i# x' B( A1 t2 j" H) c# chkconfig: - 85 15
% K2 P5 c U( V6 v) n$ Z" J% e# description: Nginx is a high-performance web and proxy server.
: b0 E% e& i! o% H, T% [# It has a lot of features, but it's not for everyone.
R& E/ C5 {& w. e# processname: nginx
- M8 F% @: S4 r* m: X0 [; f# pidfile: /var/run/nginx.pid
6 o( J& ]$ T9 R! M/ m# config: /usr/local/nginx/conf/nginx.conf
5 a8 _6 n6 y4 Vnginxd=/www/nginx/sbin/nginx4 B! U) u/ a0 _, @
nginx_config=/www/nginx/conf/nginx.conf
; {( ^9 Y% ^( P& P8 J( z/ Gnginx_pid=/www/nginx/logs/nginx.pid
6 ?) `) n: |" _, n* l+ DRETVAL=0
5 u2 D" A% U; d: G3 r! ]% s$ pprog="nginx" O$ Q$ a& |$ p% Q3 G8 H, C4 f* V
# Source function library.
7 E1 s( \& l& G& i9 T& i. /etc/rc.d/init.d/functions
0 R1 x1 u d8 A' N! ~% o# Source networking configuration.
5 ~3 x/ o' S2 g* i# a2 i- [( I. /etc/sysconfig/network3 p1 \/ V8 t. f; l; O
# Check that networking is up.
6 A6 t3 v$ U- M( \/ \[ ${NETWORKING} = "no" ] && exit 0
) _2 L r$ W1 z4 t" ]' k9 ?[ -x $nginxd ] || exit 0" q+ l6 |% C& V9 r% d) t% F1 ]
# Start nginx daemons functions.
7 F0 f7 t" L# j- U( k( a; r7 V+ Estart() {. f1 x5 j/ k5 H1 Y
if [ -e $nginx_pid ];then
) V9 l: g @% G1 B* @. p) fecho "nginx already running....": A1 t" G% L; S. U8 R5 x3 d" [& X
exit 1
1 b" q0 o6 n [fi" P4 I% z5 ^: Z
echo -n $"Starting $prog: "
5 E4 e4 m: K9 ?7 a5 tdaemon $nginxd -c ${nginx_config}
& c1 }# l; [" |0 r+ LRETVAL=$?+ b8 Q/ s5 K$ R- k! q* Y, W1 T
echo7 ]7 m/ s4 ~ ^8 r
[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx
2 q5 X5 l% Z8 k! e# ~, Vreturn $RETVAL
3 n) w- i5 I& o0 W t}
: N8 n; _4 ~4 h) ]# Stop nginx daemons functions.
6 y+ K, ?& u9 v; ^1 N% ?stop() {
- B: @% V" _9 f! _! Jecho -n $"Stopping $prog: "
. P( i0 @/ V& F3 a: Ekillproc $nginxd
, c0 g1 N6 }) v- t+ ~) `8 vRETVAL=$?
# s' f5 @, Q8 E8 p1 ?echo9 e( D4 j$ c4 K
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /www/nginx/logs/nginx.pid: _; r E& q$ H$ {
}* V! X+ [' \, o) Z
reload() {
: @: g' w* l {* X- }8 H7 aecho -n $"Reloading $prog: "
% ^$ u3 n/ N: u; R- N#kill -HUP `cat ${nginx_pid}`7 C+ @8 P- k- x" w/ J. @! H
killproc $nginxd -HUP$ W7 }: y* z# N% k7 E$ q- V
RETVAL=$?
6 u% `: ^( e" a% h! `. oecho! C+ `% H2 |& @& E+ o0 z* a' d% d1 j
}
; l x5 ]- d5 n& k- i4 Q6 _# See how we were called." E* [; q8 r% o( Z/ F# h
case "$1" in
9 G# J4 P: `+ f" I Mstart)* P H0 E, x7 D
start. ~1 w0 F7 V4 B( a$ @
;;: ~/ C2 ~% R. n& z
stop)7 y# m7 K. B2 X% G* F/ [5 S! y
stop
! ]: G5 t' V2 f0 ]0 a/ ?;;6 z; t8 z* y, T
reload)
# E; M# w4 ?2 ~) M9 mreload: J: f. i9 E1 K T
;;
; k# u7 Q" P, j, z j& a& _) Vrestart)1 I5 U& z% \8 k/ |9 I. v* i
stop
( p: B7 H! @- T3 }start
; l; H+ ^! {& ^( E P;;
' q9 y- L# `* T- pstatus)/ x8 p9 i& ]) S1 l( S
status $prog8 W* N, T0 ]' a' [+ K
RETVAL=$?
) d! M0 Y* m4 p5 \;;
" ~2 }6 T) L9 l: K% k5 e) H*)9 Y$ ]/ B) d5 E9 M2 C) P
echo $"Usage: $prog {start|stop|restart|reload|status|help}") f9 t; T4 g% y
exit 1+ [. u* \3 p6 @/ |8 K
esac
+ y0 C) p8 k& w% n" \exit $RETVAL
2 |4 r# X7 U6 j
: L) z5 W/ _: B: u$ y 瘜冽嚗憒nginx摰鋆頝臬銝臬/www/nginx銝嚗敶靽格孵停憟賬 9 A w3 W: H5 U6 e9 x( ?$ [
chmod 775 /etc/rc.d/init.d/nginx #韏鈭扯chkconfig nginx on #霈曄蔭撘箏臬/etc/rc.d/init.d/nginx restart service nginx restart單迨nginx摰鋆撠得k鈭嚗雿銝支葵桅嚗) ]* ~ X9 k K/ U
1嚗舀湔寥霈已eb寧桀/www/web桅 2嚗臭php游嚗暺霈孓ginx臭霈小hp敺 撖嫣1嚗nginx暺霈已eb寧桀 nginx摰鋆頝臬銝html隞嗅允嚗隞祆隞孵/www/web桀銝 餈/www/nginx/conf桀銝嚗vim nginx.conf嚗撠
6 u2 h- _% x q4 E: t location / {
! a) b2 b7 m% v) X6 t: W root html;
V/ `- `- v& c1 j' ` index index.php index.html index.htm;
& c$ c! o S0 n' e& D7 F }: I, K7 B* k9 b6 e
靽格嫣蛹嚗. O$ J9 d! w; y8 l4 x8 g" D6 e$ E
+ [: A$ h7 Q1 u' m) _7 U& ]3 ]
location / { root /www/web; index index.html index.php; } 瘜冽嚗憓鈭撖隘ndex.php霂怒撠 , M8 y) r5 { M9 s+ j! d8 q
location ~ \.php$ {
/ x* @" R4 z- H! d* B9 l1 [5 f6 m root html;
- ?# t8 a( w7 ? fastcgi_pass 127.0.0.1:9000;
) B/ i2 A8 g$ `+ |! ? @3 x fastcgi_index index.php;( A4 C6 h: D Z7 i# F
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
/ h6 ~- H" o! e! t( r include fastcgi_params;
7 W; i" b% _. E( x# v }
9 @: {& e3 t( g2 X7 p& I7 y靽格嫣蛹嚗
( J1 V. b0 w$ n& l( O' w' X8 _* W( q M: _) t
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閫蝻拙僎餈唳桀嚗扯嚗 / j, K* X: ^, _& ]
#cmake -DCMAKE_INSTALL_PREFIX=/www/mysql 銋make make install摰鋆摰鋆摰瘥閬隞乩銝芯嚗1嚗璉/etc/銝臬血皂y.conf, 憒霂餈mv賭誘孵銝 my.cnf.backup ps嚗甇斗郊撉日撣賊閬嚗嚗嚗 2嚗撱榦ysql冽瑕蝏 #/usr/sbin/groupadd mysql
4 |( o" @# H2 v8 t( t/ o) ~" t+ K$ y7 c5 r8 Y8 N- `
#/usr/sbin/useradd -g mysql mysql 憓mysql冽瑕蝏
/ H5 l! N0 l. u: x7 C 扯 cat /etc/passwd 亦冽瑕銵5 _7 g5 C6 W$ r8 s; ]) x. s8 Y; C) ]4 e
cat /etc/group 亦冽瑞銵 chown -R mysql:mysql /www/mysql靽格雋ysql摰鋆桀. ^' x2 D+ T9 l4 J7 \! h
3嚗餈/www/mysql,撱箇頂蝏芸蒂唳桀 scripts/mysql_install_db --basedir=/www/mysql --datadir=/www/mysql/data --user=mysql
4 k Q( w; e+ ?7 J0 E 4嚗瘛餃∴臬決ySQL cp support-files/mysql.server /etc/init.d/mysql
& K% A4 ^/ g- N) Schkconfig mysql on7 V* @' D8 O/ O, z& m; @' \ o O8 `
service mysql start --臬決ySQL
+ z2 g; u- g0 X9 p2 |$ e 5,霈曄蔭root撖 銝箔霈拐遙雿唳寥質賜皂ysql/bin銝賭誘嚗vim /etc/prifile 瘛餃嚗 PATH=/www/mysql/bin: $PATH
- _/ g" D9 C9 d. l: |* y6 [7 `6 P% hexport PATH$ L/ L" b+ s t. E& W
靽摮source /etc/profile 扯嚗
* V+ F# r' g: @" j$ y0 A/ |mysql -uroot mysql> SET PASSWORD = PASSWORD('root');
) o% t7 y, C8 p( x7 h+ b
* }: e0 r: p) |/ K8 z& x: `霈曄蔭root冽瑞撖銝氳oot 6嚗銝箔舀餈蝔霈輸格唳桀嚗扯嚗
/ u, n- }8 {; Y X. f, d1 Jmysql> grant all on *.* to xroot@"%" identified by "xroot; mysql> flush privileges; //湔唳 餈瑕停撱箔銝銝芰冽瑕銝漩root嚗撖銝漩root冽瘀臭誑餈蝔霈輸格唳桀 ,摰鋆php(php-fpm)閫撟嗉交嚗 ! X& x' ?! H' I5 y3 t
#./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嚗
9 I2 z S8 G+ I. K- e, g/ p0 _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
; E$ ^( U0 I( F! T: o0 A1 J: k/ Q( k2 F. ~4 X% S9 X4 A" D. y% P
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm+ I. N D) R9 G; R! t$ e% x+ X
Create /etc/yum.repos.d/php-fpm.repo file and add:
6 i# [! x/ X' P. N- [nginx]
% A9 L% w# P& Y4 c - name=nginx repo$ l8 V$ [. k- {! ?& y. d2 `# b) |5 l
- baseurl=http://nginx.org/packages/centos/$releasever/$basearch/3 m/ E1 @* ?% f4 ~2 N
- gpgcheck=0
- _6 U# W7 k( v+ H - enabled=1
銴鋆賭誨蝣 * a- K( c$ V6 t* l# |) B
yum --enablerepo=remi,remi-test install php-fpm
6 q7 s- |3 R W# s' P! n, T8 I" a5 c3 O1 [% ~9 m0 f
1 Z! ~0 E0 ?* s* w鈭嚗摰鋆svn蝵峰ost嚗commit甇斗郊雿冽臭誨瞞tp嚗嫣噶撘鈭箏撘撟嗅甇乩誨臭誑湔仿餈yum摰鋆喳胯 # rpm -qa subversion //璉交臬西芸蒂鈭雿祉svn
* L" m! d2 f6 I! U3 ` 嚗yum remove subversion //貉蝸雿祉svn
: l9 x% R. @) l$ w# ~/ h # yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql //摰鋆svn! F% `- Y1 }& a9 z% }! P- F( _
餈# 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]
! e# G& Q/ A% k! [+ W. o) d# harry = harryssecret) J) s$ Z, b( _. J" e- x! {5 c: K: O
# sally = sallyssecret
4 {; F5 m9 U( ywangning=wangning) s- h2 p7 ^9 V* T4 `
yanzi=yanzi6 }, J3 K/ o8 W d! y8 G {
#vim authz //霈曄蔭
9 X2 S1 W: m/ A/ B! v[/] wangning = rw yanzi = rw # &joe = r # * = #vim svnserve.confanon-access = none, u7 f+ k8 n7 P3 _7 l
auth-access = write
1 L! ^ V' K2 ?9 z0 R### The password-db option controls the location of the password0 h5 K: D# @( b; q. j7 y
### database file. Unless you specify a path starting with a /,
9 G! l( D- g9 c& ]### the file's location is relative to the directory containing% a7 N4 u, f/ I* A$ j9 w9 m8 D
### this configuration file./ c! k" H% t8 a* E
### If SASL is enabled (see below), this file will NOT be used.
) E5 G) T# \! z4 Q### Uncomment the line below to use the default password file.2 _3 S( G# b. S/ A' _, w, X1 K
password-db = passwd2 P, z! \% e, u
### The authz-db option controls the location of the authorization. k4 R2 R# x8 Q
### rules for path-based access control. Unless you specify a path" ^9 ^+ `/ @+ H4 W6 }0 g, O
### starting with a /, the file's location is relative to the the
! W7 {6 U* R$ j" l- i$ p### directory containing this file. If you don't specify an
: F% V3 v8 o1 E1 h) M& `' v### authz-db, no path-based access control is done.
- O2 d# o% @' G/ c, j6 n### Uncomment the line below to use the default authorization file./ C. C, B( @! z. L
authz-db = authz, Q0 {4 n2 A, K5 h+ {4 ]- \
### This option specifies the authentication realm of the repository.
# K+ Z0 p8 c2 s. o! C/ O### If two repositories have the same authentication realm, they should
! R7 I7 S3 G6 _3 E### have the same password database, and vice versa. The default realm# s) Q8 z. P0 ?% Z
### is repository's uuid.
8 A3 {) T& l/ s0 v* Zrealm = My First Repository/ L" ?- }6 e( M. |5 o: g3 x8 w
瘜冽嚗銝Z鈭銵V賣蝛箸潦 3,臬典甇┬vn #svnserve -d -r /www/wwwwvn //臬究vn% X" @% n8 J. Z
#killall svnserve //甇
& M/ u7 w/ ?4 m+ J& [) B, Z 敺臬究vn嚗臭誑典X霂鈭 svn checkout svn://192.1.15.222 --username xxx& q" U3 q7 Q9 }# y3 m
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 [' L# j: u& s5 Q5 w |2 p b, # cd /www/wwwsvn/hooks/,嗅cp post-commit.tmpl post-commit vim post-commit嚗券Z伐 + b" [+ P# @" M5 K4 v5 G+ \( O
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" :2 M: \7 W* G" c8 I: n( p9 R
#system-config-securitylevel 豢DISABLE敺OK嚗敹璈
' T2 S% A% A+ ~1 s, N* H* |4 i. R瑁setenforce 0撠勗臭誑急踝瑁setenforce 1撠勗臭誑急
vi /etc/sysconfig/selinux SELINUX=enforcing 寞--> SELINUX=disabled : Q# [, d' [* N) f* c
vi /var/log/audit/audit.log ( tail -f /var/log/audit/audit.log) 亦 SElinux 雿憿
! Z$ z8 X2 k- D2 c, t8 W |