天天看點

CentOS6.x搭建高性能Web服務LAMP+Memcached

一、安裝元件和依賴包

1

2

3

4

5

6

7

8

9

10

11

<code>yum </code><code>install</code> <code>–y gcc gcc-c++ </code><code>make</code> <code>cmake ncurses-devel libxml2-devel perl-devel libcurl-devel libgcrypt libgcrypt-devel libxslt libxslt-devel pcre-devel openssl-devel</code>

<code>1.安裝apr</code>

<code>tar</code> <code>zxvf apr-1.4.6.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>apr-1.4.6</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/apr</code>

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

<code>2.安裝apr-utils</code>

<code>tar</code> <code>zxvf apr-util-1.4.1.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>apr-util-1.4.1</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/apr-util</code> <code>--with-apr=</code><code>/usr/local/apr</code>

二、安裝httpd

<code>tar</code> <code>zxvf httpd-2.4.3.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>httpd-2.4.3</code>

<code>.</code><code>/configure</code> <code>-prefix=</code><code>/usr/local/apache</code> <code>-</code><code>enable</code><code>-so -</code><code>enable</code><code>-rewrite -</code><code>enable</code><code>-modules=all --with-apr=</code><code>/usr/local/apr</code> <code>--with-apr-util=</code><code>/usr/local/apr-util</code>

<code>/usr/local/apache/bin/apachectl</code> <code>start</code>

<code>cp</code> <code>/usr/local/apache/bin/apachectl</code> <code>/etc/init</code><code>.d</code><code>/httpd</code>

<code>chmod</code> <code>+x </code><code>/etc/init</code><code>.d</code><code>/httpd</code>

<code>service httpd start</code>

<code>echo</code> <code>"/usr/local/apache/bin/apachectl start"</code> <code>&gt;&gt; </code><code>/etc/rc</code><code>.</code><code>local</code>  <code>#開機啟動</code>

http://127 .0.0.1通路測試,會顯示it works頁面!

提示:apr、apr-util還有依賴包一定要安裝好,要不然會各種報錯!

二、安裝mysql

下載下傳:http://dev.mysql.com/downloads/mysql/5.5.html

1、建立組和使用者

<code>groupadd mysql</code>

<code>useradd</code> <code>-g mysql -s </code><code>/sbin/nologin</code> <code>mysql</code>

2、安裝mysql 

<code>tar</code> <code>zxvf mysql-5.5.34.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>mysql-5.5.34</code>

<code>cmake -dcmake_install_prefix=</code><code>/usr/local/mysql</code> <code>\</code>

<code>-dsysconfdir=</code><code>/usr/local/mysql/etc</code> <code>-dmysql_datadir=</code><code>/usr/local/mysql/data</code>

3、初始化并配置 

12

13

14

<code>/usr/local/mysql/scripts/mysql_install_db</code> <code>--basedir=</code><code>/usr/local/mysql/</code> <code>--datadir=</code><code>/usr/local/mysql/data/</code> <code>--user=mysql </code><code>#初始化資料庫</code>

<code>mkdir</code> <code>/usr/local/mysql/etc</code>

<code>cp</code> <code>support-files</code><code>/my-medium</code><code>.cnf </code><code>/usr/local/mysql/etc/my</code><code>.cnf</code>

<code>cp</code> <code>support-files</code><code>/mysql</code><code>.server </code><code>/etc/init</code><code>.d</code><code>/mysqld</code>

<code>chmod</code> <code>+x </code><code>/etc/init</code><code>.d</code><code>/mysqld</code>

<code>echo</code> <code>"path=$path:/usr/local/mysql/bin"</code> <code>&gt;&gt; </code><code>/etc/profile</code> <code>#添加執行指令環境變量</code>

<code>source</code> <code>/etc/profile</code> <code>#生效環境變量</code>

<code>chown</code> <code>-r root.mysql </code><code>/usr/local/mysql/</code>

<code>chown</code> <code>-r mysql:mysql mysql</code><code>/data/</code> <code>#賦予資料存放目錄權限</code>

<code>mysqld_safe --user=mysql&amp; </code><code>#啟動mysql</code>

<code>rm</code> <code>-rf </code><code>/etc/my</code><code>.cnf   </code><code>#***mysql以前的配置檔案,否則有時會起不來</code>

<code>service mysqld start</code>

<code>mysqladmin -u root password </code><code>'123456'</code><code>#設定root登入密碼</code>

<code>chkconfig mysqld on</code>

三、安裝php

1、yum安裝gd庫

<code>yum </code><code>install</code> <code>–y gd freetype freetype-devel libpng libpng-devel zlib zlib-devel libjpeg*</code>

