第十一章 LAMP架构(上)

11.1 LAMP架构介绍
11.2 MySQL、MariaDB介绍
11.3/11.4/11.5 MySQL安装
11.6 MariaDB安装
11.7/11.8/11.9 Apache安装
11.10/11.11/11.12 安装PHP5
11.13 安装PHP7
11.14/11.15 Apache和PHP结合

扩展:
mysql5.5源码编译安装 http://www.aminglinux.com/bbs/thread-1059-1-1.html
mysql5.7二进制包安装(变化较大) http://www.apelearn.com/bbs/thread-10105-1-1.html
apache dso https://yq.aliyun.com/articles/6298
apache apxs https://wizardforcel.gitbooks.io/apache-doc/content/51.html
apache工作模式 http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html
php中mysql,mysqli,mysqlnd,pdo到底是什么 http://blog.csdn.net/u013785951/article/details/60876816
查看编译参数 http://ask.apelearn.com/question/1295

11.1 LAMP架构介绍

LAMP是Linux 、Apache、 MySQL、PHP的简写,即可把Apache MySQL和PHP安装在Linux系统上,组成一个环境来运行PHP的脚本语言,通常是网站。
Linux是操作系统;
Apache提供web服务的一个软件,真正的名字是httpd;
MySQL 存储的一个软件。存储的是数据(字符串),图片、视频等存在MySQL里的是路径,真实文件存放在磁盘上;
PHP 脚本语言 ,通常用来做网站。
三个角色可以在一台机器,也可以分开(分开时Apache和MySQL通过网络形式连接)。Apache和PHP要在一起。
架构图:
第十一章 LAMP架构(上)_第1张图片
Apache和PHP是一个整体,PHP是以一个模块的形式和Apache结合在一起的。Apache不能直接和MySQL交互,只能通过PHP这个模块到MySQL中获得数据。
PHP获得数据→Apache→用户。
PHP到MySQL中拿数据的过程叫做动态的请求。
静态,就是直接由webserver处理的请求,比如图片,js,css等;例:在一个web网站上 点一个图片logo, apache会在静态资源里去拿,不在MySQL里面拿;
而动态的是需要和数据库打交道的请求,比如你现在访问ask.apelearn.com,登录用户,发帖子,看帖子,这些都是需要和MySQL数据库打交道的。这样的就是动态。
详细:
第十一章 LAMP架构(上)_第2张图片

11.2 MySQL、MariaDB介绍

MySQL介绍:
MySQL是一个关系型数据库,由MySQL ab公司开发,MySQL在2008年被sun公司10亿美元收购,2009年sun公司被Oracle公司收购(74亿美元);
MariaDB由MySQL原作者和大部分原班人马创立的skySQL公司(现改名为MariaDB公司)维护;
MySQL官网:https//:www.mysql.com
community 社区版本,Enterprise 企业版, GA(Generally Available)通用版本,生产环境中用。
DMR(Development Milestone Release)开发里程碑发布版。
RC(release candidate) 发行候选版本,beta开发测试版本(对外),alpha内部测试版本。

11.3/11.4/11.5 MySQL安装

