# LAMP架构 #
## 11.1 - 11.2 LAMP架构介绍 ##
1. LAMP指的是Linux Apache MySQL Php
2. Apache通常指的是httpd,需要与php装在一起。而MySQL如果服务量不大,也装一起跑没问题。也可以分开装用网络连接。
2. 由于移动网络的突飞猛进。现在Pthoy java go等语言火热,PHP作为网站语言需求下降
3. LAMP的结构为:
    用户<————>Apache php模块<————>MySQL 多用于动态服务,比如登录,发帖等
4. MySQL存储相关数据,不包含图片,视频等。
5. MariaDB之于MySQL。类似Centos之于RedHat



## 11.3 - 11.5 MySQL安装与启动 ##

### 预编译安装 ###
二进制免编译安装法:
1. 已经在Linux上编译过。省去编译配置。
2. 可以选择目录
3. 适合一般业务需求,工作更省心


#### 预装
1. yum install -y perl-Data-Dumper
2. yum install -y libaio

#### 相关技能get
 
1. yum list | grep -i perl | grep -i dumper 根据信息查询的一种姿势![](http://oshv1dmrx.bkt.clouddn.com/2017-07-20_134515.png)
2. echo $? 查询上调命令成功与否 0为成功
3. wget http://xxxx 是linux的迅雷,将文件下载至当前目录
4. -uname 查询系统位数版本
5. rpm -qf /etc/my.cnf 查询目录哪里来
6. netstat -lntp 查看服务端口
7. ps aux | grep mysql 查看mysql相关进程


```
下载-解压-转移
cd /usr/local/src
wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
tar zxvf mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.35-linux-glibc2.5-x86_64 /usr/local/mysql 目录转移并改名

准备-安装-放置并编辑配置文件和启动脚本
cd /usr/local/mysql
useradd mysql
mkdir /data/
./scripts/mysql_install_db --user=mysql --datadir=/data/mysql 
根据上两行准备进行安装(mysql是data的下级目录,可以自动创建,但是上级data目录需要手动)(完事echo $?检查是否成功)
vim /etc/my.cnf 设置配置文件如下图
```
![](http://oshv1dmrx.bkt.clouddn.com/2017-07-20_140438.png)

```
如果之前没有my.cnf,则可以复制配置文件模板过来改名再设置
[cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf]]



cp support-files/mysql.server /etc/init.d/mysqld 复制服务文件(启动脚本)并改名到chk的地盘
vim /etc/init.d/mysqld 设置,如下图
```
![](http://oshv1dmrx.bkt.clouddn.com/2017-07-20_142738.png)
当通过chkconfig开启服务时,该脚本通过chk规则告诉服务器,配置、用户、仓库等信息。也可以通过手动指定启动该服务,见下
```
开服-停服
chkconfig --add mysqld
chkconfig --list
/etc/init.d/mysqld start
service mysqld stop 停止服务

另外一个开服的方法,适合没有chk服务启动脚本的情况
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql & 
同样可以开启mysqld服务,手动指定配置文件、用户、仓库
killall mysqld 如果非chk常规服务开启方式,则可以用killall来关闭服务,会等进程写完再关。不推荐kill -9
  
```

![](http://oshv1dmrx.bkt.clouddn.com/LAMP-1.png)