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. [逆向] FS寄存器

    偏移 说明 00 指向SEH链表指针 04 线程堆栈顶部(地址最小) 08 线程堆栈底部(地址最大) 0c SubSystemTib 10 FiberData 14 ArbitraryUserPoin ...

  2. C++ STL函数对象 仿函数

    1 //STL函数对象 仿函数 2 #include<iostream> 3 #include<string> 4 5 using namespace std; 6 7 8 / ...

  3. Android APP 渗透测试---总结

    1.apk反编译得到源代码 使用编译软件 dex2gar 和 jdgui.jar 对Android APP软件进行反编译.具体步骤如下: (1)首先将APK文件后缀改为zip并解压,得到其中的clas ...

  4. python AI应用开发编程实战 大模型实战基础(数据存储类型列表与字典)(二)

    大模型开发中,需要和自己的业务融合,我们要对自己的数据处理,熟悉外理excle  word  pdf 数据然后处理后可以放到向量数据库,或者直接Assistants API传到大模型引用,不管怎么样数 ...

  5. XAF新手入门 - 视图布局示例

    前言 掌握了应用程序模型(ApplicationModel)的基础知识之后,通过一个视图布局示例来加强对应用程序模型的理解. 官网给出了比较丰富的示例,并且这些示例涵盖了应用程序模型操作的方方面面,通 ...

  6. 深入解析:AntSK 0.1.7版本的技术革新与多模型管理策略

    在信息技术快速迭代的当下,.Net生态中的AntSK项目凭借其前沿的AI知识库和智能体技术,已经吸引了广大开发者的关注和参与.今天,我要给大家介绍的主角,AntSK 0.1.7版本,无疑将是这个开源项 ...

  7. ENVI为遥感影像设置空间坐标系的方法

      本文介绍基于ENVI软件,对不含有任何地理参考信息的栅格遥感影像添加地理坐标系或投影坐标系等地理参考信息的方法.   我们先来看一下本文需要实现的需求.现有以下两景遥感影像,其位于不同的空间位置: ...

  8. 被 两个 vetur 玩惨了的几天,可不是vue-helper的锅

    最近由idea 转 vscode,因为 由原来一个项目变成7个项目了,2G内存不够看. 然后发现点击组件跳转不好使,装个vue-helper也是有一部分不好使. 下载vue-helper源码一通查,发 ...

  9. 基于python源码的啸叫抑制算法解析

    一 原理解析 从下图一中可以看出,该算法的原理也是先检测出来啸叫,然后通过陷波器来进行啸叫抑制的,和笔者以前分析的所用方法基本耦合. ​   二 源码分析   函数PAPR:计算峰值功率和平均功率的比 ...

  10. 【leetcode 春季比赛3题 二叉搜索树染色】广度搜索

    暴力: import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import ja ...