Web服务器集群——源码部署LAMP平台

一、LAMP简介与概述

1、LAMP平台概述

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整台系统和相关软件,能够提供动态web站点服务及其应用开发环境

LAMP是一个缩写词,具体包括Linux操作系统,Apache网站服务器,MySQL数据库服务器,PHP(或perl,Python)网页编程语言

2、构建LAMP平台顺序

在构建LAMP平台时,各组件的安装顺序依次为Linux,Apache,MySQL,PHP

其中Apache和MySQL的安装并没有严格的顺序要求,而PHP环境的安装一般放到最后,负责沟通web服务器和数据库系统以协同工作

3、编译安装的优点

  • 具有较大的自由度,功能可定制
  • 可及时获得最新的软件版本
  • 普遍适用于大多数Linux版本,便于一直使用

4、各组件的主要作用

  • (平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。

  • (前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容;静态页面服务

  • (后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息;数据库

  • (中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

二、源码安装Apache

1、安装准备工作

  • apache官网:http://httpd.apache.org/
    • 所需源码包:httpd-2.4.48
    • 所需依赖包apr-1.7.0.tar.gz、apr-util-1.6.1.tar.gz
  • 安装环境:必须预先安装gcc、gcc-c++和make
    • apr包是apache的依赖包,apr、apr-util软件包支持Apache上层应用跨平台,提供底层接口库

2、安装步骤

  1. 解压tarball
  2. 解压完成后会产生一个configure可执行文件,它是用于检查系统是否有编译时所需的库,以及库的版本是否满足编译的需要等安装所需要的系统信息,为随后的编译工作做准备,在解压目录下./configure
  3. 检查通过后,将生成用于编译的MakeFile文件。此时,可以开始进行编译了。编译的过程视软件的规模和计算机性能的不同,所耗费的时间也不同。命令为: make
  4. 成功编译后,键入如下的命令开始安装:make install
    安装完毕,可以清除编译过程中产生的临时文件和配置过程中产生的文件。键入如下命令:make clean

代码如下:

[root@klj ~]# cd /opt    ##软件包放在opt目录下
[root@klj opt]# rz -E    ##先下载到电脑再拖进linux中
rz waiting to receive.
[root@klj opt]# ls
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.48.tar.gz  rh
[root@klj opt]# ls
apr-1.7.0         apr-util-1.6.1         httpd-2.4.48         rh
apr-1.7.0.tar.gz  apr-util-1.6.1.tar.gz  httpd-2.4.48.tar.gz
[root@klj opt]# tar zxf apr-1.7.0.tar.gz    ##opt目录下解压
[root@klj opt]# tar zxf apr-util-1.6.1.tar.gz
[root@klj opt]# tar zxf httpd-2.4.48.tar.gz
[root@klj opt]# mv apr-1.7.0 httpd-2.4.48/srclib/apr           ##移动解包包至 httpd-2.4.48/srclib目录下重命名apr
[root@klj opt]# mv apr-util-1.6.1 httpd-2.4.48/srclib/apr-util ##移动解包包至 httpd-2.4.48/srclib目录下重命名apr-util
[root@klj opt]# cat /etc/resolv.conf                                       ##查看DNS是否配置
# Generated by NetworkManager
search localdomain
nameserver 114.114.114.114
[root@klj opt]# yum install -y  pcre pcre-devel expat-devel   ##下载依赖软件;PCRE(Perl Compatible Regular Expressions)是一个轻量级的Perl函数库,包括 perl兼容的正则表达式库,功能和性能都很强大,expat是一个由C语言编写的XML解析库
[root@klj httpd-2.4.48]# ./configure --prefix=/usr/local/httpd     ##配置和检查环境
[root@klj httpd-2.4.48]# make  &&  make install     ##编译和安装
[root@klj httpd-2.4.48]# cd /usr/local/httpd
[root@klj httpd]# ls
bin    cgi-bin  error   httpd.conf  include  logs  manual
build  conf     htdocs  icons       lib      man   modules
[root@klj httpd]# vim httpd.conf     ##修改配置文件
   51行:下面加入一行:Listen 192.168.35.40:80   
   194行:下面加入一行:ServerName www.klj.com:80 
   219行: DocumentRoot " /usr/ local /httpd/htdocs"   ##默认首页存放路径
   253行:Di rectoryIndex index. html  ##默认首页文件名设置
[root@klj conf]# cp /user/local/httpd/bin/apachetcl /etc/init.d/httpd  ##把httpd的命令apache 复制到service下面,便于service管理
[root@klj bin]# vim /etc/init.d/httpd   ##添加两行内容,加上注释
# chkconfig: 35 85 21   ##35级别自动运行 第85个启动  第21个关闭
# description: Apache is a World Wide Web server
[root@klj bin]# chkconfig --add httpd  ##将httpd加入系统管理器;chkconfig:系统识别命令;--add:添加
[root@klj bin]# httpd -t  对配置文件的语法检测
[root@klj bin]# service httpd star  ##开启httpd服务
[root@klj bin]# netstat -antp | grep 80   ##查询端口已开启
tcp        0      0 192.168.35.40:80        0.0.0.0:*               LISTEN      99070/httpd  

在这里插入图片描述
在这里插入图片描述

主页目录:/usr/local/httpd/htdocs
执行文件目录:/usr/local/httpd/bin
日志目录(访问日志、错误日志):/usr/local/httpd/logs

3、启动服务

  1. ./apachectl start
    在这里插入图片描述
  2. 创建软链接,直接执行httpd
    ln -s /usr/local/httpd/bin/* /usr/local/bin/
    在这里插入图片描述
  3. 使用service管理
cp /user/local/httpd/bin/apachetcl /etc/init.d/httpd  ##把httpd的命令apache 复制到service下面,便于service管理
    /etc/init.d/ :service管理工具可以识别服务启动脚本的目录位置
    /usr/lib/systemd/system/:真实suystemctl 可以识别的服务启动脚本的目录位置
vim /etc/init.d/httpd
    # chkconfig: 35 85 21   ##35级别自动运行 第85个启动  第21个关闭
   # description: Apache is a World Wide Web server
chkconfig --add httpd  ##将httpd加入系统管理器;chkconfig:系统识别命令;--add:添加主配置文件
ln -s /usr/local/httpd/bin/* /usr/local/bin/ ##创建软链接,直接执行httpd
httpd -t 或 apachectl -t  ##对配置文件的语法检测
service httpd start ##开启httpd服务

在这里插入图片描述

4、卸载

  • make uninstall
  • rm -rf httpd/
    软件包安装目录在:usr/local/httpd目录下,删除此httpd目录
    在这里插入图片描述

三、安装MYSQL

1、安装过程

mysql的功能:提供持久化存储

yum -y install ncurses ncurses-devel bison cmake autoconf     ##安装mysql依赖软件
cd /opt
tar xzvf mysql-5.6.26.tar.gz   ##解压mysql包到opt目录下
cd /opt/mysql-5.6.26  ##切换到mysql解压目录下
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DSYSCONFIDIR=/etc -DMYSQL_DATADIR=/home/mysql/ -DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock
-DCMAKE_ INSTALL _PREFIX=/usr/ local/mysql           ##在mysql解压包的目录下
注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMa keCache. txt文件删除,然后再重新CMAKE,否则错误依旧
make && make install    ##编译和安装
cd /opt/mysql-5.6.26/supoort-files/   ##模板型文件
cp support-files/my-default.cnf /etc/my.cnf		##把默认配置文件复制到mysql自带的配置文件/etc/my.cnf;my-default.cnf:默认配置文件
cp support-files/mysql.server /etc/init.d/mysqld ##复制mysql.server复制到service服务下并改名mysqld;做开机启动脚本
chmod 755 /etc/init.d/mysqld        ##赋予一个启动权限
chkconfig --add /etc/init.d/mysqld
chkconfig  mysqld --level 35 on   ##配置开机自启
useradd -s /sbin/nologin mysql  #创建普通用户管理mysql
chown -R mysql:mysql /usr/local/mysql/   #递归更改属主属组
echo "PATH=SPATH:/usr/ local/mysql/bin" >> /etc/profile #设置环境变量,申明/宣告mysql命令便于系统识别
/usr/local/mysql/scripts/mysql_install_db --user=mysql --ldata=/var/lib/mysql --basedir=/usr/local/mysql --datadir=/home/mysql    ##初始化数据库
vim /etc/init.d/mysqld
   46 basedir=/usr/local/mysql
   47 datadir=/home/mysql
 service mysqld start  ##开启mysqld服务
 netstat -antp | grep 3306  ##验证端口已开启
 tcp6       0      0 :::3306                 :::*                    LISTEN      9370/mysqld   
 

需下载的依赖软件包

  • gcc #编译语言,翻译官
  • gcc-c++
  • ncurses #字符终端下图形互动功能的动态库
  • ncurses-devel #ncurses开发包
  • bison #语法分析器
  • cmake #mysql需要用cmake编译安装
  • autoconf #是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的shell脚本工具。

cmake #mysql需要用cmake编译安装

  • autoconf #是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的shell脚本工具。

  • DDEFAULT CHARSET=utf8 #指定默认使用的字符集编码,如utf8/utf-8:语法是中文

  • DDEFAULT_ COLLATION=utf8_ general_ _ci #指定默认使用的字符集校对规则;COLLATION:校对

  • DEXTRA_ CHARSETS=all #指定支持其他字符集编码;DEXTRA:其他;CHARSETS:字符集

  • DSYSCONFIDIR=/etc #配置文件路径/etc/mysql; 会覆盖掉系统中默认的配置文件: /etc/my. cnf

  • DMYSQL_ DATADIR=/home/mysql/ #数据文件;数据文件放到home家目录mysq|目录下

  • DMYSQL_ UNIX ADDR=/ home/ mysql/ mysql . sock #指定连接数据库的通讯文件(启动数据库的时候会生成)

  • 有关cmkae的相关释义,百度百科如下:
    cmake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。它能够输出各种各样的makefile或者project文件,能测试编译器所支持的C++特性,类似与UNIX下的automake。只是cmake的组态档取名为cmakeLists.txt。

cmake并不直接建构出最终的软件,而是产生标准的建构档(如 Unix 的makefile 或 Windows Visual C++ 的 projects/workspaces),然后再依一般的建构方式使用

2、给root设置密码

密码使用英文双引号""引住

mysqladmin -u root -p password "abc123"

在这里插入图片描述

3、登录和退出mysql

  • 登录
    • mysql -uroot -p
      在这里插入图片描述
    • mysql -uroot -pabc123
      在这里插入图片描述
    • show databases; #show:查看,data:数据,bases:信息在这里插入图片描述
    • use mysql
      在这里插入图片描述
    • show tables ##查看mysql的表
      在这里插入图片描述
  • 退出
    • exit ##友好退出
      在这里插入图片描述
    • Ctrl-C – exit! ##暴力退出
      在这里插入图片描述

四、安装PHP

php 处理动态请求,在此处他是一个后台的代码程序,不是一个服务(所以不需要启动脚本)

yum -y install gd libpng libpng-devel pcre pcre-devel libxml2-devel libjpeg-devel  ##安装php服务依赖软件
tar xjvf php-5.6.11.tar.bz2   ##解压到opt目录下
cd php-5.6.11  ##切换到软件包目录下
./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring  ##这一步为了可以httpd mysql对接,为了可以更好的处理动态请求
make && make install  ##编译和安装
ln -s /usr/local/php5/bin/* /usr/local/bin  #优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别
cd /usr/local/httpd/conf/httpd.conf
vim httpd.conf  ##编辑httpd主配置文件
    253行:添加index.php  ##添加php的网页格式
    390行后面插入以下内容,让Apache可以支持.php的网页文件
   391     AddType application/x-httpd-php .php
   392     AddType application/x-httpd-php-source .phps
   检查156行默认支持php5的模块是否存在
vim /usr/local/httpd/htdocs/index.php  #创建、编辑php页面文件
   <?php
   phpinfo();
   ?>
service httpd stop  
service httpd start  ##重启httpd服务;不直接使用restart是因为在开启或者运转过快时导致卡死的状况

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

–prefix=/usr/local/php5
–with-gd #激活gd 库的支持
–with-zlib #支持zlib功能,提供数据压缩功能的函式库
–with-apxs2=/usr/local/httpd/bin/apxs #指定httpd服务提供的apxs模块支持程序的文件位置
#用于指定Apache可以加载/识别对应的功能模块,此处可以让php服务模块直接提供给apache加载使用
–with-mysql=/usr/local/mysql #关联数据库
–with-config-file-path=/usr/local/php5 #指定配置文件
–enable-mbstring #启用多字节字符串功能,以便支持中文等代码

验证:本机输入网址:http://192.168.35.40/index.php
在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值