最新消息:

构建企业级LAMP环境

apache admin 2881浏览 0评论

一、LAMMP简介

二、LAMMP项目环境简介

三、Apache的安装与配置

四、FastCGI的安装与配置

五、整合Apache与PHP服务

六、安装Mysql服务器

七、安装Memcache与libevent

八、安装Memcache 基于Web管理平台

 


 

一、LAMMP简介

LAMP(Linux- Apache-MySQL-PHP)网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网络服务器,MySQL数据 库,Perl、PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和 Java/J2EE架构相比,LAMP具有Web资源丰富、轻量、快速开发等特点,微软的.NET架构相比,LAMP具有通用、跨平台、高性能、低价格的 优势,因此LAMP无论是性能、质量还是价格都是企业搭建网站的首选平台。在此基础上我们增加了Memcache缓冲服务器,解决了应用程序与数据库之间的瓶颈问题,有效提高了访问速度,这就是LAMMP架构。

 

二、LAMMP项目环境简介

系统环境:centos6.4-x86_64

所需软件以及下载地址:memcache-2.2.7 (http://www.pecl.php.net/package/memcache) memcached-1.4.17.tar.gz (http://www.memcached.org/ )  apr-1.4.6、apr-util-1.5.1、httpd-2.4.4(http://pan.baidu.com/s/1pJFGBlL ) php-5.5.8、mysql-5.6.15-linux-glibc2.5-x86_64、libevent-2.0.16-stable(http://pan.baidu.com/s/1bnrcENd)

拓扑图:

wKiom1L3KQiQRwa9AADdYf4VScg010.jpg

ip地址规划:

httpd+php服务器:192.168.29.20 192.168.29.30

memcached服务器: 192.168.29.40

mysql服务器:192.168.29.50

三、Apache的安装与配置

  • 准备系统环境:
[root@aikaiyuan ~]# yum –disablerepo=* –enablerepo=c6-media groupinstall “Development tools”

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

  • 安装apr
[root@aikaiyuan ~]# tar -zxvf apr-1.4.6.tar.gz -C /usr/local/src/

[root@aikaiyuan apr-1.4.6]# ./configure –prefix=/usr/local/apr

[root@aikaiyuan apr-1.4.6]# make && make install

 

  • 安装apr-util

[root@aikaiyuan ~]# tar -zxvf apr-util-1.5.1.tar.gz -C /usr/local/src

[root@aikaiyuan apr-util-1.5.1]# ./configure –prefix=/usr/local/apr-util –with

-apr=/usr/local/apr/bin/apr-1-config

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

  • 安装Apache[root@aikaiyuan ~]# tar -jxvf httpd-2.4.4.tar.bz2  -C /usr/local/src

[root@aikaiyuan 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

[root@aikaiyuan httpd-2.4.4]# make && make install

  • 编写httpd控制脚本/etc/init.d/httpd,内容如下

#!/bin/bash

 

#chkconfig: 2345 88 40

#description: the server is httpd server

prog=/usr/local/apache/bin/httpd

lockfile=/var/lock/subsys/httpd

start(){

if [ -e $lockfile ];then

echo “httpd server isstarted”

else echo -n “httpd server isstarting… ”

sleep 1

$prog -k start &>/dev/null  && echo  “[ ok ]” && touch $lockfile||echo “[ failer ]”

fi

}

stop(){

if [ ! -e $lockfile ];then

echo “httpd server is stoped”

else echo -n “httpd server isstoping… ”

sleep 1

$prog -k stop && echo “[ok ]” && rm -rf $lockfile ||echo “[ failer ]”

 

fi

}

status(){

if [ -e $lockfile ];then

echo “httpd server isstarted”

else echo “httpd server no found”

fi

}

case $1 in

start)

start

;;

stop)

stop

;;

restart)

stop

start

;;

status)

status

;;

*)

echo”USAGE:start|stop|restart|status”

;;