補充:編譯安裝gd庫(需要安裝php時候指定gd、zlib、jpeg、png和freetype安裝目錄)

1&gt;.安裝zlib

<code>tar</code> <code>zxvf zlib-1.2.5.1.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>zlib-1.2.5.1</code>

<code>.</code><code>/configure</code> <code>–prefix=</code><code>/usr/local/gd/zlib</code>

2&gt;.安裝jpeg

<code>mkdir</code><code>-p </code><code>/usr/local/gd/jpeg/include</code>

<code>mkdir</code><code>-p </code><code>/usr/local/gd/jpeg/lib</code>

<code>mkdir</code><code>-p </code><code>/usr/local/gd/jpeg/bin</code>

<code>mkdir</code><code>-p </code><code>/usr/local/gd/jpeg/man/man1</code>

<code>tarzxvf jpegsrc.v6b.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>jpegsrc.v6b</code>

<code>.</code><code>/configure</code> <code>–prefix=</code><code>/usr/local/gd/jpeg</code>

編譯中可能報錯:make: ./libtool:指令未找到 make: *** [cjpeg.lo] 錯誤 127

解決:

cp /usr/share/libtool/config.sub .

cp /usr/share/libtool/config.guess .

3&gt;.安裝libpng

<code>tar</code> <code>zxvf libpng-1.5.6.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>libpng-1.5.6</code>

<code>.</code><code>/configure</code> <code>–prefix=</code><code>/usr/local/gd/libpng</code>

編譯中可能報錯:configure: error: zlib not installed

進入zlib-1.2.6的源檔案目錄,執行指令 make clean,清除zlib;

重新配置 ./configure,後面不要加–prefix參數;

再make &amp;&amp; make install;

4&gt;.安裝freetype

<code>tar</code> <code>zxvf freetype-2.4.6.</code><code>tar</code><code>.gz</code>

<code>cdfreetype-2.4.6</code>

<code>.</code><code>/configure</code> <code>–prefix=</code><code>/usr/local/gd/freetype</code>

5&gt;.安裝gd

<code>tar</code> <code>zxvf gd-2.0.33.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>gd-2.0.33</code>

<code>.</code><code>/configure</code> <code>–prefix=</code><code>/usr/local/gd/gd2</code> <code>–with-zlib=</code><code>/usr/local/gd/zlib</code>

<code>–with-jpeg=</code><code>/usr/local/gd/jpeg</code> <code>–with-png=</code><code>/usr/local/gd/libpng</code>

<code>–with-freetype=</code><code>/usr/local/gd/freetype</code>

編譯中可能報錯:gd_png.c:92: error: expected ‘)’ before ‘png_ptr’

解決:vi gd_png.c

将#include “png.h” 替換成:#include “/usr/local/gd/libpng/include/png.h”

安裝成功後,/usr/local/gd/gd2/include生成gd.h和libgd.a的檔案

安裝加密算法擴充庫libmcrypt

下載下傳:ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/libmcrypt

<code>tar</code> <code>zxvf libmcrypt-2.5.3.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>libmcrypt-2.5.3</code>

<code>.</code><code>/configure</code> <code>--prefix=</code><code>/usr/local/libmcrypt</code>

<code>ldconfig -</code><code>v</code>

<code>cd</code> <code>libltdl</code>

<code>.</code><code>/configure</code> <code>--with-gmetad --</code><code>enable</code><code>-gexec --</code><code>enable</code><code>-ltdl-</code><code>install</code>

<code>ln</code> <code>-sv </code><code>/usr/local/lib/libmcrypt</code><code>* </code><code>/usr/lib</code>  <code>#連結到預設搜尋庫目錄</code>

2、安裝php

15

16

<code>tar</code> <code>zxvf php-5.4.4.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>php-5.4.4</code>

<code>.</code><code>/configure</code> <code>-prefix=</code><code>/usr/local/php</code> <code>\</code>

<code>--with-config-</code><code>file</code><code>-path=</code><code>/usr/local/php/etc</code> <code>\</code>

<code>--with-apxs2=</code><code>/usr/local/apache/bin/apxs</code> <code>\</code>

<code>--with-mysql=</code><code>/usr/local/mysql</code> <code>\</code>

<code>--with-mysqli=</code><code>/usr/local/mysql/bin/mysql_config</code> <code>\</code>

<code>--</code><code>enable</code><code>-soap --</code><code>enable</code><code>-bcmath --</code><code>enable</code><code>-zip --</code><code>enable</code><code>-</code><code>ftp</code> <code>\</code>

<code>--</code><code>enable</code><code>-mbstring --with-gd --with-libxml-</code><code>dir</code> <code>--with-jpeg-</code><code>dir</code> <code>\</code>

