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.服务器架构:
注: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.1安装编译环境;
安装开发工具“Development Tools”;
1.2.安装apache 2.4;
一.先安装apr 以及apr-util 以及pcre-devel ;
把apr,apr-util,apache源码展开,逐个安装;安装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
执行make和make install;
[root@centos apache]# /usr/local/apache/bin/httpd -k start 开启apache服务;
1.3.安装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 设置开机启动
1.4.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
1.5.测试apache与fastcgi的结合
[root@centos ~]# cd /usr/local/apache/htdocs/ 进入php站点主目录
root@centos htdocs]# vim index.php 编辑静态页面
<?php
phpinfo();
?>
访问测试:出现php信息为连接正常。
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
3.1memcached简介
1.memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。现在已成为 mixi、 hatena、 Facebook、 Vox、LiveJournal等众多服务中 提高Web应用扩展性的重要因素。
许多Web应用都将数据保存到RDBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。
这时就该memcached大显身手了。memcached是高性能的分布式内存缓存服务器。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。
2.memcached作为高速运行的分布式缓存服务器,具有以下的特点:
1.协议简单
2.基于libevent的事件处理
3.内置内存存储方式
4.memcached不互相通信的分布式
3.Memcache工作原理如图:
1.当用户第一次访问web服务器的内容时,web服务器调用数据库中的内容返回给用户,并把内容存至memcached缓存中;
2.当第二次用户再次访问同样的内容时,web服务器不用经过数据库而是直接memcached缓存交给web服务器来返回给用户。这样做大大提高了访问速度。
3.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信息为连接正常。
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();
?>
查看模块调用;
3.测试mysql
1.将mysql服务器和memcached服务器的主机网卡设为VMnet2;
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,
3.2.use mysql: 选中mysql数据库;
添加任何机器访问的权限:
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;
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);
?>
打开浏览器访问:
从memcached服务器进入测试:
1.Telnet到本机,用11211端口
[root@centos ~]# telnet 127.0.0.1 11211
2.get foo 取出foo的值,显示为hello为正常。
3.get bar 取出bar值,显示为Memcached...为正确。
博客到此结束,希望对您有所帮助。