lamp

分层机制:

用户--[httpd协议]--apache--[fastCGI协议]--php--[mysql协议]--mysql

分层优势:

Apache php和mysql都是CPU密集型的服务,分层可以缓解CPU压力

同层的还可以做负载均衡

*************Apache和PHP结合的方式*****************

1, 模块化的方式,php编成Apache的模块

此时php是Apache的子功能存在的,所以调用php时不需要启动额外的进程

任何httpd进程内部都已经装载了php模块

apache使用不同的MPM时,php的模块也是不同的

prefork:libphp5.so

worker,event:libphp5-zts.so 

2, CGI接口

3,fastCGI模式下的php,php 5.3.3收进fastCGI

编译php-fpm并启动为服务进程,监听再某个套接字下

服务进程fork几个空闲进程,供别的进程调用


************php-mysql******************

通过客户端程序mysql_connect()连接mysql

$link = mysql_connect('IP','user','mypass')可创建一个PHP和mysql的连接

mysql_close()

************mysql的主辅服务器******************

master:写操作都在主服务器,也提供数据的读操作

slave:读操作

缓存服务器,提高命中率,bypass(旁路)

*************memcached纯缓存服务器*****************

LAMMP

memcached必须前端程序调用才有效

########


************redis******************

工作在内存

可实现持久存储,非关系型数据库(NoSQL)

******************************

动静分离

高可用集群---->脚本脚本加油

******************************

安装顺序:

httpd mysql,最后php

*************安装mysql*****************

mysql-5.5.33-linux2.6-x86_64.tar.gz

1,添加mysql用户和mysql组,用户设为nologin

groupadd -r mysql创建系统组

useradd -g mysql -r -s /sbin/nologin mysql

2,解压到/usr/local

创建解压包的软连接为/usr/local/mysql ,以后升级可以直接重新软连接mysql目录

cd /usr/local

tar -zxf mysql-5.5.33-linux2.6-x86_64.tar.gz

ln -sv mysql-5.5.33-linux2.6-x86_64 mysql 升级mysql时重新生成mysql连接

3,创建逻辑卷管理来存储数据库文件

mkdir data

fdisk /dev/sda (n ;f 8e)

kpartx -af /dev/sda

partx -a /dev/sda 通知内核读取新的分区

cat /proc/partitions

pvcreate /dev/sda2

vgcreate mysqlvg /dev/sda2

lvcreate -L 2G -n mysqllv1 mysqlvg

mount /dev/mysqlvg/mysqlvg /data 

vi /etc/fstab

/dev/mysqlvg/mysqllv1    ext4    /data   defaults,noatime,nodiratime     0 0

cd /data

mkdir mydata计划数据库存储目录

chown -R mysql:mysql mydata将数据库存放目录的所有者改为mysql

4,创建并配置数据库

cd /usr/local/mysql

chown -R root:mysql ./*

scripts/mysql_install_db --datadir=/data/mydata --user=mysql 创建数据库

cp support-files/mysql.server /etc/init.d/mysqld启动数据库服务

chkconfig --add mysqld

cp support-files/my-large.cnf /etc/my.cnf

vi /etc/my.cnf

datadir = /data/mydata

service mysqld start

此时,mysql命令还找不到,需要编辑

vim /etc/profile.d/mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

. !*!*表示上一条命令的参数

5,登录mysql

安全设置

drop user ''@'localhost';删除匿名用户

use mysql;

select host,user,password from user;

update user set password=PASSWORD('mysql2009') where user='root';

flush privileges;

6,mysql的配置文件

家目录下创建.my.cnf

[mysql]

user = root

host = localhost

password = mysql2009

mysql的配置文件读取顺序:/etc/my.cnf-->$MYSQL_BASE/my.cnf 

-->--defaults-extra-file = /path/to/some_my.cnf-->.my.cnf

7,导出库文件

ln -sv /usr/local/mysql/include/ /usr/include/mysql

8,导出头文件

vim /etc/ld.so.conf.d/mysql 

/usr/local/mysql/lib

ldconfig刷新动态库

ldconfig -p |grep mysql查看