<code>--with-png-</code><code>dir</code> <code>--with-freetype-</code><code>dir</code> <code>--with-zlib \</code>

<code>--with-curl --with-xsl --with-openssl</code>

<code>cp</code> <code>php.ini-production </code><code>/usr/local/php/etc/php</code><code>.ini</code>

<code>vi</code> <code>/usr/local/php/etc/php</code><code>.ini</code>

<code>date</code><code>.timezone = asia</code><code>/shanghai</code> <code>#設定時區</code>

<code>expose_php = off </code><code>#禁止顯示版本資訊</code>

注:如果mysql是rpm安裝的則--with-mysql即可!

參考基本完整的php配置:

CentOS6.x搭建高性能Web服務LAMP+Memcached

./configure報錯:./configure: /usr/local/apache/bin/apxs: /replace/with/path/to/perl/interpreter: bad interpreter: no such file or directory

解決:vi /usr/local/apache/bin/apxs把第一行改為#!/usr/bin/perl -w即可!

3、添加apache支援php

<code>vi</code> <code>/usr/local/apache/conf/httpd</code><code>.conf</code>

<code>servername 本地ip:80</code>

<code>#在addtype application/x-gzip .gz .tgz下面添加php頁面支援</code>

<code>addtype application</code><code>/x-httpd-php</code> <code>.php</code>

<code>addtype application</code><code>/x-httpd-php-source</code> <code>.phps</code>

<code>loadmodule php5_module modules</code><code>/libphp5</code><code>.so </code><code>#編譯php時候加--with-apxs2參數才會自動生成</code>

<code>directoryindex index.html index.php  </code><code>#找到這一行,添加index.php索引頁</code>

4、測試

<code>chown</code> <code>apache.apache </code><code>/usr/local/apache/htdocs</code> <code>-r </code><code>#設定目錄所有者</code>

<code>chmod</code> <code>774 </code><code>/usr/local/apache/htdocs</code> <code>-r </code><code>#設定目錄權限</code>

<code>service httpd restart</code>

<code>service mysqld restart</code>

<code>vi</code> <code>index.php</code>

<code>&lt;?php phpinfo();?&gt;</code>

輸入:http://127.0.0.1 #可以看到相關的配置資訊!

四、安裝memcached

memcache緩存資料庫:減少資料庫壓力。高性能的分布式記憶體緩存伺服器,用于動态web應用,減少i/o,提高web通路速度以減輕資料庫負載,以提高動态web應用的速度、提高可擴充性。利用 memcached 處理實時資料讀寫;mysql是影響性能的最大瓶頸,可以用一台mysql主庫(隻寫)+多台mysql輔庫(隻讀)的主輔庫叢集來解決。另外,通路計數等實時性很強的東西用memcache做緩存。基于c#語言寫的調用libevent庫事件來實作。

http://memcached.googlecode.com/files/memcached-1.4.10.tar.gz

http://pecl.php.net/get/memcache-3.0.6.tgz

1、安裝libevent

<code>yum </code><code>install</code> <code>-y libevent libevent-devel</code>

2、安裝memcached

<code>tar</code> <code>zxvf memcached-1.4.15.</code><code>tar</code><code>.gz</code>

<code>cd</code> <code>memcached-1.4.15</code>

<code>.</code><code>/configure</code>

<code>make</code> <code>&amp;&amp; </code><code>make</code> <code>install</code>

3、安裝memcache用戶端php擴充

<code>tar</code> <code>vxzf memcache-3.0.6.tgz</code>

<code>cd</code> <code>memcache-3.0.6</code>

<code>/usr/local/php/bin/phpize</code>

<code>.</code><code>/configure</code> <code>–with-php-config=</code><code>/usr/local/php/bin/php-config</code>

4、在php.ini添加memcache子產品

<code>vi</code> <code>/etc/php</code><code>.ini</code>

<code>extension=memcache.so</code>

5、啟動memcached服務端

<code>/usr/local/bin/memcached</code> <code>-d -m 128 -l 192.168.0.10 -p 11211</code>

<code>killall -9 memcached  </code><code>#關閉memcached</code>

-d:選項是啟動一個守護程序,

-m:是配置設定給memcache使用的記憶體數量,機關是mb

-u:是運作memcache的使用者

-l:是監聽的伺服器ip位址

-p:是設定memcache監聽的端口,最好是1024以上的端口

-c:選項是最大運作的并發連接配接數,預設是1024,根據你伺服器的負載量來設定

-p:是設定儲存memcache的pid檔案,我這裡是儲存在 /tmp/memcached.pid

用戶端測試

telnet 192.168.0.202 11211

或phpinfo檢視是否被加載子產品

常用指令:status、version、flush_all、quit、get、add、set等