LAMMP架构源码搭建

LAMMP简介:

L:即Linux操作系统,linux是一款非常稳定、安全的操作系统,并以开源著称。适用于服务器。

A:即Apache,一款提供WEB服务的开源软件,是一个非常稳定、安全、高度模块化、支持模块动态扩展的Web服务器,是搭建Web服务器的首选之一

M:即mysql,mysql是一款数据库管理系统软件,同时也是一款开源软件。

M:即memcached,Memcached是一个开源的、高性能、分布式内存对象缓存系统,应用于各种需要缓存的场景,主要作用是通过降低对Database的访问来加速web应用程序。Memcached是基于内存的键值对存储。

P:即PHP,一种面向对象编程语言。

LAMMP架构拓扑示例:

wKiom1MBq5ChLokfAAFW2uDPfTQ226.jpg


LAMMP架构是分别搭建在不同的服务器上面。在实际环境中,如果一台服务器提供多种应用,那服务器的资源消耗会大的不敢想象,提供服务的性能也会降低。而采用此种构架,由于各服务是安装在不同的主机上的,因此服务器的服务性能将得到很大提高。

图示架构中各服务器的工作

     Apache服务器响应并回复用户的请求

     FastCGI把php程序执行的结果响应给Apache

     Memcached根据用户请求的动态网页文件中是否需要Memcached服务器缓存数据,做出相应响应。Memcached是把数据存储在内存中的,因此速度会很快。

     Mysql响应用户是否需写入查询数据用户的请求资源到获取资源的过程。

LAMMP源码包下载:http://t.cn/8FjDwCv

LAMMP实现:

准备系统环境:

yum  --disablerepo=\*  --enablerepo=c6-media groupinstall "Development tools"
yum  --disablerepo=\*  --enablerepo=c6-media   install  pcre-devel
yum  --disablerepo=\*  --enablerepo=c6-media  install  libxml2-devel
yum --disablerepo=\* --enablerepo=c6-media install telnet

一、Apache&PHP服务器搭建

1、安装apr

tar  -zxvf  apr-1.4.6.tar.gz   -C  /usr/local/src/
cd /usr/local/src/apr-1.4.6
./configure    --prefix=/usr/local/apr
make  &&  make install

2、安装apr-util

tar  -zxvf  apr-util-1.5.1.tar.gz   -C  /usr/local/src/
cd /usr/local/src/apr-util-1.5.1
./configure    --prefix=/usr/local/apr-util    --with-apr=/usr/local/apr/bin/apr-1=config
make  &&  make   install

3、安装httpd

tar  -jxvf  httpd-2.4.4.tar.bz2   -C  /usr/local/src/
cd   /usr/local/src/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
make  &&  make  install


进入/etc/init.d目录下,touch一个新文件,并编写httpd的启动脚本。

#!/bin/bash                                   #指明shell
prog=/usr/local/apache/bin/httpd
lockfile=/var/lock/subsys/httpd.lock
# chkconfig:2345 85 65                        #设置开机启动顺序
# description:I'm HTTP Server                 #简单描述
start   () {
        if [ -e $lockfile ];then
        echo "httpd is started"
        else
        echo -n "httpd is starting......                "
        sleep 1
        $prog -k start && echo "OK" && touch $lockfile || echo "fail"
        fi
}
stop    () {
        if [ ! -e $lockfile ];then
        echo "httpd is stoped"
        else
        echo -n "httpd is stoping......         "
        sleep 1
        $prog -k stop && echo "OK" && rm -rf $lockfile || echo "fail"
        fi
}
status  ()  {
        if [ -e $lockfile ];then
        echo "httpd is running"
        else
        echo "httpd is stoped"
        fi
}
case "$1" in
start)
        start
        ;;
stop)
        stop
        ;;
restart)
        stop
        start
        ;;
status)
        status
        ;;
*)
        echo "Usage:start|stop|restart|status"
esac

脚本编写完毕后赋予文件可执行权限并加入开机启动。

chmod a+x  httpd
chkconfig    --add  httpd
chkconfig    httpd on
chkconfig    --list |grep httpd  #确认结果

wKiom1L4isiRXHo0AABGIJhTzNg856.jpg


4、安装php

mkdir -pv /etc/php  /etc/php5.d
tar  -jxvf  php-5.5.8.tar.bz2   -C  /usr/local/src
cd /usr/local/src/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
make  &&  make  install


切换到拆解后目录,拷贝php配置文件。

cp  php.ini-development   /etc/php/php.ini

把/usr/local/src/php-5.5.8/sapi/fpm目录下的这两个文件拷贝走。

cp  init.d.php-fpm  /etc/init.d/php-fpm

chmod a+x /etc/init.d/php-fpm

切换到/usr/local/php/etc/目录下

cp php-ftp.conf.default  php-ftp.conf

启动服务,成功后也将php加入开机启动项,并确定服务端口处于监听状态.

chkconfig --add php-fpm   
chkconfig  php-fpm  on    
chkconfig  --list |grep  fpm

wKiom1L4i1WA9l7gAABGFlj7Ydw587.jpg

5、整合Apache与PHP.编辑Apache的配置文件,修改配置.

wKiom1L4OXvCMLFOAAD2lQtfDDY572.jpg

wKioL1L4OVjj11E2AACL_uLPhcI114.jpg

