CentOS6.4编译安装企业级LAMMP平台

   CentOS6.4编译安装企业级LAMMP平台

一、LAMMP简介

二、使用软件及服务器架构说明

三、配置及安装过程

  1.安装配置httpd+php服务器

  2.安装mysql服务器

 3.Memcached服务器

  3.1、Memcache简介及原理

  3.2、Memcache安装及配置

四.整合Httpd、Php、Mysql、Memcached


一.LAMMP简介

LAMMP指的是:Linux(操作系统)、Apache(HTTP服务器)、Memcached(缓存服务器)、Mysql(数据库)及PHP(有时也指Perl或Python)的首字母缩写。是一组知名的高性能廉价的用来架构WEB服务器的开源软件;它们各自都是一个独立的程序,但因为常被结合在一起使用,拥有较好的兼容性,组合起来共同构建了一个非常强大而又稳定WEB应用程序平台


二.使用软件及服务器架构说明

1.本博客所需全部软件已存至网盘

http://pan.baidu.com/s/1bnipzZp

2.服务器架构:

wKiom1L4MJPQkXpTAAF8Go7w_Yg969.jpg

注:1.web服务器为apache+php,地址为192.168.2.101;同时为memcache客户端;

2.mysql-server服务器地址为192.168.3.101

3.Memcached服务器地址为3.102

客户端请求一个网页数据所要经过的过程如:

1、客户端向Apache服务器发出一个请求经过Internet,由Internet路由到Apache服务器上

2、Apache服务器首先判断请求的是动态还是静态网页,如果是静态页面,由Apache服务器直接返回给客户端;如果是动态页面则自已不处理,交给后台php服务器处理

3、php服务器在处理过程中如果需要调用Mysql数据库服务器的数据,则先查找Memcached缓存服务器(应用程序中要定义),如果Memcached服务器缓存的有要查询的数据则直接返回给php服务器;如果Memcached服务器中缓存的没有要查询的数据,php服务器则会向数据库服务器查询数据

4、php服务器从数据查询到数据不会立即返回给前台Apache服务器;则会先缓存到Memcached服务器然后再返回给Apache服务器(应用程序中要定义缓存)

5、再由Apache服务器返回给客户端



三.安装及配置过程

                   1.安装配置apache+php服务器:

.1安装编译环境;

安装开发工具“Development Tools”;

..安装apache 2.4

一.先安装apr 以及apr-util 以及pcre-devel  

aprapr-utilapache源码展开,逐个安装;安装apr

安装apr:进入到展开目录;

./configure --prefix=/usr/local/apr

make && make install

安装apr-tuil

[root@centos apr-util-1.5.1]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config

[root@centos apr-util-1.5.1]# make && make install

安装pcre

[root@centos ~]# yum --disablerepo=* --enablerepo=c6-media install pcre-devel

二.安装主apache

[root@centos httpd-2.4.4]# ./configure --prefix=/usr/local/apache  --sysconfdir=/etc/httpd   --enable-so  --enable-rewrite  --with-apr=/usr/local/apr/bin/apr-1-config  --with-apr-util=/usr/local/apr-util/bin/apu-1-config  --with-pcre   -with-z    --enable-mpms-shared=all  --with-mpm=event

执行makemake install

[root@centos apache]# /usr/local/apache/bin/httpd -k start  开启apache服务;


..安装php

一.安装

[root@centos ~]# tar -jxvf php-5.5.8.tar.bz2 -C /usr/local/src 展开软件包

[root@centos apache]# mkdir -pv /etc/php /etc/php5.d

yum --disablerepo=* --enablerepo=c6-media install libxml2-devel 安装xml2-devel

[root@centos php-5.5.8]# ./configure      --prefix=/usr/local/php    --enable-fpm      --enable-sockets     --with-mysql=mysqlnd --with-mysqli=mysqlnd  --with-pdo-mysql=mysqlnd --enable-mbstring  --enable-xml  --with-png-dir --with-jpeg-dir  --with-zlib   --with-freetype-dir --with-config-file-path=/etc/php  --with-config-file-scan-dir=/etc/php5.d

root@centos php-5.5.8]# make && make install

二.Php.int文件

进入源码目录

[root@centos php-5.5.8]# cp php.ini-development /etc/php/php.ini

