CentOS 6.5 LAMP分主机平台的搭建及测试

看似非常之完备,转来抽空测试学习
原文地址:http://www.it165.net/os/html/201403/7595.html

  • 前言

       前面的文章我们谈到过了LAMP的基础原理以及很多的相关知识了、尤其是httpd、这个强大的、牛气轰轰的web服务器想必大们都再熟悉不过了吧、对他的介绍我们也谈了很多了、这里不再做介绍、那接下来我们就是分主机来实现LAMP平台的搭建以及动静页面的测试、话不多说、我们下面来实现吧!

    正文

       准备工作:
       apr-1.5.0.tar.bz2
       apr-util-1.5.2.tar.bz2
       pcre-devel-7.8-6.el6.x86_64 (用yum安装)
       httpd-2.4.9.tar.bz2 (httpd 2.4的版本)
       ==========程序包分三台主机存放、以上是HTTPD的===============

    bzip2-devel、libmcrypt-devel、libxml2-deve (这三个是安装php所需要的开发包、用yum装)
       php-5.4.26.tar.bz2 (php 5.4的版本)
       ============以上是PHP的=======================

    mysql-5.5.33.tar.gz (mysql 5.5.33的版本)
       ============以上是mysql的=======================
       

    以上准备了好多的程序包呀、但他们不是都放在一台主机上的、上面我们有说明的哦、这里还要注意的是服务器配置安装的顺序问题,如果是在同一台主机上安装搭建LAMP平台主话,那么就必须把php放到最后去安装,因为php的安装要依赖于httpd和要用到的mysql、而我们这里分别置于不同的主机上实现LAMP平台,因此没有太多的顺序要求,但是,还是建议建议先安装httpd、mysql然后再安装php。
       以下是LAMP的工作过程中使用到的协议以及工作图:
       

    补充:

    (1)构建MPM为静态模块
       在全部平台中,MPM都可以构建为静态模块。在构建时选择一种MPM,链接到服务器中。如果要改变MPM,必须重新构建。为了使用指定的MPM,请在执行configure脚本 时,使用参数 --with-mpm=NAME。NAME是指定的MPM名称。编译完成后,可以使用 ./httpd -l 来确定选择的MPM。 此命令会列出编译到服务器程序中的所有模块,包括 MPM。

    (2)构建 MPM 为动态模块

       在Unix或类似平台中,MPM可以构建为动态模块,与其它动态模块一样在运行时加载。 构建 MPM 为动态模块允许通过修改LoadModule指令内容来改变MPM,而不用重新构建服务器程序。在执行configure脚本时,使用--enable-mpms-shared选项即可启用此特性。当给出的参数为all时,所有此平台支持的MPM模块都会被安装。还可以在参数中给出模块列表。默认MPM,可以自动选择或者在执行configure脚本时通过--with-mpm选项来指定,然后出现在生成的服务器配置文件中。编辑LoadModule指令内容可以选择不同的MPM。

    httpd 2.4编译安装过程

       1、解决依赖关系
       prel兼容的正则表达式库
       # yum -y install pcre-devel
       # yum -y groupinstall "Server Platform Development"
       # yum -y groupinstall "Development tools"

       2、编译安装apr
       # tar xf apr-1.5.0.tar.bz2
       # cd apr-1.5.0
       # ./configure --prefix=/usr/local/apr
       # make && make install

       3、编译安装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

       4、编译安装httpd 2.4
       # 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

    --prefix=/usr/local/apache 指定安装路径、不使用默认路径
    --sysconfdir=/etc/httpd24 指定配置文件的路径、24表示版本、为了不跟我本机上的2.2的重复
    --enable-so 表示基于DSO动态加载模块的
    --enable-ssl 这项是支持https协议的
    --enable-cgi 支持CGI机制的
    --enable-rewrite 支持URL重写的
    --with-zlib zlib是一个网络上发送数据报文时的一个通用压缩库的API
    --with-pcre 通常支持Perl所用到的一个库
    --with-apr=/usr/local/apr 指定新的apr的路径
    --with-apr-util=/usr/local/apr-util/ 指定新的apr-util的路径
    --enable-modules=most most表示启用大多数常用的模块
    --enable-mpms-shared=all 所有的MPM模块都编译
    --with-mpm=event 明确指定启用event模块

    后续的配置:
       1) 导出头文件
       # ln -sv /usr/local/apache/include  /usr/include/httpd
       2) 导出库文件
           没生成就不用导出了
       3) 导出man手册
           # vim /etc/man.config
           MANPATH /usr/local/apache/man
       4) 输出二进制程序
           # vim /etc/profile.d/httpd.sh
           export PATH=/usr/local/apache/bin:$PATH

    为httpd2.4提供服务脚本    
       我们可以每次开机后都手动去启动httpd服务,这个很明显不符合我们的正常需求,因此我们需要给httpd2.4提供服务脚本,并且加到系统自动启动服务中、我们可以自己手工编写脚本,也可以使用httpd2.2(系统自自带的httpd服务)的服务脚本,稍加修改,就可以为httd24服务了。

       这里我借用了httd2.2的服务脚本,进行简单修改。为了区别原有的服务脚本httpd,这里复制httpd为httpd24
       注意:服务脚本存放在/etc/init.d目录下,必须要可执行权限
       # cp /etc/init.d/httpd /etc/init.d/httpd24
       # vim /etc/init.d/httpd24

       httpd24的安装路径为/usr/local/apache,且没有sbin,只有bin因此修改下面的路径为当前路径
       apachectl=/usr/local/apache/bin/apachectl
       httpd=${HTTPD-/usr/local/apache/bin/httpd}


       添加至系统服务、并开机自动启动
       # chkconfig --add httpd24
       # chkconfig  httpd24 on

       修改配置文件、主要是添加一条PidFile的文件路径。这里系统读取PidFile的顺序是配置文件、服务脚本,如果配置文件没有,再去找服务脚本。
       # vim /etc/httpd24/httpd.conf    
       PidFile "/var/run/httpd/httpd.pid"

    OK、启动服务看有没有80端口处于监听状态:    

    mysql 5.5编译安装过程

       1、准备数据存放的文件系统、这里我们新建一个分区来专门存放数据文件、新建一个逻辑卷,并将其挂载至/data、这个应该很熟悉了、这里不做过多的解释、什么可以留言交流。

    01.############这些不做过多的解析、一看就明白了################
    02.# mkdir /data
    03.# fdisk /dev/sda
    04.n p 3  +20G t  3 8e w
    05.# pvcreate /dev/sda3
    06.# vgcreate myvg /dev/sda3
    07.# lvcreate -L 10G -n mydata myvg
    08.# mke2fs -t ext4 /dev/myvg/mydata
    09.# vim /etc/fstab
    10./dev/myvg/mydata    /data    ext4    defaults,noatime 0 0
    11.# monut -a
    12.# cd /data/
    13.# mkdir mydata

    2、新建用户以安全方式运行进程:

    1.# groupadd -r mysql
    2.# useradd -g mysql -r -s /sbin/nologin -M -d /mydata/data mysql
    3.# chown -R mysql:mysql /mydata/data

    3、安装并初始化mysql-5.5.33

    1.# tar xf mysql-5.5.33-linux2.6-i686.tar.gz -C /usr/local
    2.# cd /usr/local/
    3.# ln -sv mysql-5.5.33-linux2.6-i686  mysql
    4.# cd mysql
    5.# chown -R mysql:mysql  .
    6.# scripts/mysql_install_db --user=mysql --datadir=/mydata/data
    7.# chown -R root  .

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

    1.# cd /usr/local/mysql
    2.# cp support-files/my-large.cnf  /etc/my.cnf

    并修改此文件中thread_concurrency的值为你的CPU个数乘以2,比如这里使用如下行:
       thread_concurrency = 2

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

       5、为mysql提供sysv服务脚本:

    1.# cd /usr/local/mysql
    2.# cp support-files/mysql.server  /etc/rc.d/init.d/mysqld
    3.# chmod +x /etc/rc.d/init.d/mysqld

    添加至服务列表、而后就可以启动服务测试使用了:

    1.# chkconfig --add mysqld
    2.# chkconfig mysqld on 
    3.# service mysqld start

    为了使用mysql的安装符合系统使用规范,并将其开发组件导出给系统使用,这里还需要进行如下步骤:
       6、输出mysql的man手册至man命令的查找路径、编辑/etc/man.config,添加如下行即可:
       MANPATH  /usr/local/mysql/man

       7、输出mysql的头文件至系统头文件路径/usr/include:
       这可以通过简单的创建链接实现:
       # ln -sv /usr/local/mysql/include  /usr/include/mysql

       8、输出mysql的库文件给系统库查找路径:
       # echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf

       而后让系统重新载入系统库:
       # ldconfig

       9、修改PATH环境变量,让系统可以直接使用mysql的相关命令:
       # vim /etc/profile.d/mysql.sh
       export PATH=/usr/local/mysql/bin:$PATH

       启动服务、查看监听的端口、3306:    

       

    php 5.4编译安装过程

       1、解决依赖关系、请配置好yum源(可以是本地系统光盘)后执行如下命令:
       # yum -y groupinstall "Desktop Platform Development"
       # yum -y install bzip2-devel libmcrypt-devel

       2、编译安装php-5.4.26
       # tar xf php-5.4.26.tar.bz2
       # cd php-5.4.26
       # ./configure --prefix=/usr/local/php --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --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

    --prefix=/usr/local/php 指定安装路径
    --with-mysql=mysqlnd
    --with-pdo-mysql=mysqlnd
    --with-mysqli=mysqlnd
    数据库与php不在一个服务器上,指定此种方式,安装数据库连接驱动
    --enable-mbstring 多字节字串、像我们的中文就是多字节字串
    --with-freetype-dir 支持freetype、就要装freetype-devel、跟字体相关的、字体解析工具

    --with-jpeg-dir

    --with-png-dir

    处理jpeg、png图片的、php可以动态生成jpeg图片
    --with-zlib 是个压缩库、在互联网传输时用来压缩传输的
    --with-libxml-dir=/usr 这个libxml是用来解析xml的、指定/usr下
    --enable-xml 支持xml的
    --enable-sockets 支持基于sockets通信的
    --enable-fpm 使用fpm服务
    --with-mcrypt libmcrypt-devel这个程序包所指定的
    --with-config-file-path=/etc 指定配置文件的存放路径的
    --with-config-file-scan-dir=/etc/php.d 去扫描指定目录下以.d结束的文件
    --with-bz2 支持bz2压缩格式

    说明:
       1、这里为了支持apache的worker或event这两个MPM,编译时使用了--enable-maintainer-zts选项。
       2、如果使用PHP5.3以上版本,为了链接MySQL数据库,可以指定mysqlnd,这样在本机就不需要先安装MySQL或MySQL开发包了。mysqlnd从php 5.3开始可用,可以编译时绑定到它(而不用和具体的MySQL客户端库绑定形成依赖),但从PHP 5.4开始它就是默认设置了。
       # ./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd

       # make
       # make intall

       为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加在[global]这个区域内
       pid = /usr/local/php/var/run/php-fpm.pid

       再把配置文件中所监听的IP改为本主机的IP
       listen = 172.16.251.134:9000

    接下来就可以启动php-fpm了:
       # service php-fpm start

       使用如下命令来验正(如果此命令输出有中几个php-fpm进程就说明启动成功了):
       # ss -tnl | grep 9000
       # ps aux | grep php-fpm    

    编辑apache配置文件httpd.conf,以apache支持php

        # vim /etc/httpd24/httpd.conf
        1、添加如下二行
          AddType application/x-httpd-php  .php
          AddType application/x-httpd-php-source  .phps
          QTBucUFBRENqWlc3dG5zMjE0LmpwZw==" src="http://www.it165.net/uploadfile/files/2014/0329/20140329205423465.jpg" title="14.png" />

    2、定位至DirectoryIndex index.html 修改为:
           DirectoryIndex  index.php  index.html

    3、启用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

    4、关闭正向代理

    ProxyRequests Off:关闭正向代理
       ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道运行的目录和URI,所以这里直接在fcgi://xxx.x.x.x:9000后指明了这两个参数,其它的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定。

    QTdsZ2lVMDMyLmpwZw==" src="http://www.it165.net/uploadfile/files/2014/0329/20140329205423468.jpg" title="15.png" />

    而后重新启动httpd,或让其重新载入配置文件即可测试php是否已经可以正常使用。

    最后在php的指定的fcgi的路径上提供一个php的测试页面:

    01.# vim /usr/local/apache/htdocs/index.php  
    02.<?php
    03.$link = mysql_connect('172.16.251.171','wei','wei');
    04.if ($link)
    05.echo "Connection Success....."
    06.else
    07.echo "Connection Failrue....."
    08.mysql_close();
    09.phpinfo();
    10.?>

    为了说明问题、我们还要在httpd服务器上提供一个静态的html页面:

    # vim /usr/local/apache/htdocs/test.html

    <h4>tanxw.blog.51cto.com</h4>

    然后再测试一下看看效果:    

    结束:

    OK、做到这里算是分主机LAMP平台搭建算是有个大概了吧、页面访问应该说没有什么问题了、都正常可以访问、东西好像有点多、不过都是前前的知识了、安装程序包比较多点而了、最后、如果各位大神发现有什么不妥或做得不好的可以留言哦、欢迎交流学习、在此谢谢您的关注!

