: http://blog.csdn.net/yanzi1225627/article/details/49123659
; }% u$ t' h5 g- Q- I3 q
! r4 H. @- j1 [2 K格嚗剖遣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
. @" q4 P9 T6 r1 t6 p* @ 湔亙敺摰鋆靘韏摰鋆摰 嗅銝頧緯ginx 嚗mysql嚗 php皞隞嚗 舐 google search engine 撠啁 撠餈銝隞緣ar.gz隞園餈scp賭誘撘唳∪其/www/software桀銝 鈭嚗摰鋆nginx閫蝻拇隞塚嗅餈迸ginx-1.8.0嚗颲亙賭誘嚗 ./configure --user=www --group=www --prefix=/www/nginx
' u" {( g' P) a 嗅make嚗make install撠勗鋆摰瘥鈭 摰鋆摰蝚砌隞嗡嚗撱滴ww冽瑕蝏嚗血隡http://blog.itblood.com/nginx-emerg-getpwnam-www-failed.html 霂胯 扯嚗 /usr/sbin/groupadd -f www5 w' E3 ~5 d+ m% ]6 K; {0 A! b
/usr/sbin/useradd M -s /sbin/nologin -g www www //-M 銝撱箇雿輻刻桅 nginx賭誘/www/nginx/sbin/銝嚗瑁/etc/init.d/銝隞踝乩亥挽蝵桀箏臬具 chmod 755 /etc/init.d/nginx
3 d K6 n. p! @$ }
# ]5 Z5 ^7 O4 K w3 `" f: @9 Qchkconfig --add nginx7 m# |, d _% I% O3 x
! l' a" k8 s, J: x1 S" |
chkconfig nginx on
; \) I& {0 `7 c/ u2 b9 h 嗅 cd /etc/rc.d/init.d/ 桀銝啣遣nginx嚗摰孵銝嚗 #!/bin/bash
' C7 `) c- [; C$ W- E j# nginx Startup script for the Nginx HTTP Server
( ^: a$ \. m d) H4 E# it is v.0.0.2 version.
) `0 ~9 D( h3 Y! }) r3 k! f# chkconfig: - 85 15
+ T% j. w6 u( t# description: Nginx is a high-performance web and proxy server.8 q$ h" M( r- @/ i
# It has a lot of features, but it's not for everyone.
) }/ q: h, F1 Q( C$ y# processname: nginx
3 A! t7 m- ?. v$ U# pidfile: /var/run/nginx.pid
2 t V" F5 ]/ r, X/ A9 Y# config: /usr/local/nginx/conf/nginx.conf
2 B! M; }, h. D' Q- q$ xnginxd=/www/nginx/sbin/nginx
8 D$ w5 s; Y+ G) Z# [, {; pnginx_config=/www/nginx/conf/nginx.conf
' K+ \9 L1 A0 e0 f- _% h* znginx_pid=/www/nginx/logs/nginx.pid
* U9 L3 r/ [9 {$ j( P6 H6 lRETVAL=0
5 M) A! v2 z8 G7 V$ J: hprog="nginx"
. {' ?/ A2 Z7 {! v& [# Source function library. `$ E v! n5 U9 I
. /etc/rc.d/init.d/functions
6 [2 `: t) L! s/ U% t' r) F, M# Source networking configuration.5 }. T) X, V& @- n# {- |$ q3 ~
. /etc/sysconfig/network( Q1 A }$ F2 h
# Check that networking is up.
' @1 V8 B0 p* [" q g; |/ `! j/ f. z[ ${NETWORKING} = "no" ] && exit 0
5 G7 {' J) b y7 Y8 ?3 |- q7 |% s[ -x $nginxd ] || exit 0
7 F7 C- T. P2 x6 ?* V* y! L3 @# Start nginx daemons functions.. I9 G. R6 B6 D3 w
start() {
6 Q9 G6 ^0 H* ?3 u: lif [ -e $nginx_pid ];then7 G: S7 r' G: C) n% T
echo "nginx already running...."8 L# Y! s7 R+ I* X# m
exit 1
' V, P% R* J: Bfi8 ?: `+ e% g7 ~7 h7 E
echo -n $"Starting $prog: "% N1 |; l. W$ I, z3 v
daemon $nginxd -c ${nginx_config}. w3 K1 H( s _# o: j/ x
RETVAL=$?
. D' s; ^8 Z5 S8 H- p& z! Eecho
2 ?# |- N' i8 C[ $RETVAL = 0 ] && touch /var/lock/subsys/nginx, H/ T$ j, g3 W/ U1 ]
return $RETVAL
. F0 h$ N4 E8 M0 }4 }}
! B7 K% e. q) L0 S# p0 L% I# Stop nginx daemons functions.& Z1 m+ Q( x1 i+ t! ]* W1 u5 T2 s( Q
stop() {
, M7 x& I% }8 V5 [8 @echo -n $"Stopping $prog: "
* `$ ?. Y4 W2 J; d \! v$ F% Zkillproc $nginxd' P: H- m9 T% G4 w* v$ d
RETVAL=$?9 L5 U5 d3 X0 K
echo
& O- i) {4 R2 q$ O2 ]& h' H# B[ $RETVAL = 0 ] && rm -f /var/lock/subsys/nginx /www/nginx/logs/nginx.pid
! K7 W, \) r$ I}6 Q! F$ O: t. \, J! h. G
reload() {( p- l2 d# o! L
echo -n $"Reloading $prog: "0 T; i K! K" |2 f \9 A/ P- T
#kill -HUP `cat ${nginx_pid}`
. m1 O- {3 F4 Tkillproc $nginxd -HUP
: t; E1 U/ ^ ]- D# QRETVAL=$?/ R( z- @& Y* ~' x/ L9 H
echo
: `# r5 A! [8 g9 \' w0 ^}/ G* [( {; x/ o0 b* y& F0 D
# See how we were called.( K, C$ Y n: t$ }9 _
case "$1" in
6 R; I- S a4 B' c: K( M! m$ r4 sstart)
! w y7 V; M% Y$ i+ J. ^start8 W- p4 ^. |* ]8 L L
;;
v8 E% F! p6 Ostop)
7 N" W3 w g! s7 l4 rstop2 B( n) N" x- {
;;* V* b6 e/ }. J) Q' J0 a7 \& Q# \
reload)) H8 G4 p7 O! x7 P9 E1 \* g n
reload
9 O) [7 a) v- X% f;;
) Y! y$ j6 L- D6 @1 Q; Hrestart). g" _- `) q: h4 P: i
stop' v+ j- B! N( \6 |- G
start! ]/ M, j- m) H$ }$ V4 k
;;: a% K# @% P5 r! c9 ?' Q2 u; I) V' S$ u
status)
: C2 r" @% i, [8 D9 F8 Estatus $prog
a8 J% i" j4 H( l3 ]# W7 C! iRETVAL=$?
, x. K9 o f q8 e) s. q- o;;! P0 |1 M7 G+ D4 a3 w2 A8 w
*)
$ W6 |0 V4 y4 w' H0 M" Lecho $"Usage: $prog {start|stop|restart|reload|status|help}"9 T, m: V v3 ^6 S/ q7 e2 }
exit 11 U8 m$ I' l- j/ U2 m
esac- h6 z7 ]1 e c2 g# x/ u8 E
exit $RETVAL
$ U3 c/ J N @8 k7 i$ F- Z
* t0 v5 t! A7 ~) D6 i' r 瘜冽嚗憒nginx摰鋆頝臬銝臬/www/nginx銝嚗敶靽格孵停憟賬 % h3 D0 g1 U% W4 q3 R
chmod 775 /etc/rc.d/init.d/nginx #韏鈭扯chkconfig nginx on #霈曄蔭撘箏臬/etc/rc.d/init.d/nginx restart service nginx restart單迨nginx摰鋆撠得k鈭嚗雿銝支葵桅嚗
4 ]3 w) U! j# w9 a9 U1嚗舀湔寥霈已eb寧桀/www/web桅 2嚗臭php游嚗暺霈孓ginx臭霈小hp敺 撖嫣1嚗nginx暺霈已eb寧桀 nginx摰鋆頝臬銝html隞嗅允嚗隞祆隞孵/www/web桀銝 餈/www/nginx/conf桀銝嚗vim nginx.conf嚗撠 7 t# _5 S. l3 A f) d; i
location / {) c6 S d3 B1 }+ J! V9 N
root html;4 d6 S: b. {. ~9 n
index index.php index.html index.htm;
/ a# g& m' o- W( [& b4 m( w' D }9 r% `/ B1 E% E7 U
靽格嫣蛹嚗. f4 C* _2 ]/ ]! v% i+ } `$ a
7 i3 e/ O8 N0 t' Z u$ l' |) E& _ location / { root /www/web; index index.html index.php; } 瘜冽嚗憓鈭撖隘ndex.php霂怒撠
! \/ q* w- |% T( F% A1 m8 p, }location ~ \.php$ {( z Y( A& E. `9 d1 b* s$ c8 N* A
root html;
, Z5 l, z* k" o7 V) p fastcgi_pass 127.0.0.1:9000;" i# m. ]/ N6 g0 @$ A R( A3 G
fastcgi_index index.php;
3 ^2 a" T0 M# w, P D$ e- z fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;' b! E, o5 h/ N0 q8 _
include fastcgi_params;
3 S4 Y# U0 C0 ?9 C2 Z }
7 l7 b5 [" P+ W" B% S靽格嫣蛹嚗8 i3 Y' @& A' Z0 p' B
- x: n7 Q- I2 a4 S$ r8 P# ]
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閫蝻拙僎餈唳桀嚗扯嚗 , \! u0 A9 m1 u3 h8 |' u9 E0 B& Q
#cmake -DCMAKE_INSTALL_PREFIX=/www/mysql 銋make make install摰鋆摰鋆摰瘥閬隞乩銝芯嚗1嚗璉/etc/銝臬血皂y.conf, 憒霂餈mv賭誘孵銝 my.cnf.backup ps嚗甇斗郊撉日撣賊閬嚗嚗嚗 2嚗撱榦ysql冽瑕蝏 #/usr/sbin/groupadd mysql
' D* H: W. p2 L7 O4 e: J
* K7 O3 U: u" r6 Y1 h#/usr/sbin/useradd -g mysql mysql 憓mysql冽瑕蝏( a- x% c% X. P
扯 cat /etc/passwd 亦冽瑕銵
) Y5 h! I% H* ncat /etc/group 亦冽瑞銵 chown -R mysql:mysql /www/mysql靽格雋ysql摰鋆桀
* j$ F, S( y; k2 T. a" |: D 3嚗餈/www/mysql,撱箇頂蝏芸蒂唳桀 scripts/mysql_install_db --basedir=/www/mysql --datadir=/www/mysql/data --user=mysql
, J5 z) S; E( P0 `0 q- V) l" y" ` 4嚗瘛餃∴臬決ySQL cp support-files/mysql.server /etc/init.d/mysql/ w& M+ w4 C, C) h8 Y& q! o
chkconfig mysql on
Y! [' v+ M- m9 V5 {5 Q% wservice mysql start --臬決ySQL
! D3 k+ b3 c% K4 K 5,霈曄蔭root撖 銝箔霈拐遙雿唳寥質賜皂ysql/bin銝賭誘嚗vim /etc/prifile 瘛餃嚗 PATH=/www/mysql/bin: $PATH' x; {8 ^! b. P9 T# {+ R
export PATH
# U: e) \! m7 x6 z 靽摮source /etc/profile 扯嚗
$ f3 @* @- m0 B/ Q: Y* k8 J5 amysql -uroot mysql> SET PASSWORD = PASSWORD('root');
5 O! V! H5 r2 u9 n7 t
3 @: m4 ~: x* k5 u \ Y霈曄蔭root冽瑞撖銝氳oot 6嚗銝箔舀餈蝔霈輸格唳桀嚗扯嚗
0 ] I! i Z2 o& I/ D/ ^mysql> grant all on *.* to xroot@"%" identified by "xroot; mysql> flush privileges; //湔唳 餈瑕停撱箔銝銝芰冽瑕銝漩root嚗撖銝漩root冽瘀臭誑餈蝔霈輸格唳桀 ,摰鋆php(php-fpm)閫撟嗉交嚗 / M5 a* d. _/ a1 U1 y
#./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嚗 " a8 S. \' |) n) A2 V
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* W1 q! A$ x) s% J: Y% [) v9 f
$ K0 [3 _( h: |. Prpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm* g' _& g Y$ M3 c8 y) Y
Create /etc/yum.repos.d/php-fpm.repo file and add:1 X |! }& M, `* u2 F3 [: _
- [nginx]
9 y8 g$ x' F/ v2 l- f* P) k - name=nginx repo/ v. e9 \5 M6 \0 {# G
- baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
. p: M: Z; Y# M4 _ - gpgcheck=0
* p; o, c9 n& P& } - enabled=1
銴鋆賭誨蝣
- s# o" u- V4 A$ \3 p3 U- kyum --enablerepo=remi,remi-test install php-fpm
4 l* q4 {1 b4 F) r: @# A! Y8 `+ N9 `$ j7 X
' a& J5 ]2 Z* }# K& V+ H鈭嚗摰鋆svn蝵峰ost嚗commit甇斗郊雿冽臭誨瞞tp嚗嫣噶撘鈭箏撘撟嗅甇乩誨臭誑湔仿餈yum摰鋆喳胯 # rpm -qa subversion //璉交臬西芸蒂鈭雿祉svn
8 a' `/ [5 u' W 嚗yum remove subversion //貉蝸雿祉svn0 T- b. p4 m" T& I
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql //摰鋆svn% R q1 l- @! K% V' K, y6 q# X/ e
餈# 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]
7 T; q0 T& G- ]/ t- ?' n# harry = harryssecret
- U* x4 |) {8 [2 h# sally = sallyssecret
& K0 M6 k: }. S% t, d, P; K( i" R6 ~wangning=wangning( L3 z( g6 D1 U; y* t2 ^) g' z
yanzi=yanzi0 B5 K% t% e! R/ E. C2 S
#vim authz //霈曄蔭 + u3 @2 i: X( Z+ ?) [8 X
[/] wangning = rw yanzi = rw # &joe = r # * = #vim svnserve.confanon-access = none2 ?5 I, C2 r$ Q. {. c
auth-access = write
/ c1 o2 g" e9 O' b" \### The password-db option controls the location of the password
, @6 L ^' G. ?; g1 a Q) Y% d### database file. Unless you specify a path starting with a /," a( S1 M" w8 S Z# N
### the file's location is relative to the directory containing
8 q! p a' i8 _. P* x7 x### this configuration file.
& k8 i: Z6 x2 }3 E; J### If SASL is enabled (see below), this file will NOT be used.. T/ J0 L* F$ \% D0 ?. h; q* N
### Uncomment the line below to use the default password file.- V+ `' Z K2 z
password-db = passwd
6 g/ t/ g+ B) A### The authz-db option controls the location of the authorization
8 q3 Y: `8 Q* x5 x### rules for path-based access control. Unless you specify a path& C5 a! P$ e- B$ e/ ~# H
### starting with a /, the file's location is relative to the the
& C' U# y/ j- w8 O f8 ]# `### directory containing this file. If you don't specify an
6 D ]$ [* p$ s' u/ K### authz-db, no path-based access control is done.( _2 e* ]7 H- b2 m& P5 W! w
### Uncomment the line below to use the default authorization file.4 K% v! B& i. f
authz-db = authz3 M1 ]3 y3 v: k9 `2 r# J/ f" [: k$ H
### This option specifies the authentication realm of the repository.
" T1 t$ W4 N6 n0 \, _### If two repositories have the same authentication realm, they should
7 r9 k8 _8 _* ?6 n5 g, k7 n( ^' M* ^. a### have the same password database, and vice versa. The default realm
- A% n& H6 N: F### is repository's uuid.
5 n C9 \# y! b) [realm = My First Repository
4 N: e$ Q. R" J 瘜冽嚗銝Z鈭銵V賣蝛箸潦 3,臬典甇┬vn #svnserve -d -r /www/wwwwvn //臬究vn
, U/ c- H1 h( P #killall svnserve //甇
+ c$ I5 ^1 A9 ^/ A9 d9 ^ 敺臬究vn嚗臭誑典X霂鈭 svn checkout svn://192.1.15.222 --username xxx F9 h+ K( e7 d6 O6 e
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
1 B4 [% r$ o6 S9 Y b, # cd /www/wwwsvn/hooks/,嗅cp post-commit.tmpl post-commit vim post-commit嚗券Z伐 1 b# o* T: c) y' _# y% |
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" :, e1 G- D' f" q7 u5 I
#system-config-securitylevel 豢DISABLE敺OK嚗敹璈 # a" [/ T; p# \5 [8 \, Z8 k3 m5 {
瑁setenforce 0撠勗臭誑急踝瑁setenforce 1撠勗臭誑急 vi /etc/sysconfig/selinux SELINUX=enforcing 寞--> SELINUX=disabled
6 f: ^- r& Q% {9 ]/ F% lvi /var/log/audit/audit.log ( tail -f /var/log/audit/audit.log) 亦 SElinux 雿憿
5 K: D8 L5 v# S1 B. C% x2 }+ t |