编译安装LAMP-------动静分离

动静分离能有效提升站点访问效率,此时apache工作在反向代理模式。Php不在作为apache的模块。而是以独立服务器的方式运行。两者之间通过fcgi机制建立通讯。本文将以安装discuz方式说明其工作特性。下图为其工作流程的简单描述:

首先apache监听主进程预先启动多个子进程,当用户请求到达时,主进程负责将请求接进来然后调用子进程处理请求,若为静态文件则直接有子进程进行I/O操作读取数据,处理请求,构建响应报文,并将结果交由监听主进程,主进程再将结果响应给客户端。若请求报文为动态的php页面,则子进程通过fcgi将请求交给php服务器。同样的机制,php调用子进程执行php程序(含有对数据库的读写等操作)php与数据库的通信与前者类似。等到数据处理完毕。Php子进程将处理结果交给主进程,主进程将结果送给httpd子进程,httpd子进程再将处理结果交给 监听主进程 最终将结果 响应给客户端。

以下为实验拓扑图:

编译安装httpd服务器,这里采用httpd-2.4并使用event工作模型

首先源代码编译安装apr(apache可移植运行时环境) apr-util 采用1.5的版本

apr的编译选项:

./configure --prefix=/usr/local/apr-1.5
Make && make install
Apr-util的编译选项:
./configure --prefix=/usr/local/apr-util-1.5 --with-apr=/usr/local/apr-1.5
Make && make install

接下来就可以编译httpd

httpd的编译选项:

 
./configure
   --prefix=/usr/local/apache
   --sysconfdir=/etc/httpd
   --enable-so
   --enable-ssl 
   --enable-cgi 
   --enable-rewrite
   --with-zlib 
   --with-pcre
   --with-apr=/usr/local/apr
   --with-apr-util=/usr/local/apr-util
   --enable-modules=most
   --enable-mpms-shared=all 
   --with-mpm=event
编译安装:
Make &&  make  install

编辑配置文件:

主配置文件

Vim /etc/httpd/http.conf

注释掉DocumentRoot我们将以虚拟主机的形式实现

Event工作场景模块 启用

添加编码方法

启用虚拟主机

编辑虚拟主机配置文件:

开启当前虚拟主机的php代理

创建/www/hefeng 目录

解压Discuz压缩文件放入此目录中并赋予777权限

至此httpd服务器配置完毕

Php服务器配置

这里采用php5.4

编译选项配置

./configure
   --prefix=/usr/local/php5
   --with-mysql=mysqlnd
   --with-openssl
   --with-mysqli=mysqlnd
   --enable-mbstring
   --with-freetype-dir=/usr/local/freetype - ---->  请自行编译安装
   --with-jpeg-dir=/usr/local/jpeg  ----->  请自行编译安装
   --with-png-dir=/usr/local/png   ----->  请自行编译安装
   --with-zlib
   --with-libxml-dir=/usr
   --enable-xml
   --enable-sockets
   --enable-fpm
   --with-mcrypt
   --with-config-file-path=/etc
   --with-config-file-scan-dir=/etc/php.d 
   --with-bz2
编译安装:
Make && make install
后续配置
 
为php提供配置文件:
cp php.ini-production /etc/php.ini
 
配置php-fpm
 
php-fpm提供SysV init脚本,并将其添加至服务列表:
cp sapi/fpm/init.d.php-fpm  /etc/rc.d/init.d/php-fpm
chmod +x /etc/rc.d/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
 
php-fpm提供配置文件:
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf 
 
编辑php-fpm的配置文件:
vim /usr/local/php/etc/php-fpm.conf
配置fpm的相关选项为你所需要的值,并启用pid文件(如下最后一行):
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pid = /usr/local/php/var/run/php-fpm.pid

修改监听端口

修改为apache里设置的主机监听套接字

Mkdir -pv /www/hefeng/

将Discuz解压的文件copy至此目录并给777权限

启动php-fpm查看监听端口 service php-fpm start

配置mariadb(mydql的克隆版组织)数据库服务器:

这里以二进制包进行安装

tar xf mariadb-5.5.33-linux2.6-i686.tar.gz -C /usr/local
cd /usr/local/
ln -sv mariadb-5.5.33-linux2.6-i686  mysql
cd mysql 
 
chown -R mysql:mysql  .
scripts/mysql_install_db --user=mysql --datadir=/mydata/data
chown -R root  .
 
为mysql提供主配置文件:
 
cd /usr/local/mysql
cp support-files/my-large.cnf  /etc/my.cnf

另外还需要添加如下行指定mysql数据文件的存放位置:

datadir = /mydata/data

为mysql提供sysv服务脚本:

cd /usr/local/mysql

cp support-files/mysql.server  /etc/rc.d/init.d/mysqld

chmod +x /etc/rc.d/init.d/mysqld

添加至服务列表:

chkconfig --add mysqld

启动mysqld :service mysqld start

创建数据库和用户 用来安装Discuz

Create database discux;

Grant all on discux . * to ‘discux’@’172.16.101.35’ identified by ‘hzm132’;