CentOS 6.5 LAMP分主机平台的搭建及测试的更多相关文章

  1. centos平台基于snort、barnyard2以及base的IDS(入侵检测系统)的搭建与测试及所遇问题汇总

    centos平台基于snort.barnyard2以及base的IDS(入侵检测系统)的搭建与测试及所遇问题汇总 原创 2016年12月19日 01:20:03 标签: centos / snort  ...

  2. linux web服务器及LAMP动态网站平台搭建

    (vim补:)vim另存为:x,x w 目标文件路径vim批量删除x:x,x d Web服务:基于B/S架构的web通信服务端:支持HTTP协议的网页提供程序客户端:按标记规范显示网页的浏览器程序客户 ...

  3. windows平台快速搭建Linux(CentOS)

    VMware简介 VMware Workstation(简称 “虚拟机”)是一款功能强大的桌面虚拟计算机软件,用户可在Windows平台通过VMware软件同时运行不同的操作系统.这对IT开发人员而言 ...

  4. LAMP虚拟主机配置以及控制目录访问

    3.基于域名的虚拟主机配置 NameVirtualHost192.168.3.32:80#apache2.2.xx版本需要开启此选项,而且要和下面的保持一致:2.4.x版本就不需要此项设置了 < ...

  5. CENTOS纯手工安装LAMP+PHPMYADMIN

    现在,安装这些确实越来越方便了. Installing Apache2 With PHP5 And MySQL Support On CentOS 6.4 (LAMP) 参考URL: http://w ...

  6. CentOS yum 安装LAMP PHP5.4版本

    CentOS yum 安装LAMP PHP5.4版本 [日期:2015-06-04] 来源:Linux社区  作者:rogerzhanglijie [字体:大 中 小]     Linux系统版本:C ...

  7. PHP全栈开发(一):CentOS 7 配置LAMP

    服务器CentOS7 IP地址:10.28.2.249 进行网络配置 可以使用ip address命令查看当前的网卡状态 两张网卡,一张lo网卡一张ens160网卡 Ens160这个网卡的配置文件为/ ...

  8. Centos搭建Linux测试环境,几个基本的设置项

    一.添加sudo 权限 1.su - 切换至root,需要rootmim 2.修改 /etc/sudoers 的权限 chmod 644 /etc/sudoers 3.vi /etc/sudoers ...

  9. Ambari——大数据平台的搭建利器之进阶篇

    前言 本文适合已经初步了解 Ambari 的读者.对 Ambari 的基础知识,以及 Ambari 的安装步骤还不清楚的读者,可以先阅读基础篇文章<Ambari——大数据平台的搭建利器>. ...

  10. centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课

    centos   HA高可用集群  heartbeat搭建 heartbeat测试  主上停止heartbeat服务  测试脑裂  两边都禁用ping仲裁  第三十二节课 heartbeat是Linu ...

