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. vite环境配置mockjs

    mockjs使用文档v2.9.6 安装插件 npm i mockjs -S npm i vite-plugin-mock@2.9.6 配置vite.config.ts文件 export default ...

  2. SSRF概述

    SSRF(service side request forgery) 1.攻击的目标: 从外网无法访问的内部系统 2.形成的原因: 大部分是由服务器端提供了从其他服务器应用获取数据的功能.且没有对目标 ...

  3. Spring整合mybatis使用xml配置事务

    自己准备开始教授Java相关的技术,Spring框架是必须让学生学习的框架之一.里面有一个事务相关的 配置,以前刚学习Spring框架的时候有接触过,只是过了很多年,很多东西都已经淡忘.再来回忆一下 ...

  4. org.jetbrains.idea.maven - com.google.inject.CreationException: Unable to create injector, see the following errors-导入maven项目报错

    一.问题由来 最近准备更换Java开发工具,以前是使用Eclipse,现在准备换成号称Java开发神器的IntelliJ IDEA .在同事那里找到安装包后, 安装,导入需要的文件等等,一切都进行得很 ...

  5. 幕布 和 xmind 的大纲模式 都很不错

    幕布 和 xmind 的大纲模式 都很不错 xmind 思维导图 ctrl+a 折叠所有子分支 然后就能一级一级展开 最后选择用 xmind的大纲模式,因为免费. 幕布收费,限300个节点,小数据量的 ...

  6. Navicat Premium15 解决只能显示前1000条记录问题

    Navicat Premium15 解决只能显示前1000条记录问题 最近使用Navicat Premium15图形化界面操作MySQL的数据库,发现在超过1461条记录的表里,只能显示前1000条, ...

  7. 【预训练语言模型】使用Transformers库进行GPT2预训练

    基于 HuggingFace的Transformer库,在Colab或Kaggle进行预训练. 本教程提供:英文数据集wikitext-2和代码数据集的预训练. 注:可以自行上传数据集进行训练 目的: ...

  8. 对TCP/IP协议的理解

    话说两台电脑要通讯就必须遵守共同的规则,就好比两个人要沟通就必须使用共同的语言一样.一个只懂英语的人,和一个只懂中文的人由于没有共同的语言(规则)就没办法沟通.两台电脑之间进行通讯所共同遵守的规则,就 ...

  9. Java线上诊断神器Arthas:常用命令详解!

    有关Arthas基本介绍.安装部署.arthas idea插件在上篇文章已经介绍过,这里就不在重述. 文章地址:Java诊断工具Arthas:开篇之watch实战 上篇重点讲了 watch 命令.这篇 ...

  10. AOSP12内置三方apk

    一.准备工作 1.可正常编译的Android12的源码 2.三方apk:我这里选择的是一个ChatGPT的apk(下载地址:https://aigcfun.com/app-download),选择这个 ...