• LAMP架构上(一)


    第十七课LAMP架构上(一)

    目录

    一、LAMP架构介绍
    二、MySQL、MariaDB介绍
    三、MySQL安装
    四、MariaDB安装
    五、Apache安装
    六、安装PHP5
    七、安装PHP7
    八、Apache和PHP结合
    九、扩展链接


    一、LAMP架构介绍

    LAMP是Linux、Apache、MySQL、PHP的简称。linux是操作系统、apache提供web服务、mysql用来存储数据、php是一种脚本语言。LAMP组成的各组件都是开源软件,因此可以很方便的获取,使得这些组件广泛使用,并不断完善发展。

    LAMP的工作原理

    浏览器向服务器发送http请求,服务器 (Apache) 接受请求,由于php作为Apache的组件模块也会一起启动,它们具有相同的生命周期。Apache会将一些静态资源保存,然后去调用php处理模块进行php脚本的处理。脚本处理完后,Apache将处理完的信息通过http response的方式发送给浏览器,浏览器解析,渲染等一系列操作后呈现整个网页。

    php和mysql之间是动态请求(如用户的登录操作就会用到)

    而如果只是查看图片就是静态请求,apache可以直接解析。不会用到php和mysql动态请求。(mysql不能存图片等文件)


    二、MySQL、MariaDB介绍

    MySQL是一个关系型数据库,由mysql ab公司开发,mysql在2008年被sun公司收购(10亿美金),2009年sun公司被oracle公司收购(74亿美金),Mysql最终归入Oracle公司。

    MySQL官网https://www.mysql.com。

    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

    Mysql的版本介绍

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


    三、MySQL安装

    Myql主要有三种安装方式

    1.yum安装,缺少定制功能,安装简单。

    2.二进制免编译安装包安装,有足够的可定制性,性能基本也不会损失。安装速度也比较快。推荐使用。

    3.源代码编译安装。可以按需定制,可以提供最高的性能,编译耗费的时间长,安装速度慢。

    这里以源代码包编译安装为例

    1.环境:
    CentOS Linux release 7.4.1708 (Core)
    mysql-5.6.36.tar.gz

    2.依赖包安装
    yum -y install gcc gcc-c++ ncurses-devel perl cmake autoconf

    3.创建mysql的数据库存放目录
    mkdir -p /data/mysql

    4、 创建mysql用户及用户组
    useradd -r mysql -s /sbin/nologin
    id mysql

    5.设置mysql的数据库存放目录权限
    chown -R mysql:mysql /data/mysql

    6.编译安装MySQL
    cd /usr/local/src
    //下载,地址仅供参考。
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.36.tar.gz -O /usr/local/src
    tar -zxvf mysql-5.6.36.tar.gz
    cd mysql-5.6.36
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 - DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DMYSQL_DATADIR=/data/mysql -DMYSQL_TCP_PORT=3306 -DENABLE_DOWNLOADS=1
    echo $?
    make && make install
    echo $?

    7.配置MySQL
    7.1 初始化配置
    cd /usr/local/mysql
    进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
    scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql

    7.2 设置配置文件
    \cp ./support-files/my-default.cnf /etc/my.cnf
    修改配置文件
    vim /etc/my.cnf 修改如下如下内容:
    basedir = /usr/local/mysql
    datadir = /data/mysql

    7.3启动MySQL
    添加服务,拷贝服务脚本到init.d目录,并设置开机启动
    cp support-files/mysql.server /etc/init.d/mysqld
    chkconfig mysqld on
    service mysqld start --启动MySQL
    ss -nat |grep 3306
    LISTEN 0 80 :::3306 ::

    8、设置PATH(否则不能直接调用mysql)
    修改/etc/profile文件,在文件末尾添加
    export PATH=/usr/local/mysql/bin:$PATH

    关闭文件,运行下面的命令,让配置立即生效
    source /etc/profile

    Error
    FATAL ERROR: please install the following Perl modules before executing scripts/mysql_install_db:
    Data::Dumper
    解决:yum -y install autoconf


    四、MariaDB安装

    以源代码包安装为例

    1.环境:
    CentOS Linux release 7.4.1708 (Core)
    mariadb-5.5.57.tar.gz

    2.依赖包安装
    yum -y install gcc gcc-c++ ncurses-devel perl cmake autoconf

    3.创建mariadb的数据库存放目录
    mkdir -p /data/mariadb

    4、 创建mariadb用户及用户组
    useradd -r mariadb -s /sbin/nologin
    id mariadb

    5.设置mariadb的数据库存放目录权限
    chown -R mariadb:mariadb /data/mariadb

    6.编译安装Mmariadb
    cd /usr/local/src
    //下载,地址仅供参考。
    wget https://mirrors.shu.edu.cn/mariadb//mariadb-5.5.60/source/mariadb-5.5.60.tar.gz -O /usrlocal/src
    tar -zxvf mariadb-5.5.60
    cd mariadb-5.5.60
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mariadb
    -DSYSCONFDIR=/etc
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    -DWITH_EXTRA_CHARSETS=all
    echo $?
    make && make install
    echo $?

    7.配置mariadb

    7.1 初始化配置
    cd /usr/local/mariadb
    进入安装路径,执行初始化配置脚本,创建系统自带的数据库和表
    scripts/mysql_install_db --basedir=/usr/local/mariadb --datadir=/data/mariadb --user=mariadb

    7.2 设置配置文件
    \cp ./support-files/my-medium.cnf /etc/my.cnf
    cp support-files/mysql.server /etc/init.d/mariadbd
    cd /etc/init.d
    chkconfig mariadbd on
    修改配置文件
    vim /etc/my.cnf 修改如下内容:
    basedir = /usr/local/mariadb
    datadir = /data/mariadb
    //启动mariadb
    /etc/init.d/mariadbd start

    8.设置mariadb环境变量
    echo "export PATH=$PATH:/usr/local/mariadb/bin">>/etc/profile

    9.安全初始化mysql及设定
    /usr/local/mysql/bin/mysql_secure_installation

    10.登录测试
    mysql -uroot -p


    五、Apache安装

    1.环境
    CentOS Linux release 7.4.1708 (Core)
    httpd-2.4.33
    apr-1.6.3
    apr-util-1.6.1

    2.下载软件包
    wget https://mirrors.cnnic.cn/apache/apr/apr-1.6.3.tar.gz -O /usr/local/src/apr-1.6.3.tar.gz
    wget https://mirrors.cnnic.cn/apache/apr/apr-util-1.6.1.tar.gz -O /usr/local/src/apr-util-1.6.1.tar.gz
    wget https://mirrors.cnnic.cn/apache/httpd/httpd-2.4.33.tar.gz -O /usr/local/src/httpd-2.4.33.tar.gz

    3.依赖包
    yum -y install libtool libtool-ltdl-devel.x86_64 expat-devel pcre.x86_64 pcre-devel.x86_64
    如无gcc,可将开发工具组装上
    rpm -q gcc
    yum group -y install "Development Tools"

    4.编译安装

    4.1 解压软件包
    cd /usr/local/src/
    tar zxvf httpd-2.4.33.tar.gz
    tar zxvf apr-1.6.3.tar.gz
    tar zxvf apr-util-1.6.1.tar.gz

    4.2 编译安装apr
    cd apr-1.6.3/
    ./configure --prefix=/usr/local/apr
    echo $?
    make && make install
    echo $?

    4.3编译安装apr-util
    cd ../apr-util-1.6.1/
    ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
    echo $?
    make && make install
    echo $?

    4.4编译安装httpd
    cd ../httpd-2.4.33/
    ./configure --prefix=/usr/local/apache2.4 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --enable-so --enable-mods-shared=most
    echo $?
    make && make install
    echo $?

    4.5防火墙规则设定及selinux状态
    systemctl status firewalld.service
    firewall-cmd --get-default-zone
    firewall-cmd --zone=public --add-service=http --permanent
    firewall-cmd --reload

    getenforce

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

    4.7测试
    服务端查看端口
    netstat -nltup | grep :80

    从宿主机访问

    [root@lanquark httpd-2.4.33]# curl 127.0.0.1

    It works!

    Error 1
    xml/apr_xml.c:35:19: fatal error: expat.h: No such file or directory

    include <expat.h>

    解决:yum -y install expat-devel

    Error 2
    configure: error: pcre-config for libpcre not found. PCRE is required and available from http://pcre.org/
    解决:yum -y install pcre.x86_64 pcre-devel.x86_64

    Error 3
    collect2: error: ld returned 1 exit status
    make[2]: *** [htpasswd] Error 1
    解决:yum -y install libtool-ltdl-devel.x86_64
    注意:如果已经编译过了apr-util,需要重新编译

    Error 4
    configure: error: no acceptable C compiler found in $PATH
    解决:yum group -y install "Development Tools"

    //bin/apachectl -t测试配置语法

    //重载配置
    [root@localhost apache2.4]# bin/apachectl --gracefully
    httpd (pid 50431) already running


    六、安装PHP5

    1.环境

    CentOS Linux release 7.4.1708 (Core)
    php5.5.38

    2.依赖安装

    yum -y install libxml2-devel libpng-devel openssl openssl-devel bzip2 bzip2-devel libjpeg-devel freetype-devel libmcrypt.x86_64 libmcrypt-devel.x86_64

    3.编译安装php

    cd /usr/local/src/
    wget http://cn2.php.net/distributions/php-5.6.30.tar.gz
    tar zxvf 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
    make && make install
    echo $?
    cp php.ini-production /usr/local/php/etc/php.ini

    Error
    Cannot find OpenSSL's <evp.h>
    yum install openssl openssl-devel

    configure: error: Please reinstall the BZip2 distribution
    yum install bzip2 bzip2-devel

    configure: error: jpeglib.h not found.
    yum -y install libjpeg-devel

    configure: error: freetype-config not found.
    yum install freetype-devel

    configure: error: mcrypt.h not found. Please reinstall libmcrypt.
    libmcrypt.x86_64 libmcrypt-devel.x86_64


    七、安装PHP7

    1.环境

    CentOS Linux release 7.4.1708 (Core)
    php-7.2.7.tar.gz

    2.依赖安装

    yum -y install libxml2-devel libpng-devel openssl openssl-devel bzip2 bzip2-devel libjpeg-devel freetype-devel libmcrypt.x86_64 libmcrypt-devel.x86_64 pcre pcre-devel
    libxslt libxslt-devel

    3.编译安装php

    cd /usr/local/src/
    wget http://php.net/get/php-7.2.7.tar.gz/from/a/mirror
    tar php-7.2.7.tar.gz
    cd php-7.2.7
    ./configure --prefix=/usr/local/php --with-curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli --with-openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-jpeg-dir --with-xmlrpc --with-xsl --with-zlib --with-bz2 --with-mhash --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-sysvshm --enable-xml --enable-zip
    make && make install
    echo $?
    cp php.ini-development /usr/local/php/lib/php.ini
    cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
    cp sapi/fpm/php-fpm /usr/local/bin


    八、Apache和PHP结合

    1.配置httpd支持php
    httpd主配置文件/usr/local/apache2.4/conf/httpd.conf
    vim /usr/local/apache2.4/conf/httpd.conf //修改以下4个地方
    ServerName-->我改的localhost
    Require all denied-->Require all granted
    AddType application/x-httpd-php .php-->增加这一行
    DirectoryIndex index.html index.php-->增加 index.php
    //修改配置文件后测试语法
    /usr/local/apache2.4/bin/apachectl -t
    //启动服务
    /usr/local/apache2.4/bin/apachectl start
    //重载配置文件
    /usr/local/apache2.4/bin/apachectl graceful

    2.验证

    curl localhost

    //增加如下内容,验证php解析是否正常

     vim /usr/local/apache2.4/htodcs/index.php   
    <?php  
    phpinfo;  
    ?>
    curl localhost/index.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

  • 相关阅读:
    Linux下安装vmtools的语句
    [WP]BugkuCtf
    Linux文件属性及权限
    学习pwn的前提工作及部分解决方案
    windows环境下MySQL mysql-5.7.17-winx64 (社区服务版,community server)安装教程
    ubuntu14.04 LTS 更新国内网易163源
    session cookie
    java collection map
    重温 总结 maven几个重要概念
    java通信
  • 原文地址:https://www.cnblogs.com/minn/p/9232579.html
Copyright © 2020-2023  润新知