LAMMP搭建
一、简介
LAMMP,是几个英文单词首字母的缩写。
L是Linux的缩写,Linux操作系统,Linux以稳定、安全、且开源著称的操作系统,适用于做服务器。
A是Apache的缩写,Apache是一款提供Web服务器的开源软件,Apache是一个极具稳定安全、高度模块化、支持模块动态扩展的Web服务器,是搭建Web服务器的首选之一,据统计全球有50%左右的Web服务器是用Apache搭建的。http://www.netcraft.com/这个网站,是对全球web服务器的排名。
M是Mysql的缩写,Mysql是数据库管理系统,数据库管理软件,也是开源软件。
M是Memcached的缩写,Memcached是一款开源、高性能、分布式内存对象缓存系统,可应用各种需要缓存的场景,其主要目的是通过降低对Database的访问来加速web应用程序。它是一个基于内存的“键值对”存储,用于存储数据库调用、API调用或页面引用结果的直接数据,如字符串、对象等。
Memcached是一款开发工具,它既不是一个代码加速器,也不是数据库中间件。其设计哲学思想主要反映在如下方面:
1. 简单key/value存储:服务器不关心数据本身的意义及结构,只要是可序列化数据即可。存储项由“键、过期时间、可选的标志及数据”四个部分组成;
2. 功能的实现一半依赖于客户端,一半基于服务器端:客户负责发送存储项至服务器端、从服务端获取数据以及无法连接至服务器时采用相应的动作;服务端负责接收、存储数据,并负责数据项的超时过期;
3. 各服务器间彼此之间不互相通信:不在服务器间进行数据同步;服务器宕机,存储的数据立即丢失
4. O(1)的执行效率
5. 清理超期数据:默认情况下,Memcached是一个LRU缓存,同时,它按事先预订的时长清理超期数据;但事实上,memcached不会删除任何已缓存数据,只是在其过期之后不再为客户所见;而且,memcached也不会真正按期限清理缓存,而仅是当get命令到达时检查其时长。
P是PHP的缩写,是一种面向对象的编程语言。
二、软件包
Apache服务器
apr-1.4.6.tar.bz2
apr-util-1.5.1.tar.bz2 下载地址:http://apr.apache.org/
httpd-2.4.4.tar.bz2 下载地址:http://httpd.apache.org/
php
php-5.5.8.tar.bz2
下载地址:http://www.php.net/downloads.php
xcache-3.1.0.tar.gz
http://xcache.lighttpd.net/wiki/Release-3.1.0
memcache-2.2.7.tgz
mysql服务器
mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz
http://dev.mysql.com/downloads/mysql/
memcached服务器
memcached-1.4.15.tar.gz
http://code.google.com/p/memcached/downloads/list
libevent-2.0.16-stable.tar.gz
三、拓扑结构
三、安装配置
1、安装Apache服务
(1)先将打包的HTTP软件包解压到/usr/local/src目录下。使用如下命令:
tar -jxvf httpd-2.4.4.tar.bz2 -C /usr/local/src
注意软件包使用的是什么格式的打包压缩,这里使用的是tar+bzip2,要使用相对应的参数。
(2)接下来就要安装,一般源文件里都提供有install文件或readme文件,在源文件中找到INSTALL文件,用less INSTALL 命令查询具体方法。找到之后,首先我们要明确的是将软件安装的什么路径下,这里也有一些指令说明:
./configure --prefix=PREFIX 这是指明安装路径的命令,
如下指令
./configure --prefix=/usr/local/apache //apache是自己定义的目录
但是在执行命令中是要检测编译环境时会报错:
checking for APR... no
configure: error: APR not found.
需要我们安装APR软件包。我们已经有了安装包,那就解压到对应目录,鉴于方便我们这里也直接将apr-util软件包也解压了。然后我们要先安装apr,
./configure --prefix=/usr/local/apr
然后执行命令 make && make install 该命令是有两条命令的组合命令,第一条make命令是针对apr安装生成的makefile文件来操作的,mak主要对makefile文件中定义的一些规则来进行编译,主要生成二进制文件,手册,头文件,库文件。make install命令是将生成的那四类文件进行性存放,必须要存放在指定的目录里,这与在./configure命令的设置的选项有关。
(3)在生成的lib文件中存放着安装的库文件,但是你想要系统访问到,能找到你的库文件,那就要将你的lib文件放在/etc/ld.so.conf.d/ 目录下,目录下你要建一个conf文件,例:apr.conf 就可以了。注意:要ldconfig命令更新缓存之后,你再查看能在系统缓存中找你的库文件。
(4)接下来就是include文件,系统想要访问头文件就要创建头文件的链接,如下:
ln -s /usr/local/apr/include/apr-1 apr
lrwxrwxrwx. 1 rootroot 28 Dec 16 00:26 apr -> /usr/local/apr/include/apr-1
(5)安装apr-util 其步骤大致和上述一致。
注意一点,在安装时需要指明apr的路径,因为apr-util是apr的工具,当然要找到apr的位置,如下指令:
./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
(6)继续安装HTTP
./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 //指明Apache服务与php的连接是使用event类型
指定之后继续执行,但是有时候还是会遇到问题比如:checking for pcre-config... false configure: error: pcre-config for libpcre not found. PCRE is requiredand available from http://pcre.org/这是缺少pcre-config,我们到光盘目录下包含pcre-config文件的包,安装就可以了。
如:yum installpcre-devel --disablerepo=\* --enablerepo=c6-media
继续安装HTTP,成功之后,继续执行make make install 指令。然后指定头文件位置:
cd /usr/include/ ln -s /usr/local/apache/include/ apache
安装后形成的bin目录下有许多可执行文件,但是我们执行时不能总到bin目录下执行,不方便,这时需要我们修改环境变量,在/etc/profile 环境变量文件中修改,加上PATH=$PATH:/usr/local/apache/bin ,这是在其追加上bin目录。
注意:有时候在安装之后man手册不能使用,那是就要将man手册的路径加到/etc/man.config文件中,加上MANPATH /usr/local/apahe/man 。
编写控制脚本:
在/etc/init.d/目录下编写控制脚本。
#!/bin/bash
prog=/usr/local/apache/bin/httpd
lockfile=/var/lock/subsys/httpd
start () {
if [ -e $lockfile ];then
echo "the httpdserver is started"
else
echo -n "the httpdserver is starting......"
sleep 1
$prog -k start&& echo -e"[\033[32mOK\033[0m] " && touch $lockfile ||echo"failer"
fi
}
stop () {
if [ !-e $lockfile ];then
echo "the httpdserver is stoped"
else
echo -n "the httpdserver is stoping......"
sleep 1
$prog �Ck stop && echo "OK" && rm-rf $lockfile || echo "failer"
fi
}
status (){
if [ -e $lockfile ];then
echo "the httpdis running..."
else
echo "the httpdis stop "
fi
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
status
;;
*)
echo "USAGE:start|stop|restart"
esac
service httpd start//启动服务
2、mysql安装(二进制文件安装)
[root@ahao1 local]# tar -zxvfmysql-5.6.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local //因为是二进制文件安装直接解压就可以了
[root@ahao1 local]# yum --disablerepo=\* --enablerepo=c6-mediaremove mysql-server //在安装之处系统就安装有mysql服务工具,我们想要使用自己安装的,所以要卸载系统自身的
[root@ahao1 local]# ln -s mysql-5.6.15-linux-glibc2.5-x86_64/mysql //创建链接
安装配置如下:
shell>groupadd mysql //用户名为mysql的账号和组已经在系统中添加过。
shell> useradd-r -g mysql mysql
shell> cd /usr/local/mysql
shell> chown-R mysql .
shell> chgrp-R mysql .
shell>scripts/mysql_install_db --user=mysql //这里会出现错误缺少libaio异步IO接口
[root@ahao1 mysql]#yum --disablerepo=\* --enablerepo=c6-media install libaio
shell> chown-R root .
shell> chown-R mysql data
# Next command isoptional
shell> cpmy.cnf /etc/my.cnf
shell> cpsupport-files/mysql.server /etc/init.d/mysqld
chmod a+x /etc/init.d/mysqld
chkconfig--add mysqld //加入chconfig管理
chkconfig mysqld on
因为这次我们的mysql服务安装在不同的主机上,所以在我们通过客户机访问的时候,按照默认的是不能访问的,所以我们更改默认配置:
[root@ahao1 mysql]# /usr/local/mysql/bin/mysql -u root �Cp//登录
mysql> grant all privileges on *.* to root@'%' identified by'123';
Query OK, 0 rows affected (0.05 sec) //更改为任意地址都能完全访问,mysql,并设置密码为123
mysql> flush privileges; //刷新配置
3、php安装
[root@ahao~]# tar -jxvf php-5.5.8.tar.bz2 -C /usr/local/src
[root@ahao~]# mkdir -pv /etc/php /etc/php5.d
[root@ahao php-5.5.8]# yum --disablerepo=\*--enablerepo=c6-media install libxml2-devel //安装缺少的软件包
[root@ahao 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-jpeg-dir--with-zlib --with-freetype-dir--with-config-file-path=/etc/php --with-config-file-scan-dir=/etc/php5.d
[root@ahao php-5.5.8]# make && make install
[root@ahao php-5.5.8]# cp php.ini-development /etc/php/php.ini
[root@ahao php-5.5.8]# cp sapi/fpm/init.d.php-fpm/etc/init.d/php-fpm //创建启动脚本程序
[root@ahao php-5.5.8]# cd /usr/local/php/etc
[root@ahao etc]# cp php-fpm.conf.default php-fpm.conf
//创建配置文件
[root@ahao etc]# service php-fpm start //启动服务
打开主配置文件修改如下内容
[root@localhost ~]# vim /etc/httpd/httpd.conf
添加Apache与php结合使用的模块
添加php默认页面
添加实现反向代理的页面
[root@localhost ~]# service httpd restart //重新启动服务
4、memcached安装
安装libevent
[root@ahao ~]#tar �Czxvf libevent-2.0.16-stable.tar.gz�CC /usr/local/libevent
[root@ahao1 libevent-2.0.16-stable]# ./configure--prefix=/usr/local/libevent
[root@ahao1 libevent]# make && make install
[root@ahao1 libevent]# vim /etc/ld.so.conf.d/libevent.conf
//将libevent的库文件存放在系统能访问的地方
写入/usr/local/lievent/lib
安装memcached
[root@ahao1 memcached-1.4.15]# tar -zxvf memcached-1.4.15.tar.gz-C /usr/local/src
[root@ahao1 ~]# cd /usr/local/src/memcached-1.4.15/
[root@ahao1 memcached-1.4.15]# ./configure--prefix=/usr/local/memcached --with-libevent=/usr/local/libevent/
[root@ahao1 memcached-1.4.15]# make && make install
[root@ahao1 memcached-1.4.15]# cd /usr/local/memcached/bin
[root@ahao1 bin]# ./memcached -u nobody -m 512m -d �Cvv //启动memcached
[root@ahao1 bin]# telnet 127.0.0.1 11211//试验一下是否memcached可以运行,
set foo 0 0 3 (保存命令)
bar (数据)
STORED (结果)
get foo (取得命令)
VALUE foo 0 3 (数据)
bar
//telnet之后就进行后续的测试,如果安装成功是可以正常运行的
5、安装xcache实现缓存
[root@ahao ~]# tar -zxvf xcache-3.1.0.tar.gz -C /usr/local/src
[root@ahao ~]# cd /usr/local/src/
[root@ahao src]# cd xcache-3.1.0/
[root@ahao xcache-3.1.0]# /usr/local/php/bin/phpize
//生成xcache动态链接库
[root@ahao xcache-3.1.0]# ./configure --enable-xcache--with-php-config=/usr/local/php/bin/php-config
[root@ahao xcache-3.1.0]# make && make install
[root@ahao xcache-3.1.0]# cp xcache.ini /etc/php5.d/
[root@ahao xcache-3.1.0]# cd /etc/php5.d
[root@ahao php5.d]# vimxcache.ini //添加xcache的动态链接库
[root@ahao php5.d]# service php-fpm restart
[root@ahao php5.d]# vim /usr/local/apache/htdocs/index.php //写一个小的测试页面、包含了phpinfo函数。
现在可以在浏览器中测试一下:
在浏览器地址中输入http://192.168.1.199/index.php
证明xcache缓存实现成功了
6、安装memcache客户端
[root@ahao ~]# tar -zxvf memcache-2.2.7.tgz -C /usr/local/src
[root@ahao~]# cd /usr/local/src/memcache-2.2.7/
[[email protected]]# /usr/local/php/bin//phpize
[root@ahao memcache-2.2.7]# ./configure--with-php-config=/usr/local/php/bin/php-confiig --enable-memcache
[[email protected]]# make && make install
[[email protected]]# vim /etc/php5.d/xcache.ini
加上memcache的动态链接库
在浏览器地址中输入http://192.168.1.199/index.php
Memcache也安装成功、
四、测试
[[email protected]]# vim /usr/local/apache/htdocs/index1.php
//写入以下代码
<?php
error_reporting(E_ALL& ~E_NOTICE);
$mc= new memcache;
$mc->addServer("192.168.1.139",11211);
$mc->set("foo","Hello!");
$mc->set("bar","Memcached...");
$arr= array(
$mc->get("foo"),
$mc->get("bar")
);
var_dump($arr);
?>
在浏览器地址中输入http://192.168.1.199/index1.php
显示为成功。
我们可以到memcached服务器上查看是否有这两个字符串。
这样就表示成功了,这我们的LAMMP的环境就搭建好了。