0507第十七次课:LAMP

LAMP(上)

1、LAMP架构介绍

  • 什么是LAMPphp

    LAMP就是Linux+Apache(httpd)+MySQL+PHP ,简称LAMP。mysql

    Linux:操做系统,如centos、redhat、Ubuntu。linux

    Apache:也叫httpd,web服务软件web

    Mysql:关系型数据库正则表达式

    PHP:脚本语言,由 C语言 开发,一般用于作网站sql

    三个角色能够在一台机器上,也能够分开,可是apache要和php在一块儿。数据库

  • httpd、PHP、MySQL工做原理apache

2、MySQL、MariaDB介绍

  • MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿刀),2009年sun公司被oracle公司收购(74亿刀)vim

  • MySQL官网https://www.mysql.com 最新版本5.7GA/8.0DMRwindows

  • MySQL5.6变化比较大,5.7性能上有很大提高

  • Mariadb为MySQL的一个分支,官网https://mariadb.com/ 最新版本10.2

  • MariaDB主要由SkySQL公司(现改名为MariaDB公司)维护,SkySQL公司由MySQL原做者带领大部分原班人马创立.

  • Mariadb5.5版本对应MySQL的5.5,10.0对应MySQL5.6

  • Community 社区版本,Enterprise 企业版,GA(Generally Available)指通用版本,在生产环境中用的,DMR(Development Milestone Release)开发里程碑发布版,RC(Release Candidate)发行候选版本,Beta开放测试版本,Alpha内部测试版本

3、Mysql安装

  • Mysql的几种安装方式:rpm、源码、二进制免编译。若是没有特殊要求通常使用进制免编译安装

  • 源码安装:

  1. 下载mysql5.6安装包

    cd /usr/local/src

    wget http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz

  2. 解压安装包

    tar -xzvf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz

    mv mysql-5.6.42-linux-glibc2.12-x86_64 /usr/local/mysq

    cd /usr/local/mysql

  3. 添加用户

    useradd mysql

  4. 建立数据目录

    mkdir /data/

  5. 初始化库

    ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

    这一步可能缺包,若是报错请按提示安装如下依赖包:

    yum install perl-Data-Dumper.x86_64

    yum install libaio

    初始化完成提示:

  6. 生成并修改配置文件

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

    修改内容:

    basedir=/usr/local/mysql

    datadir=/data/mysql

    socket=/tmp/mysql.sock

    symbolic-links=0

  7. mysql启动

    生成启动脚本,并修改

    cp support-files/mysql.server /etc/init.d/mysqld

    vi /etc/init.d/mysqld

    修改内容:

    basedir=/usr/local/mysql

    datadir=/data/mysql

    启动mysql:

    /etc/init.d/mysqld start 或者:service mysqld start

    设置开机启动:

    chkconfig --add mysqld

    ln -s /usr/local/mysql/bin/mysql /usr/bin

    使用mysql命令启动:

    /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql --datadir=/data/mysql/ &

    –defaults-file=/etc/my.cnf :指配置文件

    –user=mysql : 指定用户

    –datadir=/data/mysql/ :指定数据存储位置`

  8. mysql经常使用的两种引擎

    nnodbnnodb引擎,比较大

    myisam引擎存储空间、存储量都比较小

  9. kill和killall区别

    mysql数据读写很是快,有可能有些数据还没从内存中存到磁盘中,这时候kill掉会致使数据丢失甚至表损坏。而使用kiallall命令,则会先中止当前的读写操做,而后把等内存数据写到磁盘中后才把进程杀死。

4、Mariadb

  • mariadb安装方式基本和mysql相似
  1. 下载安装包

    因为外网下载地址没法下载,这里使用清华源进行下载

    wget https://mirrors.tuna.tsinghua.edu.cn/mariadb//mariadb-10.2.23/bintar-linux-glibc_214-x86_64/mariadb-10.2.23-linux-glibc_214-x86_64.tar.gz

  2. 解压安装包

    tar -xzvf mariadb-10.2.23-linux-glibc_214-x86_64.tar.gz

    mv mariadb-10.2.23-linux-glibc_214-x86_64 /usr/local/mariadb

    cd /usr/local/mariadb/

  3. 修改配置文件

    因为已经安装mysql,因此复制s配置文件到 /usr/local/mariadb/目录下

    cp support-files/my-small.cnf /usr/local/mariadb/my.cnf

    vim /usr/local/mariadb/my.cnf

    修改内容:

    datadir = /data/mariadb

  4. mariadb启动

    设置启动脚本

    cp support-files/mysql.server /etc/init.d/mariadb

    修改内容:

    basedir=/usr/local/mariadb

    datadir=/data/mariadb

    添加如下内容:

    conf=/usr/local/mariadb/my.cnf

    在$bindir/mysqld_safe这一行添加如下内容:

    --defaults-file="$conf"

  5. 初始化脚本

    ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mariadb/ --datadir=/data/mariadb

  6. 启动

    service mariadb start

5、Apche安装

  • Apache是一个基金会的名字,httpd才是咱们要安装的软件包,早期它的名字就叫apache。由于httpd使用的人不少,很流行,因此当时就以基金会的名字来命名的web服务软件 ,在早期的时候,名字就叫作Apache,而不是叫httpd,后来在http的2.0版本开始,就更名叫httpd,可是不少人仍是习惯叫作Apache。

    Apache如今主流版本是 2.4版本。

  1. 下载安装包

    下载地址

    2.4源码包: https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.38.tar.gz

    apr: https://mirrors.cnnic.cn/apache/apr/apr-1.6.5.tar.gz

    apr-util: http://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz

    apr和apr-util是一个通用的函数库,它让httpd能够不关心底层的操做系统平台,能够很方便地移植(从linux移植到windows)

  2. 解压安装包

    tar -xvf httpd-2.4.38.tar.gz

    tar -xvf apr-1.6.5.tar.gz

    tar -xvf apr-util-1.6.1.tar.gz

  3. 安装apr

    cd apr-1.6.5/

    ./configure --prefix=/usr/local/apr

    make && make install

    检查是否成功:

    echo $?

  4. apr-util

    cd apr-util-1.6.1

    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

    make && make install

    ps:若是报fatal error: expat.h: No such file or directory错误:

    yum install expat-devel

  5. 安装httpd

    cd httpd-2.4.38

    ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most

    make && make install

    若是出现如下错误:

    /usr/local/apr-util/lib/libaprutil- 1.so: undefined reference to `XML_SetElementHandler'

    collect2: error: ld returned 1 exit status

    缘由:该错误是由于缺乏了xml相关的库,致使reference无效

    解决方法:

    yum install -y libxml2-devel

    删除apr-util目录而且从新编译安装

    若是报pcre错误:

    pcre是正则表达式的驱动库,支持正则表达式

    yum -y install pcre-devel

    从新编译安装

  6. 安装完成后查看安装文件

    cd /usr/local/apache2.4/

    主要了解目录:bin 、conf 、htdocs

    bin:httpd的可执行文件,如启动命令。它是httpd的核心目录

    conf:配置文件目录

    htdocs:存放的是访问页面,httpd启动后访问的页面就在这个目录下

    man目录:存放的是帮助文档

    modules:扩展模块目录。httpd全部的模块都存放在这个目录下,每一个模块都表明的一个功能。

  7. 启动

    /usr/local/apache2.4/bin/httpd -M //查看加载的模块 /usr/local/apache2.4/bin/apachectl start //启动

