LAMP分离部署

1.主机规划

配置虚拟机中有至少 3台,操作系统都是centos网段在172.16.27.0/16

分配如下:

1台httpd服务器172.16.27.20

1台php-fpm服务器 172.16.27.30

1台DB服务器172.16.27.40

2.工作模式

首先客户端发起请求,请求分为2种,一种是静态请求它可以直接由Apache直接响应返回;另一种是动态的请求,如其中包含中php或者Perl这种脚本解释性语言,则由Apache服务器通过fastcgi协议调用php服务器执行并返回给Apache由Apache返回解释执行后的结果,如果这个过程中涉及到对数据的操作,此时php服务器还会还会通过mysql协议调用mysql服务器。

3.编译安装Apache(172.16.27.20)

部署前准备

yum groupinstall “Development Tools”

yum install apr-util-devel

yum install pcre-devel openssl-devel  libevent-devel

mkdir -pv /data/web/www{1,2}

开始解压httpd,并且进行编译

[[email protected] tmp]# tar -vxf  httpd-2.4.6.tar.bz2

[[email protected] tmp]# cd httpd-2.4.6/

[[email protected] httpd-2.4.6]# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd24 --enable-so--enable-ssl --enable-cgi --enable-rewrite --enable-modules=most--enable-mpms-shared=all --with-mpm=prefork --with-pcre --with-zlib--with-apr=/usr --with-apr-util=/usr

[[email protected] httpd-2.4.6]# make -j 2 && make install

[[email protected] local]# ln -sv apache2.4.6/ apache(创建软连接)

为apache创建用户与组

[[email protected] local]# groupadd -g 800 apache

[[email protected] local]# useradd apache -u 800 -g 800 -M -s /sbin/nologin

Creating mailbox file: File exists

[[email protected] local]# id apache

uid=800(apache) gid=800(apache) groups=800(apache)

启动apache服务

[[email protected] local]# cat /etc/profile.d/httpd.sh

export PATH=/usr/local/apache/bin:$PATH

[[email protected] local] apachectl start

在浏览器中输入ip地址即可访问,显示it works代表我们的httpd服务器已搭建完毕。(关闭防火墙和selinux)

4 编译安装php+xcache (172.16.27.30)

(1)编译安装php

解决php依赖关系

# yum install libxml2-devel gd-devel freetype-devellibmcrypt-devel openssl-devel  bzip2  bzip2-devel

编译安装php5.5

# tar xf php-5.5.30.tar.gz

./configure --prefix=/data/soft/php-5.5.30--with-mysql=/data/soft/mariadb --with-openssl--with-mysqli=/data/soft/mariadb/bin/mysql_config --enable-mbstring--enable-xml --enable-sockets --with-freetype-dir --with-gd--with-libxml-dir=/usr --with-zlib --with-jpeg-dir --with-png-dir --with-mcrypt  --with-config-file-path=/etc/php.ini--with-config-file-scan-dir=/etc/php.d --with-bz2 --enable-fpm

# make

# make install

# ln -sv php5.5.30 php5

添加php.ini 和php-fpm文件

(1)为php提供配置文件

复制php-5.5.30的解压包中的php.ini-production文件

# cp/tools/php-5.5.30/php.ini-production /etc/php.ini

为php-fpm 提供配置文件

# cd php5.5/etc/

# cp php-fpm.conf.defaultphp-fpm.conf

配置php-fpm文件

[[email protected] php5.5]# vim etc/php-fpm.conf

pid = run/php-fpm.pid

listen= 172.16.27.30:9000

listen.allowed_clients= 172.16.27.20 #web服务器地址

pm.max_children = 1024

pm.start_servers = 16

pm.min_spare_servers = 5

pm.max_spare_servers = 20

pm.process_idle_timeout = 15s

pm.max_requests = 2048

启动php-fpm服务

(1)设置PATH环境变量

# cat /etc/profile.d/php-fpm.sh

export PATH=/data/soft/php5.5/sbin/:$PATH

(2)为php-fpm提供启动脚本

# cp/tools/php-5.5.30/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm

# chmod +x /etc/init.d/php-fpm

# chkconfig --add php-fpm

# chkconfig php-fpm on

(3)启动php-fpm,查看php-fpm进程数

# service php-fpm start

# ps -ef |grep -c php-fpm

设置apache的虚拟主机连接php

配置apache支持fcgi

[[email protected] ~]# vim /etc/httpd24/httpd.conf

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_fcgi_modulemodules/mod_proxy_fcgi.so

(5)编辑虚拟主机(172.16.27.20)

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "/data/vhost/www1"

