阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

134次阅读
没有评论

共计 8420 个字符,预计需要花费 22 分钟才能阅读完成。

前言

   前面的文章我们谈到过了 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 的工作过程中使用到的协议以及工作图:
wKioL1M2LCqi0Cd5AAJbbBNhwWM147.jpg

补充:

(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-zlibzlib 是一个网络上发送数据报文时的一个通用压缩库的 API
–with-pcre通常支持 Perl 所用到的一个库
–with-apr=/usr/local/apr指定新的 apr 的路径
–with-apr-util=/usr/local/apr-util/指定新的 apr-util 的路径
–enable-modules=mostmost 表示启用大多数常用的模块
–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、这个应该很熟悉了、这里不做过多的解释、什么可以留言交流。

1
2
3
4
5
6
7
8
9
10
11
12
13
############ 这些不做过多的解析、一看就明白了 ################
# 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、新建用户以安全方式运行进程:

1
2
3
# 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    

1
2
3
4
5
6
7
# 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 提供主配置文件:

1
2
# 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 服务脚本:

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

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

1
2
3
# 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-mcryptlibmcrypt-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 的测试页面:

1
2
3
4
5
6
7
8
9
10
# 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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计8420字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中