三. php-fpm的控制脚本

[root@centos php-5.5.8]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@centos php-5.5.8]# chmod a+x /etc/init.d/php-fpm  改变权限

四.产生php-fpm配置文件

进入php的安装目录,在其下的etc目录

cp php-fpm.conf.default php-fpm.conf    

五.启动php-fpm

service  php-fpm  start

chkconfig  --add php-fpm 加入chkconfig管理

chkconfig  php-fpm on  设置开机启动


..apache要用到php-fpm,要让它们结合,则要修改配置文件

修改配置文件[root@localhost ~]# vim /etc/httpd/httpd.conf

1,开启下面两行模块

112 LoadModule proxy_module modules/mod_proxy.so

116 LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

2.加入下面两行语句

AddType application/x-httpd-php .php

AddType application/x-httpd-php-source .phps

3.加入默认php主页:

246     DirectoryIndex index.php index.html

4.加入proxy_fcgi代理策略

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/usr/local/apache/htdocs/$1


..测试apachefastcgi的结合

[root@centos ~]# cd /usr/local/apache/htdocs/ 进入php站点主目录

root@centos htdocs]# vim index.php  编辑静态页面

<?php

phpinfo();

?>

访问测试:出现php信息为连接正常。

wKioL1L4MHPDgmB6AAM8e3hg26g703.jpg


                       2.安装配置mysql服务器;

1.安装编译环境;安装开发工具“Development Tools”;

2.安装二进制代码mysql

[root@localhost ~]# tar -zxvf mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

[root@localhost local]# ln -s mysql-5.6.15-linux-glibc2.5-x86_64 mysql  创建链接

[root@localhost mysql]# groupadd mysql

[root@localhost mysql]# useradd -r -g mysql mysql

[root@localhost mysql]# chown -R mysql .

[root@localhost mysql]# chgrp -R mysql .

[root@localhost mysql]# scripts/mysql_install_db --user=mysql

[root@localhost mysql]# chown -R root .

[root@localhost mysql]# chown -R mysql data

[root@localhost mysql]# cp support-files/my-default.cnf /etc/my.cnf  拷贝配置文件

[root@localhost mysql]# cp support-files/mysql.server /etc/init.d/mysqld 拷贝控制脚本

[root@localhost mysql]# chmod a+x /etc/init.d/mysqld  给控制脚本增加可执行权限

[root@localhost mysql]# chkconfig --add mysqld  增加mysqld为开机启动

[root@localhost mysql]# chkconfig mysqld on  

/usr/local/mysql/bin/mysqladmin -u root -p password '123' mysql创建管理账号


                                   3.安装配置memcached

.memcached简介

.memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为 mixihatenaFacebookVoxLiveJournal等众多服务中 提高Web应用扩展性的重要因素。

许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。

这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。

.memcached作为高速运行的分布式缓存服务器,具有以下的特点

1.协议简单

2.基于libevent的事件处理

3.内置内存存储方式

4.memcached不互相通信的分布式


.Memcache工作原理如图:

1.当用户第一次访问web服务器的内容时,web服务器调用数据库中的内容返回给用户,并把内容存至memcached缓存中;

2.当第二次用户再次访问同样的内容时,web服务器不用经过数据库而是直接memcached缓存交给web服务器来返回给用户。这样做大大提高了访问速度。

wKioL1L4MH2z2o_cAATngBppvq8179.jpg


.2安装memcached

1,先安装libevent

tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src/

cd /usr/local/src/libevent-2.0.16-stable/

[root@centos libevent-2.0.16-stable]# ./configure --prefix=/usr/local/libevent

[root@centos libevent-2.0.16-stable]# make && make install

输出库文件,创建并编辑文件:

[root@centos libevent]# vim /etc/ld.so.conf.d/libevent.conf

/usr/local/libevent/lib加入库路径,保存退出;

[root@centos libevent]# ldconfig   刷新缓存;

2.安装memcached

[root@centos ~]# tar -zxvf memcached-1.4.15.tar.gz -C /usr/local/src/

[root@centos memcached-1.4.15]# ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent

[root@centos memcached-1.4.15]# make && make install

启动memcached

进入/usr/local/memcached/bin目录,执行

./memcached -u nobody -m 512m -d   启动memcached,身份为nobody,内存大512M

