CentOS 6.5 LAMP分主机平台的搭建及测试
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.html3、启用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.so4、关闭正向代理
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分主机平台的搭建及测试的更多相关文章
- centos平台基于snort、barnyard2以及base的IDS(入侵检测系统)的搭建与测试及所遇问题汇总
centos平台基于snort.barnyard2以及base的IDS(入侵检测系统)的搭建与测试及所遇问题汇总 原创 2016年12月19日 01:20:03 标签: centos / snort ...
- linux web服务器及LAMP动态网站平台搭建
(vim补:)vim另存为:x,x w 目标文件路径vim批量删除x:x,x d Web服务:基于B/S架构的web通信服务端:支持HTTP协议的网页提供程序客户端:按标记规范显示网页的浏览器程序客户 ...
- windows平台快速搭建Linux(CentOS)
VMware简介 VMware Workstation(简称 “虚拟机”)是一款功能强大的桌面虚拟计算机软件,用户可在Windows平台通过VMware软件同时运行不同的操作系统.这对IT开发人员而言 ...
- LAMP虚拟主机配置以及控制目录访问
3.基于域名的虚拟主机配置 NameVirtualHost192.168.3.32:80#apache2.2.xx版本需要开启此选项,而且要和下面的保持一致:2.4.x版本就不需要此项设置了 < ...
- CENTOS纯手工安装LAMP+PHPMYADMIN
现在,安装这些确实越来越方便了. Installing Apache2 With PHP5 And MySQL Support On CentOS 6.4 (LAMP) 参考URL: http://w ...
- CentOS yum 安装LAMP PHP5.4版本
CentOS yum 安装LAMP PHP5.4版本 [日期:2015-06-04] 来源:Linux社区 作者:rogerzhanglijie [字体:大 中 小] Linux系统版本:C ...
- PHP全栈开发(一):CentOS 7 配置LAMP
服务器CentOS7 IP地址:10.28.2.249 进行网络配置 可以使用ip address命令查看当前的网卡状态 两张网卡,一张lo网卡一张ens160网卡 Ens160这个网卡的配置文件为/ ...
- Centos搭建Linux测试环境,几个基本的设置项
一.添加sudo 权限 1.su - 切换至root,需要rootmim 2.修改 /etc/sudoers 的权限 chmod 644 /etc/sudoers 3.vi /etc/sudoers ...
- Ambari——大数据平台的搭建利器之进阶篇
前言 本文适合已经初步了解 Ambari 的读者.对 Ambari 的基础知识,以及 Ambari 的安装步骤还不清楚的读者,可以先阅读基础篇文章<Ambari——大数据平台的搭建利器>. ...
- centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课
centos HA高可用集群 heartbeat搭建 heartbeat测试 主上停止heartbeat服务 测试脑裂 两边都禁用ping仲裁 第三十二节课 heartbeat是Linu ...
随机推荐
- Rust 登上了开源头条「GitHub 热点速览」
抱歉!上周因为出月刊工作量比较大,所以「GitHub 热点速递」暂停了一期,必须要给守着更新的读者道个歉,以后每周二的「热点速递」会按时更新,下不为例. 说回本周的热门开源项目,Rust 语言可谓是出 ...
- nginx应用及性能调优
1. Nginx 反向代理实现 说反向代理之前 先说什么是正向代理, 正向代理是指客户端通过 代理服务器访问目标服务器,客户端直接访问代理服务器,在由代理服务器访问目标服务器并返回客户端并返回 . 例 ...
- Linux性能监控(二)-top
top命令可以用来监控服务器CPU.内存的运行情况,是Linux一个经常使用到的命令. 基本用法 第一行 显示当前系统运行信息,系统当前时间是23:23:21,运行了315days,当前有2个用户登录 ...
- 清除 gitee.io 页面强缓存 Chrome浏览器 F12 找到页面 右键 Clear browser cache
清除 gitee.io 页面强缓存 Chrome浏览器 F12 找到页面 右键 Clear browser cache
- 网关接口映射项目 前端 nestjs 项目名称 tf-gateway-http-proxy 改Nginx了
需求 前端 需要连接后台地址,每次换别人联调都要修改,好几个项目的时候,就要改好几个 关键每次git提交 还会显示文件修改了 强迫症患者 表示 忍不了 群里有人给了个脚本 有时间可以替换nginx h ...
- 常用Linux系统性能分析命令
Linux系统提供了许多命令来分析系统性能.以下是一些常用的Linux系统性能分析命令: top:实时监视系统的运行状态和进程信息,包括CPU使用率.内存使用情况.进程状态等. 实例:直接在终端中输入 ...
- SAE自动驾驶分级介绍
SAE International 国际自动机工程师学会(原译:美国汽车工程师学会)英文全程为:Society of Automotive Engineers International,是一个全球性 ...
- Lifecycle详细分析
Lifecycle源码分析 目录介绍 01.Lifecycle的作用是什么 02.Lifecycle的简单使用 03.Lifecycle的使用场景 04.如何实现生命周期感知 05.注解方法如何被调用 ...
- Linunx安装wkhtmltox
1.下载wkhtmltox安装包 官网:https://wkhtmltopdf.org/downloads.html 根据系统类型选择下载wkhtmltox 环境:centos6 32位.wkhtml ...
- Java中使用fastJson
FastJson简介 Fastjson是阿里巴巴开发的一个开源Java库,用于处理JSON数据,广泛应用于Web服务.API接口.数据交换等多个场景. FastJson的作用 主要作用是用于将Java ...