1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
<code>nginx+php 安裝</code>
<code>yum -y </code><code>install</code> <code>gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel </code><code>bzip2</code> <code>bzip2</code><code>-devel ncurses ncurses-devel gd gd-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers pcre pcre-devel ImageMagick ImageMagick-devel git</code>
<code>mkdir</code> <code>/hequan</code> <code>&& </code><code>cd</code> <code>/hequan</code>
<code>wget http:</code><code>//cn2</code><code>.php.net</code><code>/distributions/php-5</code><code>.6.22.</code><code>tar</code><code>.bz2</code>
<code>wget http:</code><code>//ncu</code><code>.dl.sourceforge.net</code><code>/project/mhash/mhash/0</code><code>.9.9.9</code><code>/mhash-0</code><code>.9.9.9.</code><code>tar</code><code>.gz</code>
<code>wget http:</code><code>//nchc</code><code>.dl.sourceforge.net</code><code>/project/mcrypt/Libmcrypt/2</code><code>.5.8</code><code>/libmcrypt-2</code><code>.5.8.</code><code>tar</code><code>.gz</code>
<code>wget http:</code><code>//nchc</code><code>.dl.sourceforge.net</code><code>/project/mcrypt/MCrypt/2</code><code>.6.8</code><code>/mcrypt-2</code><code>.6.8.</code><code>tar</code><code>.gz</code>
<code>wget http:</code><code>//ftp</code><code>.gnu.org</code><code>/pub/gnu/libiconv/libiconv-1</code><code>.14.</code><code>tar</code><code>.gz</code>
<code>wget http:</code><code>//pecl</code><code>.php.net</code><code>/get/memcache-2</code><code>.2.7.tgz</code>
<code>wget http:</code><code>//xcache</code><code>.lighttpd.net</code><code>/pub/Releases/3</code><code>.2.0</code><code>/xcache-3</code><code>.2.0.</code><code>tar</code><code>.gz</code>
<code>wget http:</code><code>//pecl</code><code>.php.net</code><code>/get/imagick-3</code><code>.1.2.tgz</code>
<code>git clone https:</code><code>//github</code><code>.com</code><code>/cfsego/ngx_log_if</code><code>.git</code>
<code>php安裝簡單版</code>
<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/php</code> <code>--with-config-</code><code>file</code><code>-path=</code><code>/etc</code> <code>--with-mysql --with-mysqli \</code>
<code>--with-config-</code><code>file</code><code>-scan-</code><code>dir</code><code>=</code><code>/etc/php</code><code>.d --</code><code>enable</code><code>-fpm --with-gd --with-iconv \</code>
<code>--with-zlib --</code><code>enable</code><code>-xml --</code><code>enable</code><code>-inline-optimization --with-openssl --</code><code>enable</code><code>-pcntl \</code>
<code>--</code><code>enable</code><code>-zip --with-curl --with-bz2 --with-jpeg-</code><code>dir</code> <code>--with-png-</code><code>dir</code> <code>--</code><code>enable</code><code>-mbstring</code>
<code>tar</code> <code>-zvxf libiconv-1.14.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>libiconv-1.14</code><code>/srclib</code>
<code>sed</code> <code>-i -e </code><code>'/gets is a security/d'</code> <code>.</code><code>/stdio</code><code>.</code><code>in</code><code>.h</code>
<code>cd</code> <code>../</code>
<code>.</code><code>/configure</code> <code>--prefix=</code><code>/application/</code>
<code>make</code>
<code>make</code> <code>install</code>
<code>cd</code> <code>/hequan</code>
<code>tar</code> <code>-zxvf libmcrypt-2.5.8.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>libmcrypt-2.5.8/</code>
<code>.</code><code>/configure</code>
<code>cd</code> <code>libltdl/</code>
<code>.</code><code>/configure</code> <code>--</code><code>enable</code><code>-ltdl-</code><code>install</code>
<code>tar</code> <code>-zxvf mhash-0.9.9.9.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>mhash-0.9.9.9/</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib/libmcrypt</code><code>.la </code><code>/usr/lib/libmcrypt</code><code>.la</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib/libmcrypt</code><code>.so </code><code>/usr/lib/libmcrypt</code><code>.so</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib/libmcrypt</code><code>.so.4 </code><code>/usr/lib/libmcrypt</code><code>.so.4</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib/libmcrypt</code><code>.so.4.4.8 </code><code>/usr/lib/libmcrypt</code><code>.so.4.4.8</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib/libmhash</code><code>.a </code><code>/usr/lib/libmhash</code><code>.a</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib/libmhash</code><code>.la </code><code>/usr/lib/libmhash</code><code>.la</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib/libmhash</code><code>.so </code><code>/usr/lib/libmhash</code><code>.so</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib/libmhash</code><code>.so.2 </code><code>/usr/lib/libmhash</code><code>.so.2</code>
<code>ln</code> <code>-s </code><code>/usr/local/lib/libmhash</code><code>.so.2.0.1 </code><code>/usr/lib/libmhash</code><code>.so.2.0.1</code>
<code>ln</code> <code>-s </code><code>/usr/local/bin/libmcrypt-config</code> <code>/usr/bin/libmcrypt-config</code>
<code>tar</code> <code>-zxvf mcrypt-2.6.8.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>mcrypt-2.6.8</code>
<code>export</code> <code>LD_LIBRARY_PATH=</code><code>/usr/local/lib</code><code>: LD_LIBRARY_PATH</code>
<code>cd</code> <code>/hequan/</code>
<code>tar</code> <code>-jxvf php-5.6.22.</code><code>tar</code><code>.bz2</code>
<code>cd</code> <code>php-5.6.22</code>
<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/php</code> <code>--with-config-</code><code>file</code><code>-path=</code><code>/application/php/etc</code> <code>--</code><code>enable</code><code>-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-</code><code>dir</code> <code>--with-freetype-</code><code>dir</code> <code>--with-jpeg-</code><code>dir</code> <code>--with-png-</code><code>dir</code> <code>--with-zlib --with-libxml-</code><code>dir</code><code>=</code><code>/usr</code> <code>--</code><code>enable</code><code>-xml --disable-rpath --</code><code>enable</code><code>-magic-quotes --</code><code>enable</code><code>-safe-mode --</code><code>enable</code><code>-bcmath --</code><code>enable</code><code>-shmop --</code><code>enable</code><code>-sysvsem --</code><code>enable</code><code>-inline-optimization --with-curl --with-curlwrappers --</code><code>enable</code><code>-mbregex --</code><code>enable</code><code>-mbstring --with-mcrypt --</code><code>enable</code><code>-</code><code>ftp</code> <code>--with-gd --</code><code>enable</code><code>-gd-native-ttf --with-openssl --with-mhash --</code><code>enable</code><code>-pcntl --</code><code>enable</code><code>-sockets --with-xmlrpc --</code><code>enable</code><code>-zip --</code><code>enable</code><code>-soap --without-pear --with-gettext --disable-fileinfo --</code><code>enable</code><code>-maintainer-zts</code>
<code>make</code> <code>ZEND_EXTRA_LIBS=</code><code>'-liconv'</code>
<code>cp</code> <code>php.ini-production </code><code>/usr/local/php/etc/php</code><code>.ini</code>
<code>cp</code> <code>sapi</code><code>/fpm/init</code><code>.d.php-fpm </code><code>/etc/init</code><code>.d</code><code>/php-fpm</code>
<code>chmod</code> <code>u+x </code><code>/etc/init</code><code>.d</code><code>/php-fpm</code>
<code>chkconfig --add php-fpm</code>
<code>chkconfig php-fpm on</code>
<code>groupadd www</code>
<code>useradd</code> <code>-s </code><code>/sbin/nologin</code> <code>-g www -M www</code>
<code>mv</code> <code>/usr/local/php/etc/php-fpm</code><code>.conf.default </code><code>/usr/local/php/etc/php-fpm</code><code>.conf</code>
<code>ln</code> <code>-s </code><code>/usr/local/php/etc/php</code><code>.ini </code><code>/etc/php</code><code>.ini</code>
<code>ln</code> <code>-s </code><code>/usr/local/php/etc/php-fpm</code><code>.conf </code><code>/etc/php-fpm</code><code>.conf</code>
<code> </code><code>/usr/local/php/sbin/php-fpm</code>
<code>iptables -I INPUT -s 172.16.10.0</code><code>/24</code> <code>-p tcp --dport 9000 -j ACCEPT</code>
<code>zlib====》提供資料壓縮用的函式庫</code>
<code>pcre====》rewrite的支援庫</code>
<code>openssl====》https的支援庫</code>
<code>libiconv====》字元編碼轉換庫</code>
<code>libxml====》XML庫</code>
<code>libpng====》圖檔庫</code>
<code>freetype====》字庫</code>
<code>libmcrypt====》加密算法</code>
<code>mhash====》加密庫</code>
<code>curl====》URL傳輸</code>
<code>gd====》繪圖</code>
<code>yum -y </code><code>install</code> <code>nfs </code>
<code>vim </code><code>/etc/exports</code>
<code>/data/web/</code> <code>192.168.50.58</code><code>/24</code><code>(rw,</code><code>sync</code><code>)</code>
<code>/data/web/</code> <code>192.168.50.59</code><code>/24</code><code>(rw,</code><code>sync</code><code>)</code>
<code>/data/web/</code> <code>192.168.50.60</code><code>/24</code><code>(r,</code><code>sync</code><code>)</code>
<code>/data/web/</code> <code>192.168.50.61</code><code>/24</code><code>(r,</code><code>sync</code><code>)</code>
<code>systemctl rstart nfs.service</code>
<code>systemctl </code><code>enable</code> <code>nfs.service </code>
<code>yum </code><code>install</code> <code>nfs-utils -y</code>
<code>showmount -e 192.168.50.62</code>
<code>mkdir</code> <code>-p </code><code>/data/web/</code>
<code>mount</code> <code>-t nfs 192.168.50.62:</code><code>/data/web/</code> <code>/data/web</code>
<code> </code><code>echo</code> <code>"<h1>DynamicServer is Health.</h1> "</code> <code>> </code><code>/data/web/www/health</code><code>.php</code>
<code> </code><code>echo</code> <code>"<h1>StaticServer is Health.</h1> "</code> <code>> </code><code>/data/web/www/health</code><code>.html</code>
<code>Memcached 安裝</code>
<code>下載下傳</code>
<code>cd</code> <code>/tmp</code>
<code>wget http:</code><code>//downloads</code><code>.sourceforge.net</code><code>/levent/libevent-2</code><code>.0.22-stable.</code><code>tar</code><code>.gz</code>
<code>wget http:</code><code>//www</code><code>.memcached.org</code><code>/files/memcached-1</code><code>.4.33.</code><code>tar</code><code>.gz</code>
<code>tar</code> <code>zxvf libevent-2.0.22-stable.</code><code>tar</code><code>.gz</code>
<code>cd</code> <code>libevent-2.0.22-stable</code>
<code>.</code><code>/configure</code> <code>-prefix=</code><code>/usr/local/</code>
<code>make</code> <code>&& </code><code>make</code> <code>install</code>
<code>ls</code> <code>-al </code><code>/usr/local/lib</code> <code>| </code><code>grep</code> <code>libevent- </code>
<code>tar</code> <code>zxvf memcached-1.4.33.</code><code>tar</code><code>.gzsgh5+9</code>
<code>cd</code> <code>memcached-1.4.33</code>
<code>.</code><code>/configure</code> <code>--with-libevent=</code><code>/usr/local/</code> <code>--</code><code>enable</code><code>-64bit --</code><code>enable</code><code>-threads</code>
<code>ls</code> <code>-al </code><code>/usr/local/bin/memcached</code> <code>0sac</code>
<code>groupadd memcached</code>
<code>useradd</code> <code>-g memcached memcached</code>
<code>cd</code> <code>/var/run</code>
<code>mkdir</code> <code>memcached</code>
<code>chown</code> <code>-R memcached.memcached memcached</code>
<code>cp</code> <code>/tmp/memcached-1</code><code>.4.33</code><code>/scripts/memcached</code><code>.sysv </code><code>/etc/init</code><code>.d</code><code>/memcached</code>
<code>chown</code> <code>memcached.memcached </code><code>/etc/init</code><code>.d</code><code>/memcached</code>
<code>chmod</code> <code>755 </code><code>/etc/init</code><code>.d</code><code>/memcached</code>
<code>vim </code><code>/etc/init</code><code>.d</code><code>/memcached</code>
<code>PORT=11211</code>
<code>USER=memcached</code>
<code>MAXCONN=1024</code>
<code>CACHESIZE=128</code>
<code>OPTIONS=””</code>
<code>chown</code> <code>$USER </code><code>/usr/local/bin/memcached</code>
<code>/usr/local/bin/memcached</code> <code>–d –p $PORT –u $USER –m $CACHESIZE –c $MAXCONN –P </code><code>/var/run/memcached/memcached</code><code>.pid $OPTIONS</code>
<code>啟動</code>
<code>chkconfig --add memcached</code>
<code>chkconfig --level 235 memcached on</code>
<code>chkconfig --list memcached</code>
<code>service memcached start</code>
<code>ps</code> <code>-ef | </code><code>grep</code> <code>memcached</code>
<code>service memcached stop</code>
<code>magent安裝</code>
<code>cd</code> <code>/usr/local</code>
<code>mkdir</code> <code>magent </code>
<code>cd</code> <code>magent</code>
<code>tar</code> <code>zxvf magent-0.5.</code><code>tar</code><code>.gz</code>
<code>vim ketama.h </code><code>#在開頭添加這三行</code>
<code>#ifndef SSIZE_MAX </code>
<code>#define SSIZE_MAX 32767 </code>
<code>#endif</code>
<code>ln</code> <code>-s </code><code>/usr/lib64/libm</code><code>.so </code><code>/usr/lib64/libm</code><code>.a</code>
<code>/sbin/ldconfig</code>
<code>sed</code> <code>-i </code><code>"s#LIBS = -levent#LIBS = -levent -lm#g"</code> <code>Makefile </code>
<code>vi</code> <code>Makefile</code>
<code>CFLAGS = -lrt -Wall -O2 -g </code><code>#修改這行</code>
<code>keepalived設定</code>
<code>主memcache: 開機不啟動keepalved memcached </code>
<code>vim </code><code>/etc/keepalived/keepalived</code><code>.conf</code>
<code>! Configuration File </code><code>for</code> <code>keepalived </code>
<code>global_defs {</code>
<code> </code><code>router_id mem1</code>
<code>}</code>
<code>vrrp_script chk_magent {</code>
<code> </code><code>script </code><code>"/opt/magent.sh"</code>
<code> </code><code>interval 2</code>
<code>vrrp_script chk_memcached {</code>
<code> </code><code>script </code><code>"killall -0 memcached"</code>
<code> </code><code>interval 1</code>
<code> </code><code>weight -20</code>
<code>vrrp_instance VI_1 {</code>
<code> </code><code>state MASTER</code>
<code> </code><code>interface eth0</code>
<code> </code><code>virtual_router_id 101</code>
<code> </code><code>priority 100</code>
<code> </code><code>advert_int 1</code>
<code> </code><code>authentication {</code>
<code> </code><code>auth_type PASS</code>
<code> </code><code>auth_pass 1111</code>
<code> </code><code>}</code>
<code> </code><code>virtual_ipaddress {</code>
<code> </code><code>192.168.50.199</code><code>/24</code>
<code> </code><code>track_script {</code>
<code> </code><code>chk_magent</code>
<code> </code><code>chk_memcached</code>
<code> </code><code>}</code>
<code> </code><code>notify_master </code><code>"/etc/keepalived/changemail.py master"</code>
<code> </code><code>notify_backup </code><code>"/etc/keepalived/changemail.py backup"</code>
<code> </code><code>notify_fault </code><code>"/etc/keepalived/changemail.py fault"</code>
<code>vim </code><code>/opt/magent</code><code>.sh</code>
<code>#!/bin/bash</code>
<code>k=`</code><code>ps</code> <code>-ef |</code><code>grep</code> <code>keepalived |</code><code>grep</code> <code>-</code><code>v</code> <code>grep</code> <code>|</code><code>wc</code> <code>-l`</code>
<code>if</code> <code>[ $k -gt 0 ];</code><code>then</code>
<code> </code><code>/usr/local/magent/magent</code> <code>-u root -n 51200 -l 192.168.50.199 -p 12000 -s 192.168.50.63:11211 -b 192.168.50.64:11211</code>
<code>else</code>
<code>pkill -9 magent</code>
<code>fi</code>
<code>備用memcache:</code>
<code>vim </code><code>/etc/keepalived/keepalived</code><code>.conf</code>
<code> </code><code>router_id mem2</code>
<code> </code><code>script </code><code>"/opt/magent.sh"</code>
<code> </code><code>interval 2</code>
<code> </code><code>state BACKUP</code>
<code> </code><code>priority 90</code>
<code> </code><code>chk_magent</code>
<code> </code><code>chk_memcached</code>
<code>vim </code><code>/opt/magent</code><code>.sh</code>
<code>k=`ip a |</code><code>grep</code> <code>192.168.50.199 |</code><code>wc</code> <code>-l`</code>
<code> </code><code>/usr/local/magent/magent</code> <code>-u root -n 51200 -l 192.168.50.199 -p 12000 -s 192.168.50.53:11211 -b 192.168.50.64:11211</code>
<code>注意:如果将故障的memcached節點修複後,緩存是不會再通過到已修複的節點上的,如果是magent指定的主節點故障,那麼主節點的緩存資料會丢失,修複後不能立刻重新開機memcached服務,如果重新開機,用戶端會去查詢主節點的資料。并發高的網站會拖死資料庫。是以,建議一般業務低峰期的時候再啟動memcached主節點服務。然後通過magent再指定主緩存節點和備緩存節點。</code>
<code>1.若memcached讀寫的資料多,一定将關掉防火牆或将防火牆設定為不使用跟蹤連結表,否則會導緻</code><code>/var/log/message</code><code>報錯“kernel: nf_conntrack: table full, dropping packet”,詳情請參考本部落格中的博文http:</code><code>//blog</code><code>.csdn.net</code><code>/yanggd1987/article/details/45886913</code><code>。</code>
<code>2.使用service iptables stop關掉,并且不能用iptables -L -vnx檢視,是以使用此指令會将防火牆開啟,雖然規則是清空的,但仍會記錄連接配接跟蹤表。</code>
<code>https:</code><code>//my</code><code>.oschina.net</code><code>/kisops/blog/150995</code>
<code>安裝php擴充</code>
<code>tar</code> <code>zxvf </code><code>/software/memcache-3</code><code>.0.8.tgz -C </code><code>/tmp</code>
<code>cd</code> <code>memcache-3.0.8</code>
<code>/usr/local/php/bin/phpize</code>
<code>.</code><code>/configure</code> <code>--</code><code>enable</code><code>-memcache --with-php-config=</code><code>/usr/local/php/bin/php-config</code> <code>--with-zlib-</code><code>dir</code>
<code>vim </code><code>/usr/local/php/etc/php</code><code>.ini</code>
<code>extension_dir = </code><code>"/usr/local/php/lib/php/extensions/no-debug-non-zts-20131226/"</code>
<code>extension=memcache.so</code>
<code>[Memcache]</code>
<code>memcache.allow_failover = 1</code>
<code>memcache.max_failover_attempts=20</code>
<code>memcache.chunk_size =8192</code>
<code>釋出discuz</code>
<code>unzip </code><code>/software/Discuz_X3</code><code>.2_SC_UTF8.zip -d </code><code>/discuz/</code>
<code>chmod</code> <code>-R 777 </code><code>/discuz/</code>
<code>#開啟memcache支援</code>
<code>vim </code><code>/discuz/upload/config/config_global</code><code>.php</code>
<code>$_config[</code><code>'memory'</code><code>][</code><code>'memcache'</code><code>][</code><code>'server'</code><code>] = </code><code>'192.168.50.199'</code><code>; </code><code>#magent代理伺服器位址</code>
<code>$_config[</code><code>'memory'</code><code>][</code><code>'memcache'</code><code>][</code><code>'port'</code><code>] = 12000;</code>
<code>$_config[</code><code>'memory'</code><code>][</code><code>'memcache'</code><code>][</code><code>'pconnect'</code><code>] = 1;</code>
<code>$_config[</code><code>'memory'</code><code>][</code><code>'memcache'</code><code>][</code><code>'timeout'</code><code>] = 1;</code>
<code>yum </code><code>install</code> <code>-y telnet</code>
<code>telnet 192.168.50.199 12000</code>
<code>stats</code>
<code>STAT cmd_get 199</code>
<code>STAT cmd_set 37</code>
<code>STAT cmd_flush 0</code>
<code>STAT cmd_touch 0</code>
<code>STAT get_hits 167</code>
<code>STAT get_misses 32</code>
本文轉自 295631788 51CTO部落格,原文連結:http://blog.51cto.com/hequan/1886309,如需轉載請自行聯系原作者