lamp 构建分离服务器模式

分别使用三台服务器构建LAMP

Apache 服务器 ip 172.16.10.80  版本:httpd-2.4.10

php   服务器 ip:172.16.10.81  版本:php-5.4.40

MariaDB 服务器 ip:172.16.10.82 版本:MariaDB-5.43

一、编译安装Apache

1、安装开发组件及依赖的组件   pcre-devel zlib-devl

# yum groupinstall"Development tools" "Server Platform Development" –y
#yum install pcre-devel zlib-devel

2、安装apr,apr-util

试验使用的是httpd-2.4.10 所以必须安装 1.4+ 版本的apr,apr-util

编译安装apr 1.5

#tar xf apr-1.5.0.tar.bz2
# ./configure --prefix=/usr/local/apr
#make &&make install

编译安装 apr –util

# tar xf apr-util-1.5.3.tar.bz2
# cd apr-util-1.5.3
# ./configure --prefix=/usr/local/apr-util--with-apr=/usr/local/apr
# make && make install

安装httpd-2.49

#tar # tar xf httpd-2.4.9.tar.bz2
# cd httpd-2.4.9
# ./configure --prefix=/usr/local/apache--sysconfdir=/etc/httpd24 --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  #因服务器上有rpm包安装httpd没有卸载所以安装路径换成/etc/httpd24
mkdir /usr/local/apache/manual
make[1]: Leaving directory `/tmp/httpd-2.4.9‘
#安装成功

  创建HTTPD服务脚本文件
  cp /etc/rc.d/init.d/httpd /etc/rc.d/init.d/httpd24
  
分别修改以下几项即可
apachectl=/usr/local/apache/bin/apachectl  #修改至httpd安装目录
httpd=${HTTPD-/usr/local/apache/bin/httpd} #修改至httpd安装目录
prog=httpd
pidfile=${PIDFILE-/usr/local/apache/logs/httpd.pid} #修改至安装目录

加执行权限

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

加入启动列表

# chkconfig --add httpd24
# chkconfig httpd24 on

导出头文件

ln -sv /usr/local/apache/include/ /usr/include/httpd

安装完成后修改环境变量:

#vim /etc/profile.d/httpd.sh
export PATH=/usr/local/apache/bin:$PATH #加入以下内容
./etc/profile.d/httpd.sh                #加载环境变量

配置完成可以启动了

#service httpd24 strart

查看端口启动状态

ss –tunl
tcp   LISTEN     0      128   :::80

httpd服务器安装成功

二、安装MariaDB-5.5.43

1、准备使用存储数据的位置,实验中使用了新建了逻辑卷挂载至/mysql目录下

fdisk/dev/sda     #创建 8e分区20G
cat/proc/partitons  #查看内核有无读取
partx–a /dev/sda #刷新
pvcreate/dev/sd{5,6}     #创建PV
vgceratemyvg /dev/sd{5,6} #创建VG
lvcreate–L 10G –n mydata /dev/myvg #创建LV
mke2fs–t ext4 –L mydata /dev/myvg/mydata #格式化并添加标签

2、添加mysql用户,并修改数据目录使用mysql用户运行

# groupadd -r mysql
# useradd -g mysql -r  mysql
# chown -R mysql:mysql /mysql

3、安装并初始化mysql-5.5.43

[[email protected] tmp]# tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local/

[[email protected] tmp]# cd /usr/local/

[[email protected] tmp]# tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local/

[[email protected] tmp]# cd /usr/local/

[[email protected] tmp]# # scripts/mysql_install_db --user=mysql --datadir=/mysql

#初始化数据库,并指定用户和数据存放位置

4、为mysql提供主配置文件:

[[email protected] mysql]# mkdir /etc/mysql

[[email protected] mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf

修改/etc/mysql/my.cnf

在[mysql]中添加
datadir=/data/mydata
thread_concurrency  #线程数是CPU的核心数两倍查看CPU核心: lscpu
innodb_file_per_table= on

5、为mysql提供服务脚本,并添加启动

cp mysql.server/etc/rc.d/init.d/mysqld
chmod +x/etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

6、 修改环境变量

vim /etc/profile.d/mysql.sh
exportPATH=/usr/local/mysql/bin:$PATH
. /etc/profile.d/mysql.sh #重读配置文件

7、输出mysql的库文件给系统库查找路径:

[[email protected] mysql]# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql-x86_64.conf
 # ldconfig #而后让系统重新载入系统库

8、输出mysql的头文件至系统头文件路径/usr/include:

# ln -sv /usr/local/mysql/include  /usr/include/mysql

service mysqld start

三、编译安装php 

   php除了依赖开发工具包外还需要 bzip2-devel,libmcrypt-devel,libxml2-devel,bzip2-devel包 可使用rpm 命令查看有没有安装

[[email protected] ~]# rpm -qa bzip2-devel libmcrypt-devel libxml2-devel bzip2-devel
libmcrypt-devel-2.5.8-9.el6.x86_64
libxml2-devel-2.7.6-14.el6_5.2.x86_64
bzip2-devel-1.0.5-7.el6_0.x86_64

安装完依赖关系包后就可以解压缩编译安装PHP-2.4.10了

./configure --prefix=/usr/local/php5 --with-mysql=mysqlnd --with-openssl--with-mysqli=mysqlnd --enable-mbstring --with-freetype-dir --with-jpeg-dir--with-png-dir --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 --with-pdo-mysql=mysqlnd
# 这里使用fpm方式 主要在--enable-fpm 这个参数,另外数据库是在单独的服务器上所以所有mysql相关的参数全部指定为 mysqlnd
# make && make intall

导出php配置文件

#cd php-5.4.40
#mkdir /etc/php
# cp php.ini-production /etc/php/php.ini

配置服务脚本

 #cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm

给执行权限

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

加入chkconfig

#chkconfig –add php-fpm

配置php-fpm 配置文件

#cp /usr/local/php5/etc/

编辑php-fpm的配置文件:

# vim /usr/local/php5/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/php5/var/run/php-fpm.pid #启用此项
error_log = log/php-fpm.log          #错误日志文件目录
listen = 172.16.10.81:9000              #监听地址
#保存退出

尝试启动服务

#service php-fpm start

使用ss –tunl查看

tcp   LISTEN    0     128   172.16.10.81:9000                  
#php-fpm监听在9000端口启动成功

四、httpd,php,mariadb全部配置完成限制最后配置httpd,和php 服务器

在apache 和 php 服务器上建立2个相同的目录

/web/www/index.php

配置172.16.10.80

vim /etc/httpd24/httpd.conf

关闭中心主机

#DocumentRoot "/usr/local/apache/htdocs"
启用httpd的相关模块
在Apache httpd 2.4以后已经专门有一个模块针对FastCGI的实现,此模块为mod_proxy_fcgi.so,它其实是作为mod_proxy.so模块的扩充,因此,这两个模块都要加载
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

#Virtual hosts
Include /etc/httpd24/extra/httpd-vhosts.conf #开启这项
#定位AddType;添加下面两行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
 
# vim /etc/httpd24/extra/httpd-vhosts.conf
<VirtualHost*:80>
    ServerAdmin [email protected]
    DocumentRoot "/web/www"
    ServerName www.xuphoto.com
    ServerAlias xuphoto.com
    ErrorLog"logs/dummy-host.example.com-error_log"
    CustomLog"logs/dummy-host.example.com-access_log" combined
 
  ProxyRequests Off
  ProxyPassMatch ^/(.*\.php)$fcgi://172.16.10.81:9000/web/www/$1
 
    <Directory "/web/www">
        Options none
        AllowOverride none
        Require all granted
    </Directory>
</VirtualHost>

为了提供服务器访问速度可以给 172.16.10.81 安装xcache组件

1、安装

# tar xfxcache-3.2.0.tar.gz

# cd xcache-3.2.0

#/usr/local/php5/bin/phpize

#./configure --enable-xcache --with-php-config=/usr/local/php5/bin/php-config

# make&& make install

安装结束时,会出现类似如下行:

Installingshared extensions:    /usr/local/php/lib/php/extensions/no-debug-zts-20100525/

2、编辑php.ini,整合php和xcache:

首先将xcache提供的样例配置导入php.ini

# mkdir/etc/php.d

# cp xcache.ini /etc/php.ini

接下来编辑/etc/php.d/xcache.ini,找到zend_extension开头的行,修改为如下行:

zend_extension= /usr/local/php5/lib/php/extensions/no-debug-zts-20100525/xcache.s

测试访问

安装Discuz

分别传出一份相同的到 172.16.10.80 和172.16.10.81  /web/www/discuz目录

执行安装数据库指定至 172.16.10.82服务器并在10.82服务器上建立数据库,并授权至此实验目的已经基本达到。

时间: 2024-10-23 14:24:18

lamp 构建分离服务器模式的相关文章

使用Vert.x构建Web服务器和消息系统

如果你对Node.js感兴趣,Vert.x可能是你的下一个大事件:一个建立在JVM上一个类似的架构企业制度. 这一部分介绍Vert.x是通过两个动手的例子(基于Vert.x 2.0). 当Node.js出现,许多开发者兴奋的感到可以用不寻常的方法来构建可扩展的服务器端应用程序. 而不是开始,将服务使用多线程的请求重量级的容器.Node.js是启动多个轻便单线程的服务器和流量路由到他们. 现在,类似的框架已经出现,它的服务器部署在一个JVM中,使用JVM设施来管理流量轻量级服务器进程. 本批中的开

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

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

Linux服务篇之四:构建MySQL服务器

Linux服务篇之四:构建MySQL服务器  MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司, 目前属于Oracle公司,MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库. 对应目前主流的LAMP架构来说,Mysql更是得到各位IT运维.DBA的青睐,目前mysql已被orcacle收购,不过好消息是原来mysql创始

构建MySQL服务器

MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司, 目前属于Oracle公司,MySQL被广泛地应用在Internet上的中小型网站中.由于其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库. 对应目前主流的LAMP架构来说,Mysql更是得到各位IT运维.DBA的青睐,目前mysql已被orcacle收购,不过好消息是原来mysql创始人已独立出来自己重新开发了一个MariaDB,

基于CentOS 6.5构建KVM服务器平台、网络和存储、公钥和私钥的建立

1.什么是虚拟化通过虚拟化技术将一台计算机虚拟成多台逻辑上的计算机.每个逻辑上的计算机可以安装不同的操作系统,这些系统之间互相独立并且互不干扰2.什么虚拟机一个软件平台,如同一个物理机上面运行操作系统和应用程序3.目前主流的虚拟化产品VMwareMicosoftCitrix RedHat 4.KVM网络设置NAT模式(默认)    KVM虚拟机网卡选择NAT,网关指向HOST主机的内网192.168.1.1,它就可以直接访问外网.路由模式(HOST开启路由转发功能)    HOST主机充当路由器

编译部署LAMP+xcache (php-fpm模式)

通过编译安装方式部署分离式LAMP+xcache (php-fpm模式) 要求: (1)采用源码编译部署分离式的LAMP,其中php基于php-fpm模式 (2)基于LAMP平台一个虚拟主机提供WordPress,另一个虚拟主机提供phpMyadmin (3)利用xcache来为php提供缓存加速页面的访问速度 (4)对其中一个站点缓分别做压力测试,并且比对缓存加速前和加速后的数据. 环境: 192.168.1.103------>提供httpd服务 192.168.1.104------>提

教你构建iSCSI服务器实现SAN存储模型

iSCSI(Internet Small Computer System Interface)Internet 小型计算机系统接口,是一种基于 TCP/IP的协议,用来建立和管理 IP 存储设备.主机和客户机等之间的相互连接,并创建存储区域网络(SAN).SAN 使得 SCSI 协议应用于高速数据传输网络成为可能,这种传输以数据块级别(block-level)在多个数据存储网络间进行. SCSI 结构基于客户/服务器模式,其通常应用环境是:设备互相靠近,并且这些设备由 SCSI 总线连接.iSC

5分钟Serverless实践 | 构建无服务器图片鉴黄Web应用

Serverless是什么 Serverless中文译为"无服务器",最早可以追溯到2012年Ken Fromm发表的<Why The Future Of Software And Apps Is Serverless>,他描述了一种场景,从用户自己维护的物理机,到IaaS,再到PaaS,计算模式的转变并不会停止,在云计算基础设施成熟的情况下应用程序可以不需要考虑服务器的存在,无服务器计算让开发者可以在不考虑服务器的情况下构建并运行应用程序和服务. 再到2016年,Mike

基于Kafka构建事件溯源模式的微服务

概要 本文中我们将讨论如何借助Kafka实现分布式消息管理,使用事件溯源(Event Sourcing)模式实现原子化数据处理,使用CQRS模式(Command-Query Responsibility Segregation )实现查询职责分离,使用消费者群组解决单点故障问题,理解分布式协调框架Zookeeper的运行机制.整个应用的代码实现使用Go语言描述. 第一部分 引子.环境准备.整体设计及实现第二部分 消息消费者及其集群化第三部分 测试驱动开发.Docker部署和持续集成第一部分 引子