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

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

前言

前面的文章我们谈到过了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-linux2.6-x86.tar.gz (mysql 5.5.33的版本)

============以上是mysql的=======================

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

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

以下是LAMP的工作过程中使用到的协议以及工作图:

CentOS 6.5 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}

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

添加至系统服务、并开机自动启动

# chkconfig --add httpd24

# chkconfig  httpd24 on

修改配置文件、主要是添加一条PidFile的文件路径。这里系统读取PidFile的顺序是配置文件、服务脚本,如果配置文件没有,再去找服务脚本。

# vim /etc/httpd24/httpd.conf    

PidFile "/var/run/httpd/httpd.pid"

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

OK、启动服务看有没有80端口处于监听状态:     CentOS 6.5 LAMP分主机平台的搭建及测试

mysql 5.5编译安装过程

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

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

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

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

3、安装并初始化mysql-5.5.33    

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

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

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

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

thread_concurrency = 2

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

datadir = /mydata/data

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

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

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

# chkconfig --add mysqld 
# chkconfig mysqld on  
# 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:     CentOS 6.5 LAMP分主机平台的搭建及测试

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

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压缩格式

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

说明:

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

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

为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

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

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

# service php-fpm start

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

# ss -tnl | grep 9000

# ps aux | grep php-fpm     CentOS 6.5 LAMP分主机平台的搭建及测试

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

# vim /etc/httpd24/httpd.conf

1、添加如下二行

AddType application/x-httpd-php  .php

AddType application/x-httpd-php-source  .phps

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

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

DirectoryIndex  index.php  index.html

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

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    

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

4、关闭正向代理

ProxyRequests Off:关闭正向代理

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

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

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

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

# vim /usr/local/apache/htdocs/index.php  
<?php 
      $link= mysql_connect('172.16.251.171','wei','wei');
      if($link)
          echo"Connection Success....."
      else
          echo"Connection Failrue....."
      mysql_close();
      phpinfo();
?>

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

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

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

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

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

然后再测试一下看看效果: CentOS 6.5 LAMP分主机平台的搭建及测试

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

结束:

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

本文永久更新链接地址 http://www.linuxidc.com/Linux/2016-11/137657.htm

 
标签: MySQL PHP
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Perl操作Mysql数据库 perl操作excel
    一. 安装DBI模块步骤1:从TOOLS栏目中下载DBI.zip,下载完后用winzip解开到一个temp目录,共有三个文件:ReadmeDBI.ppdDBI.tar.gz步骤2: 在DOS窗口下,temp目录中运行下面的DOS命令:ppm install DBI.ppd 如果提示无效命令,可在perl/bin目录下运行 二. 安装DBD
    02-09
  • Nodejs+Express+Mysql实现简单用户管理增删改查
    Nodejs+Express+Mysql实现简单用户管理增删改查
     源码地址  https://github.com/king-y/NodeJs/tree/master/user目录结构  mysql.jsvar mysql = require('mysql');var pool = mysql.createPool({host : '127.0.0.1',user : 'root',password : '',database : 's79'});exports.que
    02-09
  • PHP 使用 Swoole - TaskWorker 实现异步操作 Mysql
    PHP 使用 Swoole - TaskWorker 实现异步操作 My
    在一般的 Server 程序中都会有一些耗时的任务,比如:发送邮件、聊天服务器发送广播等。如果我们采用同步阻塞的防水去执行这些任务,那么这肯定会非常的慢。Swoole 的 TaskWorker 进程池可以用来执行一些异步的任务,而且不会影响接下来的任务,很适合处理以
    02-09
  • Mysql数据库一个小程序实现自动创建分表。
    每当跨月的时候也是系统出问题最多的时候,没有表和字段缺失是两个最常见的错误。为了解决这个问题,研究了一下mysql的 information_schema 表:information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访
    02-09
  • delphi10.3安装使用mySQL及遇到的问题(01)
    delphi10.3安装使用mySQL及遇到的问题(01)
    1】下载安装好mySQL环境2】FDConnection1的设置3】执行增删改SQL语句和查询Select语句4】客户端连接5]长文本类型,及SQLITE导出,导入到MySQL6】遇到过的问题及解决1】下载安装好mySQL环境,注意32位/64位。本篇为32位mysql32位下载链接: https://pan.baidu.c
    02-09
  • Delphi XE中使用dbExpress连接MySQL数据库疑难
    Delphi IDE中包含一个Data Explorer的组件,如下图所示:  该组件基于dbExpress(包含TSQLConnection、TSQLDataSet、TSQLQuery、TSQLStoredProc、TSQLTable、TsqlServerMethod、TSQLMonitor、TSimpleDataSet)。但是因为该组件只提供了各种数据库的抽象驱动
    02-09
  • DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境
    DELPHI 10.2 TOKYO搭建LINUX MYSQL开发环境笔者使用ubuntu64位LINUX首先必须保证LINUX可以连互联网。安装MYSQLsudo apt-get update sudo apt-get install mysql-serversudo apt-get install mysql-clientsudo apt-get install libmysqlclient-dev复制MYSQL的
    02-09
  • Centos7上安装MySQL5.5报错,/usr/bin/perl is
    今天在Centos7上安装MySQL5.5时报了如下错/usr/bin/perl is needed by MySQL-server-...按照网上的几种说法进行了尝试1、在perl官网下载perl后安装到相应的目录下,仍无法解决问题2、采用强制安装 rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm --nodeps 
    02-09
  • 用perl做数据库迁移,从MSSQL到MYSQL(三)--V1
    从前边的程序的运行情况来看,程序是可以运行的,但速度太扯了,在读写1000W条之前速度还是可以的(大概2000条/秒左右),但过了1000W之后(变成400条/秒左右),当然这个与SQL SERVER读取,网络还有服务器等性能都是有关系的,但,这速度,不晓得有测试过的
    02-09
  • R语言连接MYSQL r语言连接数据库
     操作系统:centos 6.4 64bit R语言可以使用RMySQL来连接Mysql数据库,直接使用数据库里面的数据生成图像。 这个是RMYSQL的说明:http://cran.r-project.org/web/packages/RMySQL/index.htmlRMYSQL的依赖:Depends:R (≥ 2.8.0), methods, DBI (≥ 0.2-2),
    02-09
点击排行