esac

  • 为此脚本赋予执行权限
[root@aikaiyuan ~]# chmod a+x /etc/init.d/httpd

 

  • 将httpd加入服务列表
[root@aikaiyuan ~]# chkconfig –add httpd

 

  • 启动httpd服务
[root@aikaiyuan ~]# service httpd start

httpd server is starting… [ ok ]

 

  • 客户端访问测试

wKioL1L3OGWBDyleAADEbUY9tds787.jpg

 

四、php的安装与配置

  • 系统环境安装
[root@aikaiyuan ~]# yum –disablerepo=* –enablerepo=c6-media install libxml2-devel openssl-devel

 

  • 安装php服务
[root@aikaiyuan ~]# tar -jxvf php-5.5.8.tar.bz2 -C /usr/local/src

[root@aikaiyuan 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@aikaiyuan php-5.5.8]# make && make install

  • 为php提供配置文件
[root@aikaiyuan php-5.5.8]# cp php.ini-production /etc/php/php.ini

 

  • 为php-fpm产生控制脚本,并且给于可执行权限
[root@aikaiyuan php-5.5.8]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

[root@aikaiyuan php-5.5.8]# chmod a+x /etc/init.d/php-fpm

 

  • 为php-fpm提供配置文件:
[root@aikaiyuan ~]# cd /usr/local/php/etc

[root@aikaiyuan etc]# cp php-fpm.conf.default php-fpm.conf

  • 启动php-fpm服务
[root@aikaiyuan etc]# service php-fpm start

Starting php-fpm  done

 

  • 查看服务是否已经启动

wKiom1L3UJnRV2lyAACLgrzF7OU627.jpg

五、整合Apache与PHP服务

  • 配置Apache服务器

wKiom1L3UmLzTJTkAABaPh-fVko275.jpg

wKioL1L3VgzBGUo9AACmVn63hxQ773.jpg

在配置文件中任意位置添加下面两句话

AddType application/x-httpd-php .php

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

添加默认php主页

DirectoryIndex index.php index.html

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

 

  • 重新启动httpd服务
[root@aikaiyuan htdocs]# service httpd restart

 

  • 创建php测试脚本
  [root@aikaiyuan etc]# cd /usr/local/apache/htdocs/

[root@aikaiyuan htdocs]# vim index.php

<?php

phpinfo();

?>

 

 

  • 客户端测试php是否工作正常

wKioL1L3VtzD5BeAAAMagrQxvEQ755.jpg

六、安装Mysql服务器

Mysq有三种安装方式

  1. rpm包
  2. 通用二进制包
  3. 源码包

此处我们采用通用二进制包安装

  • 安装并初始化mysql
[root@aikaiyuan ~]# tar -zxvf mysql-5.6.15-linux-glibc2.5-x86_64.tar.gz -C /usr/local/

[root@aikaiyuan local]# ln -s mysql-5.6.15-linux-glibc2.5-x86_64 mysql

[root@aikaiyuan local]# groupadd mysql

[root@aikaiyuan local]# useradd -r -g mysql mysql

[root@aikaiyuan local]# chown -R mysql:mysql .

[root@aikaiyuan local]# cd mysql

[root@aikaiyuan mysql]# ./scripts/mysql_install_db –user=mysql

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

[root@aikaiyuan mysql]# chown -R mysql data/

 

  • 为mysql提供主配置文件
 
[root@aikaiyuan mysql]# cd support-files/

[root@aikaiyuan support-files]# cp my-default.cnf /etc/my.cnf

 

 

  • 为mysql提供sysv服务脚本并添加到服务列表
[root@aikaiyuan support-files]# cp mysql.server /etc/init.d/mysqld

[root@aikaiyuan support-files]# chmod a+x /etc/init.d/mysqld

[root@aikaiyuan support-files]# chkconfig –add mysqld

[root@aikaiyuan support-files]# chkconfig mysqld on

 

  • 输出mysql的man手册至man命令的查找路径