mysql的几个常用的安装包:rmp、源码、二进制免编译。
介绍:
我们平时是通过源码包安装MySQL,但是它的编译时间比较长,不能指定路径,不方便,所以我们通常用二进制免编译包。
源码包都是可以更改的C或者C++语言编写的源码文件。
而免编译的二进制包就是已经编译过的文件再打包提供给我们使用的。
MySQL版本比较多,并不是用最新的才更好,因为新版本难免会有一些bug。
安装步骤:

  • ①查看自己的操作系统是多少位的(下载匹配的安装包)
    查看操作系统版本
  • ②进入/usr/local/src目录,把安装包下载到这个目录下(约定
    第十一章 LAMP架构(上)_第3张图片
  • ③解压
    -[root@Linux01 src]# tar zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
    解压
  • ④挪动位置并且改名
    [root@Linux01 src]# mv mysql-5.6.39-linux-glibc2.12-x86_64 /usr/local/mysql
    在这里插入图片描述
  • ⑤进入到usr/local/mysql目录下,要确认目录下是否有bin data等目录
    在这里插入图片描述
  • ⑥创建一个MySQL用户,创建一个data目录,以后数据库文件会放到这个里面
    在这里插入图片描述
  • ⑦mysql初始化,指定用户为MySQL,再指定目录(存放数据库文件的目录/data/mysql,指定目录,目录不存在的话,上一级目录存在时自动创建)进入安装路径usr/local/mysql,执行初始化配置脚本,创建系统自带的数据库和表
    第十一章 LAMP架构(上)_第4张图片
    注意:第一次初始化时,可能会出现问题(不固定),确认清楚原因后,针对具体原因处理,不要照搬(这里libaio库,可以解决办法是: yum install libaio-devel 也能处理)
  • ⑧再次初始化,检验是否OK
    第十一章 LAMP架构(上)_第5张图片
    在这里插入图片描述
    ⑨拷贝配置文件
    第十一章 LAMP架构(上)_第6张图片
    编辑配置文件:
    第十一章 LAMP架构(上)_第7张图片
  • ⑩拷贝启动脚本
    第十一章 LAMP架构(上)_第8张图片
    编辑启动脚本:
    在这里插入图片描述
    第十一章 LAMP架构(上)_第9张图片
  • 十一、修改启动脚本权限为755;设为开机启动;(这里忘记设置开机启动了)
    第十一章 LAMP架构(上)_第10张图片
  • 十二、启动服务(这里也有问题,具体见LNMP安装)
    第十一章 LAMP架构(上)_第11张图片

11.6 MariaDB安装

安装步骤:

  • ①进入/usr/local/src目录,把安装包下载到这个目录下(约定)
    第十一章 LAMP架构(上)_第12张图片
    在这里插入图片描述
  • ②解压
    [root@Linux01 src]# tar zxvf mariadb-10.2.19-linux-glibc_214-x86_64_(1).tar.gz
    在这里插入图片描述
  • ③挪动位置并且改名
    在这里插入图片描述
  • ④进入到usr/local/mariadb目录下,要确认目录下是否有bin data等目录
    在这里插入图片描述
  • ⑤创建一个MySQL用户,创建一个data目录,以后数据库文件会放到这个里面
    在这里插入图片描述
  • ⑥mariadb初始化,指定用户为MySQL,再指定目录(存放数据库文件的目录/data/mariadb,指定目录,目录不存在的话,上一级目录存在时自动创建)进入安装路径usr/local/mariadb,执行初始化配置脚本,创建系统自带的数据库和表
    第十一章 LAMP架构(上)_第13张图片
  • ⑦拷贝配置文件、编辑配置文件
    第十一章 LAMP架构(上)_第14张图片
    配置文件基本不用修改;
  • ⑧拷贝、编辑启动脚本
    第十一章 LAMP架构(上)_第15张图片
    定义basedir、datadir、conf
    在这里插入图片描述
    指定conf后,需要在下面的启动命令参数下指定conf(300行左右):
    第十一章 LAMP架构(上)_第16张图片
  • ⑨启动服务
    在这里插入图片描述
    第十一章 LAMP架构(上)_第17张图片

11.7/11.8/11.9 Apache安装

介绍:
apache其实是一个软件基金会组织的名字,当时名字叫apache,现在叫httpd。
apache基金会下面有很多开源软件,包括tomcat等。
安装步骤:

  • ①进入/usr/local/src目录,下载Apache包;
    下载apr包和apr-util包
    概念:这俩包可以理解成一个通用的函数库,主要为上层应用提供支持;
    httpd也是依赖apr和apr-util的,如果没有这两个东西,httpd就无法工作。
    第十一章 LAMP架构(上)_第18张图片
  • ②依次解压这三个包
    第十一章 LAMP架构(上)_第19张图片
  • ③先进入apr和apr-util解压包目录,安装apr以及apr-util两个包
    在这里插入图片描述
    在这里插入图片描述
    进入apache解压包目录:
    –enable-so (DSO)表示支持扩展模块,动态扩展模块,意思是把某些功能以模块的形式展现出来。
    –enable-mods-shared=most 表示以共享的方式安装大多数的模块,安装完后会在modules目录下面看见这些文件。
    第十一章 LAMP架构(上)_第20张图片
  • ④安装完后可以查看下httpd的目录结构以及modules目录下的模块文件
    第十一章 LAMP架构(上)_第21张图片
    查看加载了哪些模块:
    第十一章 LAMP架构(上)_第22张图片
  • ⑤防火墙规则设定及selinux状态
    systemctl status firewalld.service
    firewall-cmd --get-default-zone
    firewall-cmd --zone=public --add-service=http --permanent
    firewall-cmd --reload
    getenforce(selinux需要关闭)
    第十一章 LAMP架构(上)_第23张图片
  • ⑥启动httpd
    /usr/local/apache2/bin/apachectl start
    服务端查看端口
    netstat -nltp | grep :80
    第十一章 LAMP架构(上)_第24张图片
    从浏览器访问:([root@Linux01 httpd-2.4.37]# curl 127.0.0.1
    也行)
    第十一章 LAMP架构(上)_第25张图片
    注:1.前面以AH0058开头的行,并不是错误,仅仅是一个警告。可以在配置文件中定义serverName使其消失。shared的字样 表示该模块为动态共享模块;static字样的表示静态的形式存在。
    vim /usr/local/apache2/conf/httpd.conf ,删除Servername开头的一行。

静态和动态的区别在于,静态模块直接和主程序(/usr/local/apache2/bin/httpd)绑定在一起(看不见);而动态模块是一个个独立存在的文件,在(modules目录下面的.so文件都是)

2 .apr和apr-util包可以像这样单独安装,编译安装apache时指定路径;也可以在下载解压后mv到apache的解压目录下:mv /usr/local/apr /usr/local/src/httpd-2.4.37/srclib 编译apache时,增加–with -included apr选项,会自动编译安装apr的两个包

3.httpd-2.4.37 要用apr和apr-util1.5+版本,低版本不能用
apache源码包安装故障处理:
http://note.youdao.com/noteshare?id=9c224e68da0f9f2fbab330bdf02e152f&sub=5B86E52E4FBC4426BA3B99AA02E5A686

11.10/11.11/11.12 安装PHP5

安装步骤:

  • ①下载包:
    介绍:
    关于php的版本,目前大多企业都会使用5.4以及更高的版本,甚至越来越多的企业使用PHP7版本。
    7和5两个版本还是又很大差异的,7的话有很大的性能提升。
    主流版本5.6和7.1。先看5.6版本的安装: 第十一章 LAMP架构(上)_第26张图片
  • ②下载包、解压包、进入包目录
    第十一章 LAMP架构(上)_第27张图片
    校验、设定功能:
    第十一章 LAMP架构(上)_第28张图片

过程中会出现各种报错,都是缺少各种库,根据报错信息安装,安装完后重新编译。

make
make install //编译安装

  • ③拷贝配置文件到指定路径下(校验时路径已经设置了)
    在这里插入图片描述

11.13 安装PHP7

安装与PHP5类似;
最后可以查看多了一个模块:ls /usr/local/apache2/modules/libphp7.so
拷贝配置文件到指定路径下: cp php.ini-production /usr/local/php7/etc/php.ini
注:5和7都安装时,需要在/usr/local/apache2/conf/httpd.conf中注释掉一个,不然会有影响。

11.14/11.15 Apache和PHP结合

①.配置httpd支持php
httpd主配置文件/usr/local/apache2/conf/httpd.conf
vim /usr/local/apache2/conf/httpd.conf //修改以下4个地方
ServerName–>搜索serverName,把#ServiceName www.example.com:80前面的井号删除
Require all denied–>Require all granted
第十一章 LAMP架构(上)_第29张图片
AddType application/x-httpd-php .php–>增加这一行(.php前面有个空格,要注意)
在这里插入图片描述
DirectoryIndex index.html index.php–>增加 index.php(索引页)
在这里插入图片描述
②修改配置文件后测试语法
/usr/local/apache2/bin/apachectl -t
③启动服务
/usr/local/apache2/bin/apachectl start
④重载配置文件
/usr/local/apache2/bin/apachectl graceful(优雅的重启)

⑤验证
curl localhost
第十一章 LAMP架构(上)_第30张图片
//增加如下内容,验证php解析是否正常
vim /usr/local/apache2.4/htdocs/index.php

在这里插入图片描述
curl localhost/index.php 成功则会打印输出php版本信息
第十一章 LAMP架构(上)_第31张图片

你可能感兴趣的:(Linux新手学习笔记)