3.本地连接测试memcached

1.安装telnet

2.Telnet到本机,用11211端口

[root@centos ~]# telnet 127.0.0.1 11211

3.set foo 0 0 3     (保存命令)

 bar               (数据)

4.get foo           取出foo的值;

显示 VALUE foo 0 3    

bar    值为bar,则memcached正常运行。


四.Web服务器测试与其他服务器的整合与测试

1.测试fastcgi

[root@centos ~]# cd /usr/local/apache/htdocs/ 进入php站点主目录

root@centos htdocs]# vim index.php  编辑静态页面,显示php信息

<?php

phpinfo();

?>

访问测试:出现php信息为连接正常。

wKiom1L4MKSQMYpwAAM8e3hg26g738.jpg


2.web服务器安装memcache插件测试;

一.安装

[root@centos ~]# tar -zxvf memcache-2.2.7.tgz -C /usr/local/src/

[root@centos ~]# cd /usr/local/src/memcache-2.2.7/

[root@centos memcache-2.2.7]# /usr/local/php/bin/phpize

[root@centos memcache-2.2.7]# ./configure --enable-memcache --with-php-config=/usr/local/php/bin/php-config

最后make 和 make install 安装;

二.修改

/etc/php/php.ini下加入下面一行;

extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/memcache.so

重启php-fpm服务;

三.测试

测试php能否调用memcache模块:

编辑vim /usr/local/apache/htdocs/index.php网页,修改为如下:

<?php

phpinfo();

?>

查看模块调用;

wKiom1L4MJuBaxV-AANcwBrxo8s640.jpg

3.测试mysql

1.mysql服务器和memcached服务器的主机网卡设为VMnet2


wKiom1L4MrmQqkl8AAHNh2coJlw101.jpg


2.apache服务器上添加网卡,设置地址为192.168.3.1,并设为VMnet2.

测试与mysql服务器的连接:

[root@centos ~]# ping 192.168.3.101

PING 192.168.3.101 (192.168.3.101) 56(84) bytes of data.

64 bytes from 192.168.3.101: icmp_seq=1 ttl=64 time=41.8 ms

64 bytes from 192.168.3.101: icmp_seq=2 ttl=64 time=0.836 ms

3.mysql服务器默认只能本机的管理员能登陆,要做修改,能让用户从其他机器连接到数据库。

3.1.在mysql服务器下进入数据库,输入密码123,

wKioL1L4MpWh3dvBAAAs0t9k9k8362.jpg

3.2.use mysql: 选中mysql数据库;

  添加任何机器访问的权限:

wKiom1L4Mrriw9iQAAArlXlQLXQ606.jpg

3.3.[root@centos ~]# cd /usr/local/apache/htdocs/ 进入php站点主目录

root@centos htdocs]# vim index.php  编辑静态页面,如果能连接到数据库,则显示ok,代码如下:

<?php

$aa=mysql_connect('192.168.3.101','root','123');

       if ($aa)

       echo "ok";

       else

       echo "not ok";

?>

测试访问:出现ok则表示能正常访问mysql

wKiom1L4MrzzHzC_AAHf2WMPBrw711.jpg

3.测试php 通过memcache客户端与memcached服务器的连接;

编辑站点主目录下的页面,vim /usr/local/apache/htdocs/index.php,内容如下:

<?php

error_reporting(E_ALL&~E_NOTICE);                              

                              $mc = new memcache;

                               $mc->addServer("192.168.3.102", 11211);

                               $mc->set("foo", "Hello!");

                               $mc->set("bar", "Memcached...");

                               $arr = array(

                                       $mc->get("foo"),

                                       $mc->get("bar")

                               );

                               var_dump($arr);

?>

打开浏览器访问:

wKioL1L4MpmweWKbAAF1zEhk7nA177.jpg

从memcached服务器进入测试:

.Telnet到本机,用11211端口

[root@centos ~]# telnet 127.0.0.1 11211

2.get foo           取出foo的值,显示为hello为正常。

3.get bar  取出bar值,显示为Memcached...为正确。

wKiom1L4Mr3CtiV9AACSUq-Pzmg764.jpg


博客到此结束,希望对您有所帮助。



你可能感兴趣的:(memcached,lammp)