6、PHP5安装

  • php介绍

    PHP官网:www.php.net

    目前主流版本为5.6或7.1版本

    如今大部分企业都使用的是PHP5版本,PHP7是近几年才出的新版本,改动比较大,有些老的程序在PHP7中使用会出现问题,因此不少企业都还在使用PHP5。PHP7性能提高比较大,若果程序能够兼容PHP7那就使用PHP7

    把PHP放在最后安装,是由于先要安装好Apache,安装好以后指定apxs2,不然没法自动安装它的模块

  1. 下载安装包

    cd /usr/local/src

    wget http://cn2.php.net/distributions/php-5.6.30.tar.gz

  2. 解压编译

    tar -xvf php-5.6.30.tar.gz

    cd php-5.6.30

    ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

  • 安装可能缺乏的依赖包:

    yum install openssl openssl-devel

    yum install bzip2-devel.x86_64

    yum install libpng-devel

    yum -y install libjpeg-devel

    yum install freetype-devel

    yum install -y epel-release

    yum install -y libmcrypt-devel

    yum -y install ncurses-devel

  • 编译完成

  • 编译参数解释

    --prefix=/usr/local/php :安装目录

    --with-apxs2=/usr/local/apache2.4/bin/apxs :指定apxs,它是apache的一个工具,它能够自动的帮你去把扩展的模块放到Apache中的modules目录里,而且在它的配置文件里加上一行load module。

    --with-config-file-path=/usr/local/php/etc :指定配置文件路径

    --with-mysql=/usr/local/mysql :指定mysql的路径

    --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config : mysql的驱动

    --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif : 通用参数,没有特殊要求就默认便可

  1. 安装

    make && make install

  2. php模块

    /usr/local/php/bin/php -m

7、PHP7安装

  1. 下载php7

    wget http://cn2.php.net/distributions/php-7.3.0.tar.gz

  2. 解压编译

    tar -xvf php-7.3.0.tar.gz

    cd php-7.3.0

    ./configure --prefix=/usr/local/php7 --with-apxs2=/usr/local/apache2.4/bin/apxs --with-config-file-path=/usr/local/php7/etc --with-pdo-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-bz2 --with-openssl --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-mbstring --enable-sockets --enable-exif

  3. 安装

make && make install

8、php和apache结合

  1. 修改apache配置文件

    vim /usr/local/apache2.4/conf/httpd.conf

    修改内容:

    去掉ServerName注释

  2. 启动apache

    /usr/local/apache2.4/bin/apachectl -t 检查配置文件

    /usr/local/apache2.4/bin/apachectl start 启动

  3. 测试是否能够访问

  4. 加载php5

    修改httpd.conf

    添加“AddType application/x-httpd-php .php”

  5. 测试

    /usr/local/apache2.4/bin/apachectl graceful //重载配置文件

9、直播课

  • mysql5.7版本和以前版本初始化的不一样: ./bin/mysqld --initialize --user=mysql --datadir=/data/mysql

  • 版本含义介绍

  • mysql5.7修改密码:

    update user set authentication_string=password(‘xxx’) where user=‘root’;

  • mariadb官方yum源安装

    wget -O - https://downloads.mariadb.com/MariaDB/mariadb_repo_setup |sh

    yum list |grep MariaDB

  • 总结安装软件包的几种方式:

    yum/rpm、编译、二进制

相关文章
相关标签/搜索