随机推荐

  1. Rust 登上了开源头条「GitHub 热点速览」

    抱歉!上周因为出月刊工作量比较大,所以「GitHub 热点速递」暂停了一期,必须要给守着更新的读者道个歉,以后每周二的「热点速递」会按时更新,下不为例. 说回本周的热门开源项目,Rust 语言可谓是出 ...

  2. nginx应用及性能调优

    1. Nginx 反向代理实现 说反向代理之前 先说什么是正向代理, 正向代理是指客户端通过 代理服务器访问目标服务器,客户端直接访问代理服务器,在由代理服务器访问目标服务器并返回客户端并返回 . 例 ...

  3. Linux性能监控(二)-top

    top命令可以用来监控服务器CPU.内存的运行情况,是Linux一个经常使用到的命令. 基本用法 第一行 显示当前系统运行信息,系统当前时间是23:23:21,运行了315days,当前有2个用户登录 ...

  4. 清除 gitee.io 页面强缓存 Chrome浏览器 F12 找到页面 右键 Clear browser cache

    清除 gitee.io 页面强缓存 Chrome浏览器 F12 找到页面 右键 Clear browser cache

  5. 网关接口映射项目 前端 nestjs 项目名称 tf-gateway-http-proxy 改Nginx了

    需求 前端 需要连接后台地址,每次换别人联调都要修改,好几个项目的时候,就要改好几个 关键每次git提交 还会显示文件修改了 强迫症患者 表示 忍不了 群里有人给了个脚本 有时间可以替换nginx h ...

  6. 常用Linux系统性能分析命令

    Linux系统提供了许多命令来分析系统性能.以下是一些常用的Linux系统性能分析命令: top:实时监视系统的运行状态和进程信息,包括CPU使用率.内存使用情况.进程状态等. 实例:直接在终端中输入 ...

  7. SAE自动驾驶分级介绍

    SAE International 国际自动机工程师学会(原译:美国汽车工程师学会)英文全程为:Society of Automotive Engineers International,是一个全球性 ...

  8. Lifecycle详细分析

    Lifecycle源码分析 目录介绍 01.Lifecycle的作用是什么 02.Lifecycle的简单使用 03.Lifecycle的使用场景 04.如何实现生命周期感知 05.注解方法如何被调用 ...

  9. Linunx安装wkhtmltox

    1.下载wkhtmltox安装包 官网:https://wkhtmltopdf.org/downloads.html 根据系统类型选择下载wkhtmltox 环境:centos6 32位.wkhtml ...

  10. Java中使用fastJson

    FastJson简介 Fastjson是阿里巴巴开发的一个开源Java库,用于处理JSON数据,广泛应用于Web服务.API接口.数据交换等多个场景. FastJson的作用 主要作用是用于将Java ...