ServerName ww1.ssl.com

ErrorLog "/data/vhost/www1/www1.Errorlog"

CustomLog "/data/vhost/www1/www1.CustomLog" combined

ProxyRequests off #关闭正向代理

ProxyPassMatch ^/(.*.php)$ fcgi://172.16.27.30:9000/var/vhost/www1/$1

<Directory "/data/vhost/www1">

Options none

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

<VirtualHost *:80>

ServerAdmin [email protected]

DocumentRoot "/data/vhost/www2"

ServerName www2.ssl.com

ErrorLog "/data/vhost/www2/www2.Errorlog"

CustomLog "/data/vhost/www2/www2.CustomLog" combined

ProxyRequests off #关闭正向代理

ProxyPassMatch ^/(.*.php)$ fcgi://172.17.27.30/data/vhost/www2/$1

<Directory "/data/vhost/www2">

Options none

AllowOverride None

Require all granted

</Directory>

</VirtualHost>

6 为了提高php的性能安装Xcache

# tar -xvf xcache-3.2.0.tar.bz2

# cd  xcache-3.2.0

# ./configure--enable-xcache --with-php-config=/data/soft/ph

# make && makeinstall

# ls /data/soft/php-5.5.30/lib/php/extensions/no-debug-non

整合php和xcache,将XCache配置文件复制到php.d目录下,使php可以读取XCache配置文件

# mkdir /etc/php.d

# cp xcache.ini /etc/php.d/

编辑/etc/php.d/xcache.ini文件,指定xcache.so的位置

# sed -n ‘4p‘  /etc/php.d/xcache.ini

extension =/data/soft/php-5.5.30/lib/php/extensions/no-debug-non-zts-20121212/xcache.so

部署mariadb服务

采用mysql 二进制安装方式

创建mysql用户和组

# groupadd -g 306 mysql

# useradd -u 306 -g mysql -s /sbin/nologin -M mysql

解压mariadb-5.5.46-linux-x86_64.tar.gz

# tar xf mariadb-5.5.46-linux-x86_64.tar.gz -C/data/soft/

# ln -sv mariadb-5.5.46-linux-x86_64/mariadb

‘mariadb’ -> ‘mariadb-5.5.46-linux-x86_64/’

创建mysql数据目录并授权

mkdir /data/mydata -p

chown -R mysql.mysql /data/mydata

初始化数据库文件

# chown -R root.mysql/data/soft/mariadb/

# cd /data/soft/mariadb

# scripts/mysql_install_db--user=mysql --datadir=/data/mydata/ --basedir=/data/soft/mariadb

配置mariadb主配置文件my.cnf

复制/data/soft/mariadb/support-files目录下的my-large.cnf文件到/etc/ 目录下,覆盖原有的mysql配置文件 my.cnf(注意:覆盖前需自己手动备份):

# cp support-files/my-large.cnf /etc/my.cnf

修改/etc/my.cnf文件,指定datadir、basedir路径,同时开启3306端口

[mysqld]

port = 3306

basedir = /data/soft/mariadb

datadir = /data/mydata

innodb_file_per_table = 1 #让innodb表每个表一个表空间文件。

复制mysql启动脚本到/etc/init.d/mysqld

# cp /data/soft/mariadb/support-files/mysql.server/etc/init.d/mysqld

# chmod 755 /etc/init.d/mysqld

修改PATH环境变量

[[email protected] mariadb]# cat /etc/profile.d/mysql.sh

export mysql_home=/data/soft/mariadb

export PATH=$mysql_home/bin:$PATH

启动mysql服务

[[email protected] mariadb]# chkconfig --add mysqld

[[email protected] mariadb]# chkconfig mysqld on

[[email protected] mariadb]# service mysqld start

Starting MySQL... SUCCESS!

进入php主机 编辑index.php 文件内容如下:

<?php

$link=mysql_connect(‘172.16.27.40‘,‘wordpress‘,‘wordpress‘);

if($link){

echo "success..wordpress!";

}else{

echo "failed..wordpress!".mysql_error();

}

mysql_close($link);

phpinfo();

?>

出现success..frank!则成功了,若失败看失败的原因进行相关的操作!

切记,要将防火墙关闭!

(10)配置phpmyadmin

在php 主机和http主机上分别在frank目录或者随意一个虚拟主机目录中建立一个文件夹

例如在php主机中在目录

unzip phpMyAdmin-4.4.10-all-languages.zip

即可。这两台主机的操作一样。

接下来在php主机上进行对phpmyadmin的配置。

cp config.sample.inc.php config.inc.php

vim config.inc.php

主要找到

