首页 > 代码库 > 编译安装LAMP-------动静分离

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

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


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


wKiom1PrhhKgzxSMAAMnFMyeTUU339.jpg



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

   以下为实验拓扑图:



wKioL1Prh03QepmQAAEwhk-x7HU350.jpg


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

首先源代码编译安装aprapache可移植运行时环境) 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

wKiom1Prhl3BLwIYAAByqRUZb8o717.jpg


接下来就可以编译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



wKiom1PrhpCy0sySAABaI6PAQiY391.jpg


编辑配置文件:

主配置文件

Vim /etc/httpd/http.conf


wKioL1Prh8zyjlZeAABrcv2FSsc840.jpg

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


wKiom1Prht2BsWG4AADu8WA2tBo184.jpg

wKiom1PrhvWh_z3SAAA_FW6E0jU789.jpg

Event工作场景模块 启用

wKiom1PrhxXT-G3ZAADQoWLgAcY012.jpg

添加编码方法


wKiom1Prh0WgCXqPAABUQiiZAV0383.jpg

启用虚拟主机


编辑虚拟主机配置文件:

wKiom1Prh2XQxXE2AAF2FSGT5qY025.jpg


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

创建/www/hefeng 目录

 

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

wKiom1Prh3_D2zFmAAENo6qJNis547.jpg

至此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


 

修改监听端口

wKiom1Prh7-jJGv9AACAiO2Q_Ug811.jpg



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

 

Mkdir -pv /www/hefeng/

 

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

 

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


wKioL1PriPnjJU_aAAE-e-SaYZE676.jpg


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

这里以二进制包进行安装

 

 

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


wKioL1PriSTDaSkjAAD40dwuqsk070.jpg


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

 

wKioL1PriUKQp3tJAAPQ2jzVtdE691.jpg

环境检测:


wKioL1PriV3QPZFhAAIDrQ1Cw3g729.jpg


全新安装:

wKiom1PriGORgo11AAGNrQtdArs795.jpg


数据库选项:

wKiom1PriH3AG6yKAAIcSuqKlxM240.jpg



安装完成:

wKioL1PribLgPpA3AAOVJi6ufyw678.jpg



 

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

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

完成测试:

wKioL1PridmiDCWyAAKm4H5AtjY304.jpg



至此整个过程结束