Flush privileges;

开始安装 Discuz:

环境检测:

全新安装:

数据库选项:

安装完成:

再将安装后生成的文件copy一份至apache主机网站根目录 否则不现实静态文件(由于设计网站本身并不是读写分离架构的)

Scp -r /www/hefeng/upload 172.16.101.34:/www/hefeng/

完成测试:

至此整个过程结束

编译安装LAMP-------动静分离

时间: 2024-11-05 06:26:52

编译安装LAMP-------动静分离的相关文章

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

通过LAMP平台部署及应用 已经可以部署出LAMP平台,来面对客户端的请求,但是由于这些组件都是在一台服务器上进行安装,如果出现问题,将导致LAMP平台的瘫痪.在实际环境中,不可能将LAMP平台都部署在同一台服务器上,这就需要使用到LAMP动静分离的技术. 博文大纲:一.LAMP动静分离的相关概念1.PHP的工作模式2.FastCGI模式的工作机制二.实现LAMP动静分离1.FastCGI方式编译安装php2.搭建Apache并配置通过fastcgi协议调用php 搭建Mysql数据库4.ab压

编译安装LAMP[两种结合方式]

本文旨在实践编译安装LAMP环境,搭建Zblog系统,使用Xcache为PHP加速,分离PHP与Apache Server LAMP基础知识 Linux + Apache + MySQL[MariaDB] + PHP[Perl|Pyton] 是一套基础的web环境: Apache有2.2版本,和最新的2.4版本,2.4版本支持Event MPM可用作生产环境,在http2.2中有3种MPM,为不同的进程文件,切换需要重启Apache服务:而2.4中MPM做成了DSO,可动态加载切换: Apach

编译安装LAMP及分离式LAMP平台构建

前言 LAMP网站架构是目前国际流行的Web框架,该框架包括:Linux操作系统,Apache网站服务器,MySQL数据库,Perl.PHP或者Python编程语言,所有组成产品均是开源软件,是国际上成熟的架构框架,很多流行的商业应用都是采取这个架构,和Java/J2EE架构相比,LAMP具有Web资源丰富.轻量.快速开发等特点,与微软的.NET架构相比,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站的首选平台.但由于MySQL作为SUN公司

编译安装LAMP之一

环境:CentOS-6.5-i386-minimal httpd-2.2.27.tar.gz mysql-5.5.38-linux2.6-i686.tar.gz php-5.5.14.tar.gz 编译安装的原则:对于我们来说,需要定制的就直接编译,其余的一切皆yum / apt-get搞定 1.关闭iptables和SELinux [[email protected] ~]# service iptables stop [[email protected] ~]# setenforce 0 2

Centos 7.0 编译安装LAMP(Linxu+apache+mysql+php)之源码安装Mysql (二)

mysql 简介: MySQL是一个关系型数据库管理系统,关系数据库将数据保存在不同的表中,这样就增加了速度并提高了灵活性.目前其属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件.MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言. 安装环境: 系统: centos 7.0 最小化安装 软件

实践作业之编译安装LAMP

题目1:httpd所支持的处理模型有哪些,他们的分别使用于哪些环境. (1)prefork模型: 功能:多进程模型,每个进程响应一个请求 工作方式: ①一个主进程:负责生成子进程及回收子进程(工作进程),负责创建套接字,负责接收请求,并将其派发给某子进程进行处理 ②n个子进程:每个子进程一个请求 主控进程会预先生成几个空闲子进程,随时等待用于响应用户请求.根据处理过程,可能会改变空闲进程的数量,需要定义最大空闲和最小空闲 (2)worker模型: 功能:多进程多线程模型,每个线程处理一个用户请求

ubuntu10.04编译安装LAMP

ubuntu10.04编译安装LAMP以及简单wordpress的使用 : http://linuxme.blog.51cto.com/1850814/971631 一.源码安装LAMP 网上有一堆关于介绍lamp的在这里我就不罗嗦了,直接上配置过程 1.apr包的安装 apr简介: The mission of the Apache Portable Runtime (APR) project is to create and maintain software libraries that

编译安装LAMP(两种场景)

编译安装LAMP 场景一:AP组合以模块方式结合(编译PHP作为httpd的模块):进而完成虚拟主机PMA(phpmyadmin)和discuz论坛 场景二:AP组合以fpm方式,PHP独立守护进程运行:进而完成虚拟主机PMA(phpmyadmin)和discuz论坛 ==========================场景一============================ 拓扑结构: 主机一 网卡1IP为172.20.1.100 网卡2IP为192.168.217.219 在此计算机上

编译安装 LAMP 平台

> 一.软件包 Linux:CentOS-6.4     Apache:httpd-2.4.9     MySQL:mysql-5.6.19     PHP:php-5.4.30 二.编译安装 httpd 在安装 httpd 之前,首先要安装两个依赖包:apr 和 apr-util.apr 是 apache portable runtime 的缩写,是 apache 提供的一个可以跨平台使用的 API.安装方法很简单,就是编译安装的三步骤: # apr tar xf apr-1.5.1.tar.