[root@aikaiyuan mysql]# vim /etc/man.config

wKioL1L3Rjjy-F7YAAAs1B-YOPU641.jpg

 

 

  • 修改PATH环境变量,让系统可以直接使用mysql的相关命令。
[root@aikaiyuan mysql]# vim /etc/profile

wKiom1L3R07gkXjZAAAwgWdLwyE847.jpg

 

  • 启动mysqld服务
[root@aikaiyuan mysql]# service mysqld start

Starting MySQL…….. SUCCESS!

 

  • 创建mysql管理帐号

[root@aikaiyuan mysql]# mysqladmin -u root -p password ‘123’

  • 数据库授权
root@aikaiyuan ~]# mysql -u root -p

mysql> grant all privileges on *.* to root@’%’ identified by ‘123’;

Query OK, 0 rows affected (0.18 sec)

 

  • 客户端连接测试在httpd+php服务器上编辑index.php网页

    wKiom1L4KzXjEO9dAACKOd18dP4606.jpg

     

测试链接

wKioL1L4K1SSG33_AABOSG787hM583.jpg

七、安装Memcache与libevent

  • 安装libevent

memcached依赖于libevent API,因此要事先安装。

[root@aikaiyuan ~]# tar -zxvf libevent-2.0.16-stable.tar.gz -C /usr/local/src

[root@aikaiyuan ~]# cd /usr/local/src/libevent-2.0.16-stable

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

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

 

[root@aikaiyuan libevent-2.0.16-stable]# cd /usr/local/libevent/

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

/usr/local/libevent/lib

[root@aikaiyuan include]# ldconfig

  • 安装memcached
[root@aikaiyuan ~]# tar -zxvf memcached-1.4.17.tar.gz -C /usr/local/src

[root@aikaiyuan ~]# cd /usr/local/src/memcached-1.4.17

[root@aikaiyuan memcached-1.4.17]# ./configure –prefix=/usr/local/memcached –with-libevent=/usr/local/libevent/

[root@aikaiyuan memcached-1.4.17]# make && make install

 

  • 启动memcached并查看监听端口 
 

[root@aikaiyuan memcached-1.4.17]# cd /usr/local/memcached/bin

[root@aikaiyuan bin]# ./memcached -u nobody -m 512m -d

[root@aikaiyuan bin]# netstat -tupln |grep 11211

wKiom1L4NsWDo_0bAADaoTzwuW0962.jpg

  • 安装Memcache客户端
[root@aikaiyuan ~]# tar -zxvf memcache-2.2.7.tgz -C /usr/local/src

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

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

Configuring for:

PHP Api Version:         20121113

Zend Module Api No:      20121212

Zend Extension Api No:   220121212

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

[root@aikaiyuan memcache-2.2.7]# make && make install

 

 

  • 修改php配置文件加载memcached模块
[root@aikaiyuan memcache-2.2.7]# vim /etc/php/php.in

[memcache]

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

 

 

  • 重新启动此服务php-fpm
[root@aikaiyuan memcache-2.2.7]# service php-fpm restart

Gracefully shutting down php-fpm . done

Starting php-fpm  done

 

  • 此时在客户端测试php与memcache是否连接成功

wKiom1L4aNezXSrKAAHMaTkFrzI829.jpg

  • 测试memcached与php是否工作正常
  <?php

error_reporting(E_ALL & ~E_NOTICE);

$mc = new memcache;

$mc->addServer(“localhost”, 11211);

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

$mc->set(“bar”, “Memcached…”);

$arr = array(

$mc->get(“foo”),

$mc->get(“bar”)

);

var_dump($arr);

?>

  • 客户端再次访问测试

wKiom1L4aZahJAfzAABmvye4QR4375.jpg

至此LAMMP环境搭建完成。。。

转载请注明:爱开源 » 构建企业级LAMP环境

您必须 登录 才能发表评论!