$cfg[‘Servers‘][$i][‘host‘]=‘172.16.27.40’ 数据库服务器的IP地址

$cfg[‘blowfish_secret‘] = ‘77777‘;这里的字符随意,这个主要是为了区分cookie。

然后重启三台主机上的服务即可测试。

时间: 2024-10-12 18:45:13

LAMP分离部署的相关文章

LAMP基于FastCGI分离部署应用

实验目标 本次LAMP搭建在CentOS 7虚拟机上,基于 php-fpm(Fastcgi)实现httpd.php-fpm.mariadb三者分离,并且在LAMP上部署应用,用两个虚拟机一个虚拟主机用于提供phpMyAdmin:另一个虚拟主机用于提供wordpress:且提供 xcache加速. 实验环境部署如下: httpd 172.18.12.7 httpd-2.4.6-40.el7.centos.x86_64 php-fpm 172.18.12.8 php-fpm-5.4.16-36.el

分离部署lamp环境+xcache

分离部署lamp环境+xcacheLAMP:Linux操作系统+apache+mysql+phpFastCGI 工作机制: 首先客户端发起请求,请求分为 2 种,一种是静态请求它可以直接由 Apache 直接响应返回: 另一种是动态的请求,如其中包含中 php 或者 Perl 这种脚本解释性语言,则由 Apache 服务 器通过 fastcgi 协议调用 php 服务器执行并返回给Apache由 Apache返回解释执行后的结果, 如果这个过程中涉及到对数据的操作,此时 php 服务器还会还会通

Linux服务器集群架构部署搭建(四)WEB服务器LNMP/LAMP搭建部署及站点产品安装(1)

命运是大海,当你能够畅游时,你就要纵情游向你的所爱,因为你不知道狂流什么会到来,卷走一切希望与梦想. 作者:燁未央_Estelle声明:测试学习,不足之处,欢迎指正. 第一章 集群WEB服务器LNMP生产应用 1.1 Nginx的应用场合:根据功能来进行应用 ①静态服务器(图片,视频服务)国内使用的只有两款,另一个是lighttpd.百度贴吧.豆瓣.html.js.css.flv等. ②动态服务:nginx+fastcgi的方式运行php.jsp.动态的并发很少(根据优化达到500-1500),

CentOS 6.5编译安装LAMP分离环境的搭建

LAMP分离环境的搭建: 环境说明: CentOS 6.5最小化安装,安装相应的组件: [[email protected] ~]# yum groupinstall -y"Development tools" [[email protected] ~]# yum groupinstall -y"Server Platform Development" 准备三台主机: http: 192.168.1.217 MySQL:192.168.1.218 PHP:192.1

Nginx+Apache动静分离部署

Nginx+Apache动静分离部署 为什么需要部署Nginx+Apache动静分离? ? 之前在讲解基于LNMP架构的Discuz论坛搭建(原文链接:https://blog.51cto.com/14557673/2461480)的时候对动静分离有所提及,这边简述一下核心原因: ? 根据Nginx服务的特性,其擅长处理静态网站(图片文字视频等文件)访问资源,而Apache擅长动态处理(例如:账号注册的交互). ? 因此我们可以结合这两个服务特点与优势,部署实现网站服务的动静分离. 部署Ngin

LAMP平台部署及应用

LAMP平台部署及应用

HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署 | 免费资源部落

HHvm建站环境搭建方法:Nginx,Mariadb,hhvm及lnmp/lamp安装部署 | 免费资源部落 nginx对redis取数据的不同方式 - 守望

lnmp分离部署

     lnmp分离部署                        目录 目录.... 1 版权声明:.... 2 文档信息:.... 2 1.在192.168.200.101上安装nginx. 3 2.在192.168.200.102上安装mysql. 5 3.在192.168.200.103上安装php. 7         文档信息: 文档作者:amun 文档版本:Version 1.1 修改记录:2017-04-18 系统环境:CentOS 6.8 64 bit       环境:

LAMP平台部署及应用(二) 安装Discuz!论坛系统

LAMP平台部署及应用(二) 安装Discuz!论坛系统 具体步骤: n 服务器端的部署 1. 准备工作 首先,应准备一台能够解析PHP网页,支持数据库的网站服务器,其中Apache.PHP.MySQL组件的版本应符合Discuz!系统的最低要求,这里此前源码编译构建的LAMP平台为例,默认首页设置为index.php. 其次,应确定论坛服务器的域名,IP地址以及访问论坛的URL地址.Discuz!论坛支持作为独立的网站运行,如://bbs.benet.com:也可以作为网站的一个目录,如://