天天看點

叢集三 php+memcached緩存伺服器

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>&amp;&amp; </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>"&lt;h1&gt;DynamicServer is Health.&lt;/h1&gt; "</code>  <code>&gt; </code><code>/data/web/www/health</code><code>.php</code>

<code> </code><code>echo</code> <code>"&lt;h1&gt;StaticServer  is Health.&lt;/h1&gt; "</code>   <code>&gt;  </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>&amp;&amp; </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,如需轉載請自行聯系原作者