部署LAMP动静分离以及部署Discuz论坛
标签:
通过LAMP平台部署及应用 已经可以部署出LAMP平台,来面对客户端的请求,但是由于这些组件都是在一台服务器上进行安装,如果出现问题,将导致LAMP平台的瘫痪。在实际环境中,不可能将LAMP平台都部署在同一台服务器上,这就需要使用到LAMP动静分离的技术。博文大纲:
一、LAMP动静分离的相关概念
1.PHP的工作模式
2.FastCGI模式的工作机制
二、实现LAMP动静分离
1.FastCGI方式编译安装php
2.搭建Apache并配置通过fastcgi协议调用php
搭建Mysql数据库
4.ab压力测试工具
5.安装php加速软件Xcache
三、部署Discuz论坛
要想实现LAMP动静分离,最主要的还是PHP,因为我们需要使用PHP解释器来解析动态页面,然后向Web服务器传输解析后的网站内容。我们下面重点介绍一下PHP。
1.PHP的工作模式PHP在在LAMP环境下共有三种工作模式:
CGI模式:在这种模式下运行PHP,性能不是很好;
apache模块:在这种模式下运行PHP,在LAMP平台部署及应用 就是使用的这种模式,使用apache调用php完成工作;
FastCGI模式:在这种模式下运行PHP,PHP就是一处独立的进程,所有的PHP子进程都由PHP的一个叫做php-fpm的组件负责管理;
2.FastCGI模式的工作机制首选客户端发起请求,请求一般分为两种:一种是静态请求,可以直接由Apache响应直接返回客户端所需资源;另一种动态请求,其中包含PHP或Perl这种脚本解释型语言,则由Apache服务器通过fastcgi协议调用php服务器执行并返回给Apache,由Apache向客户端返回客户端所需资源,如果这个过程中涉及到对数据的操作,此时php服务器还会通过mysql协议调用mysql服务器。如图:
案例所需:
一台httpd服务器(192.168.1.1)编译安装httpd服务;
一台mysql服务器(192.168.1.2)编译安装mysql服务;
一台php服务器(192.168.1.3)编译安装php服务;
1.FastCGI方式编译安装php获取PHP所需软件包
1)解决依赖关系 [[email protected] ~]# yum -y install libxml2-devel lzip2-devel libcurl-devel libmcrypt-devel openssl-devel bzip2-devel //安装PHP程序所需要的依赖包 [[email protected] ~]# tar zxf libmcrypt-2.5.7.tar.gz -C /usr/src [[email protected] ~]# cd /usr/src/libmcrypt-2.5.7/ [[email protected] libmcrypt-2.5.7]# ./configure --prefix=http://www.mamicode.com/usr/local/libmcrypt && make && make install //编译安装 libmcrypt 软件包 2)编译安装php [[email protected] ~]# tar zxf php-5.6.27.tar.gz -C /usr/src [[email protected] ~]# cd /usr/src/php-5.6.27/ [[email protected] php-5.6.27]# ./configure --prefix=http://www.mamicode.com/usr/local/php5.6 --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-openssl --enable-fpm --enable-sockets --enable-sysvshm --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=http://www.mamicode.com/usr --enable-xml --with-mhash --with-mcrypt=http://www.mamicode.com/usr/local/libmcrypt --with-config-file-path=http://www.mamicode.com/etc --with-config-file-scan-dir=http://www.mamicode.com/etc/php.d --with-bz2 --enable-maintainer-zts && make && make install配置选项相关解释:
--prefix=http://www.mamicode.com/usr/local/php5.6 //指定安装位置;
--with-mysql=mysqlnd //安装连接mysql工具支持 mysql;
--with-pdo-mysql=mysqlnd //支持Mysql pdo 模块
--with-mysqli=mysqlnd
//支持 mysqli 模块
注意:上面的三选项的作用:数据库与 php 不在一个服务器上,指定此种方式,安装数据库 连接驱动;
--with-openssl //支持 openssl 模块;
--enable-fpm //支持 fpm 模式;
--enable-sockets //启用 socket 支持;
--enable-sysvshm //启用系统共享内存支持;
--enable-mbstring //多字节字串、像我们的中文就是多字节字串;
--with-freetype-dir
//支持 freetype、就要装 freetype-devel、跟字体相关的、字体解析工具 --with-jpeg-dir --with-png-dir;
注意:上面的二选项的作用:处理 jpeg、png 图片的、php 可以动态生成 jpeg 图片;
--with-zlib //是个压缩库、在互联网传输时用来压缩传输的;
--with-libxml-dir=http://www.mamicode.com/usr //这个 libxml 是用来解析 xml 的;
--enable-xml //支持 xml ;
--with-mhash //支持 mhash;
--with-mcrypt=http://www.mamicode.com/usr/local/libmcrypt //libmcrypt-devel 这个程序包所指定的;
--with-config-file-path=http://www.mamicode.com/etc //指定配置文件的存放路径;
--with-config-file-scan-dir=http://www.mamicode.com/etc/php.d //配置文件扫描路径;
--with-bz2 //支持 BZip2 为了支持 apache 的 worker 或 event 这两个 MPM,编译时使用了--enable-maintainer-zts 选项
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/42501.html
- 上一篇:webpack 学习三 模式
- 下一篇:走进3D的奇妙世界