wKiom1L4OX-RcwxLAACENUK_j88281.jpg

  重启服务,使配置文件生效.做一个小的测试.切换到/usr/local/apache/htdocs目录下,touch一个新文件index.php,编写内容:

<?php
phpinfo  ();
?>

OK,在浏览器地址栏中输入服务器的地址,查看结果.

wKioL1L4OUeyHjYaAAHUzBUGHiM994.jpg


6、安装xcache

tar  -zxvf  xcache-3.1.0.tar.gz   -C  /usr/local/src/
cd /usr/local/src/xcache-3.1.0/
/usr/local/php/bin/phpize
./configure  --enable-xcache --with-php-config=/usr/local/php/bin/php-config
make  &&  make  install
cp  xcache.ini   /etc/php5.d/

编辑/etc/php5.d/xcache.ini,把xcache的模块路径写进文件中。完成后重启服务并检测结果。

wKioL1L5piTgylOtAAB1cOmw5Pc982.jpg

wKiom1L5pv3RKxxJAAEO9x3qwuw085.jpg


7、安装memcache

tar  -zxvf  memcache-2.2.7.tgz  -C  /usr/local/src/
cd  /usr/local/src//memcache-2.2.7/
/usr/local/php/bin/phpize
./configure   --enable-memcache  --with-php-config=/usr/local/php/bin/php-config
make  &&  make  install

编辑/etc/php5.d/xcache.ini文件,将memcache的模块路径写入配置文件。

wKioL1L4i_yDgo82AABFAdJb8qQ651.jpg

wKiom1L4jCSgUoorAAEpZXU0UxI605.jpg


二、安装Mysql Server

   系统在安装的时候可能已经安装过MySQL了,等咱们这个MySQL安装完成后启动的时候可能启动是系统安装的那个MySQL,因此需要将之前的MySQL卸载掉,如果你的系统中没有安装的话那就不用担心这一步了。

tar  -zxvf  mysql-5.5.35-linux2.6-i686.tar.gz   -C  /usr/local/src/
groupadd mysql
useradd -r -g mysql mysql
cd /usr/local
ln -s mysql-5.5.35-linux2.6-i686/  mysql
cd mysql
chown -R mysql .
chgrp -R mysql .
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chmod  a+x  /etc/init.d/mysqld
chkconfig    --add mysqld
chkconfig    mysqld  on

指定库文件路径,编辑/etc/ld.so.conf.d/mysqlconf文件,把mysql的库文件路径写入文件中。

wKiom1L3RSfTR5geAADyFuiCQRA211.jpg

指定man手册路径

wKioL1L3RQXy9yDoAABoF0G2tPM525.jpg

修改PATH变量路径

wKiom1L3RR_gcRt2AAAneUNrGL4338.jpg

wKioL1L3RP6R4vzyAABxPE4RNOc486.jpg

启动MySQL服务.

mysqladmin -u root -p password '***'    #配置MySQL登录密码

由于各服务器分布地理位置不同,为满足对数据库的访问,需要在数据库中建立账号并给予可登陆权限.

wKioL1L4OUihdFllAACeGE84p7g105.jpg

wKiom1L4OWzycryEAABIZbi67iQ952.jpg


三、安装memcached

1、安装libevent

tar  -zxvf  libevent-2.0.21-stable.tar.gz   -C  /usr/local/src/
cd   /usr/local/src/libevent-2.0.21-stable
./configure    --prefix=/usr/local/libevent
make  &&  make  install

编辑/etc/ld.so.conf.d/libevent文件,将libevent的库文件路径写入文件中,方便系统读取.

wKiom1L4OXHQbs-ZAADc6C5r5QU083.jpg


2、安装memcached

tar  -zxvf  memcached-1.4.17.tar.gz    -C  /usr/local/src/
cd /usr/local/src/memcached-1.4.17
./configure  --prefix=/usr/local/memcached  --with-libevent=/usr/local/libevent/
make &&  make  install
cd /usr/local/memcached/bin
./memcached   -u nobody   -m  512m  -d    #启动memcached

启动后查看服务状态并连接测试.

wKioL1L4OVPTrsZAAAChU4yPbBQ904.jpg


四、测试PHP与MySQL通过Memcached链接,切换到/usr/local/apache/htdocs/目录下,touch一个新文件,编写脚本.完成后在浏览器的地址栏中输入服务器的地址后要加刚刚创建的文件名,这样才能访问到.

<?php
error_reporting(E_ALL & ~E_NOTICE);     #报告错误
$mc = new memcache;             #客户端工具为memcache
$mc->addServer("192.168.3.102", 11211);  #memcached服务器地址
$mc->set("foo", "Hello!");       #set一个键与值
$mc->set("bar", "Memcached..."); 
$arr = array(
$mc->get("foo"),         #再get出来
$mc->get("bar")
);
var_dump($arr);             #显示数组内容
?>


wKiom1L4jCTCRvBYAAAigJzdk2Y474.jpg

wKioL1L4jAGiONnEAACL0lPFz6I282.jpg


  缺少了一个应用实例,这个后期会补上。本人也是刚刚接触Linux,可能博客中有很多纰漏、不足或者严重的错误,希望各位博友提醒指正。一起进步.








你可能感兴趣的:(mysql,memcached,lammp,lammp源码搭建)