一起玩个架构,名字叫做LAMP

目录

 

一、概述

1.1.什么是LAMP

1.2.LAMP的优势

1.3.Linux系统概述

1.4.Apache概述

1.5.PHP概述

1.6.mysql概述

二、部署方式

2.1.linux系统部署

2.2.Apache系统部署

2.2.1.准备环境

2.2.2.设置公共yum源并安装所需依赖包

2.2.3.部署安装

2.3. MYSQL部署

2.3.1.准备环境

2.3.2.yum安装依赖包

2.3.3.安装步骤

 2.4.PHP安装步骤

2.4.1.环境准备

2.4.2.yum依赖包安装

2.4.3.安装步骤

2.4.配置动静分离

2.4.1.修改HTTPD主配置文件

 2.4.2.配置PHP主页面

三、验证

3.1.启动验证

3.2.页面验证

四、总结


一、概述

1.1.什么是LAMP

        LAMP是指Linux(操作系统)+ Apache (HTTP 服务器)+ MySQL(数据库)和 PHP(网络编程语言),一般用来建立 web 应用平台。

1.2.LAMP的优势

        LAMP和 Java/J2EE 架构相比, LAMP 具有 Web 资源丰富、轻量、快速开发等特点;与微软的 .NET 架构相比,LAMP具有通用、跨平台、高性能、低价格的优势。因此 LAMP 无论是性能、质量还是价格都是企业搭建网站的首选平台。

1.3.Linux系统概述

          Linux 是一种*和开发源代码的类 UNIX 操作系统,目前运用最广泛使用人数最多的操作系统。本实验为大家提供的就是Linux 操作系统。

1.4.Apache概述

          Apache 是LAMP架构最核心的 Web Server,开源、稳定、模块丰富是 Apache 的优势。但 Apache 的缺点是有些臃肿,内存和 CPU 开销大,性能上有损耗,不如一些轻量级的 Web 服务(例如 nginx)高效,轻量级的 Web 服务器对于静态文件的响应能力来说远高于 Apache 服务器。Apache 做为 Web Server 是负载 PHP 的最佳选择,如果流量很大的话,可以采用 nginx 来负载非 PHP的Web 请求。

1.5.PHP概述

         PHP 是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Per1 的特点,利于学习,使用广泛,主要适用于 Web 开发领域。PHP 独特的语法混合了 C、Java、Perl以及 PHP 自创的语法。它可以比 CGI 或者 Perl 更快速地执行动态网页。用 PHP 做出的动态页面与其他的编程语言相比,PHP 是将程序嵌入到 HTML(标准通用标记语言下的一个应用)文档中去执行,执行效率比完全生成 HTML 标记的 CGI 要高许多;PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。

1.6.mysql概述

       MySQL 在开源数据库中,性能、稳定性和功能上是首选,可以达到百万级别的数据存储,网站初期可以将 MySQL 和 Web 服务器放在一起,但是当访问量达到一定规模后,应该将 MySQL 数据库从 Web Server 上独立出来,在单独的服务器上运行,同时保持 Web Server 和 MySQL 服务器的稳定连接。

二、部署方式

2.1.linux系统部署

        此处linux系统部署省略,因为目前所有的基础环境都为linux,安装步骤在之前的博客提起过,请各位去查看。

2.2.Apache系统部署

     此处部署Apache httpd 服务,安装方式为源码安装方式。

2.2.1.准备环境

    源码包:httpd-2.4.29.tar.bz2、apr-1.6.2.tar.gz、apr-util-1.6.0.tar.gz

2.2.2.设置公共yum源并安装所需依赖包

  • 设置yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

yum clean all

yum makecache
  • 安装依赖包
#gcc c语言的编译器
#gcc-c++ c++语言的编译器
#make 源码编译器(二进制)
#pcre 是一个perl函数库,包括perl
#perl-devel perl的接口
#expt-devel      用于支持网站解析html、xml文件
#perl   perl语言编译器
yum -y install gcc gcc-c++ make  pcre pcre-devel expt-devel perl

2.2.3.部署安装

  • 步骤1:解压并转移文件
 tar xf httpd-2.4.29.tar.bz2 -C /opt

 tar xf apr-1.6.2.tar.gz -C /opt/httpd-2.4.29/srclib/apr

 tar xf apr-util-1.6.0.tar.gz -C /opt/httpd-2.4.29/srclib/apr-util
  • 步骤2:设置目录环境变量
ln -s /usr/local/httpd/conf/httpd.conf /etc/

