当前位置:首页 > Web开发 > 正文

部署LAMP动静分离以及部署Discuz论坛

2024-03-31 Web开发

标签:

通过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动静分离的相关概念

要想实现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服务器。如图:

技术图片

二、实现LAMP动静分离

案例所需:

一台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