ln -s /usr/local/httpd/bin/* /usr/local/bin
  • 步骤3:开始进行编译   
    #进入opt/httpd-2.4.29目录下执行

./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi

    # 以上编译完成后,进行以下操作

 make和make install
  •  步骤4:设置启动方式
#设置service启动方式
cp /usr/local/httpd/bin/apachectl  /etc/init.d/httpd
chkconfig --add httpd
  • 步骤5:主配置文件修改
vim /etc/httpd.conf
#修改Listen 80
Listen 192.168.1.21:80
#修改ServerName
ServerName www.ky11.com:80

2.3. MYSQL部署

2.3.1.准备环境

压缩包:mysql-5.6.26.tar.gz

2.3.2.yum安装依赖包

#ncurses 字符终端下图形互动功能的动态库
#ncurses-devel ncurses开发包
#bison  语法分析器
#cmake  mysql编译器
#autoconf 是一个用于生成可以自动配置软件源代码包以适应多种unix类系统的shell
yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake autoconf

2.3.3.安装步骤

  • 步骤1:解压文件

tar xf  mysql-5.6.26.tar.gz -C /opt

  • 步骤2:cmake
cmake \

-DCMAKE_INSTALL_PERFIX=/usr/local/mysql \   

-DDEFAULT_CHARSET=utf8 \  #指定默认字符集编码

-DDEFAULT_COLLATION=utf8_general_ci \  #指定字符集校验规则

-DEXTRA_CHARSETS=all \

-DSYSCONFIDIR=/etc \

-DMYSQL_DATAIR=/home/mysql/ \

-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock  #指定连接数据库的通讯文件
make && make install
  •  步骤3:设置默认文件
cp //opt/mysql-5.6.26/support-files/my-default.cnf /etc/my.cnf
  • 步骤4:设置启动文件
cp support-files/mysql.server /etc/init.d/mysqld #设置mysql的service启动文件
chmod 755 /etc/init.d/mysqld  #设置权限     
chkconfig --add /etc/init.d/mysqld #将mysqld 加入开机自启
chkconfig  mysqld --level 35 on #设置开机自启
systemctl enbale mysqld  

        注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧 

  • 步骤5:创建用户
#创建普通用户管理mysql 
useradd -s /sbin/nologin mysql
#修改mysql的属主属组
chown -R mysql:mysql /usr/local/mysql/
#更改管理主/组
chown mysql:mysql /etc/my.cnf
  • 步骤6:设置环境变量
#设置环境变量,申明/宣告mysql命令便于系统识别
echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile
#加载文件
source /etc/profile

    注意:此处必须为追加方式>>

  • 步骤7:初始化数据库
/usr/local/mysql/scripts/mysql_install_db \ # 初始化数据库文件
--user=mysql \  #用户名
--ldata=/var/lib/mysql \ #是数据初始化的目录
--basedir=/usr/local/mysql \ #数据部署位置
--datadir=/home/mysql #数据存储位置
  • 步骤8:修改主配置文件
vi  /etc/init.d/mysqld
#此处配置要和数据初始化的时候一致,不然会出现pid找不到
basedir=/usr/local/mysql     
datadir=/home/mysql
  •  步骤9:mysql修改数据库密码
mysqladmin -u root -p password "abc123" 

 2.4.PHP安装步骤

2.4.1.环境准备

     源码包:php-5.6.11.tar.bz2

2.4.2.yum依赖包安装


yum -y install \
gd \					#图像化处理的库
libpng \				#png格式图片的库
libpng-devel \
pcre \					#PCRE库支持正则表达式
pcre-devel \			#pcre-devel是使用PCRE做二次开发时所需要的开发库,也是编译安装需要的
libxml2-devel \			#解析xml标记语言的库
libjpeg-devel			#jpeg格式图片的库

2.4.3.安装步骤

  • 步骤1:解压文件
tar xjvf php-5.6.11.tar.bz2 -C /opt
  • 步骤2:加载参数编译
./configure \
--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 									#启用多字节字符串功能,以便支持中文等代码
make && make install
  •  步骤3:环境变量设置
ln -s /usr/local/php5/bin/* /usr/local/bin/

2.4.配置动静分离

2.4.1.修改HTTPD主配置文件

vi /etc/httpd.conf 
#添加index.php  这里识别的是动态
 <IfModule dir_module>
     DirectoryIndex index.html index.php
 </IfModule>
#在392行下方插入一下内容,让Apache可以支持.php的网页文件
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
##检查156行默认支持php5的模块是否存在

 2.4.2.配置PHP主页面


vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

三、验证

3.1.启动验证

  • lsof -i:80

一起玩个架构,名字叫做LAMP

  • netstat -ntap | grep 80

一起玩个架构,名字叫做LAMP

  • lsof -i:3306

一起玩个架构,名字叫做LAMP

3.2.页面验证

  • 静态页面

一起玩个架构,名字叫做LAMP

  • 动态页面

一起玩个架构,名字叫做LAMP

四、总结

根据三个服务的部署,总结了一下相关的步骤:

  • 1.yum安装依赖包
  • 2.解压源码包
  • 3.编译及初始化源码包
  • 4.make 和make install
  • 5.修改主配置文件
  • 6.PHP和HTTPD的动静分离,实则是HTTPD中进行配置相关页面,并且设置参数调用PHP的动态页面。

 

上一篇:三分钟带你了解最成熟最流行的LAMP网站应用架构


下一篇:lamp分离部署