LAMP/LNMP安装与配置

作者: 廖马儿 | 来源:发表于2018-01-15 15:28 被阅读24次

    教程:
    http://www.imooc.com/learn/703

    什么是LAMP?

    LAMP = Linux + Apache + MySQL + PHP
    

    为什么使用LAMP?
    涵盖整个Web开发流程。
    流行( 全球70%网站在使用),免费(LAMP组成部分都是免费的),开源,轻量(最新Apache只有7M大小)。

    Linux:
    开源的类Unix操作系统,可以免费使用和自由传播。

    CentOS,RedHat,Ubantu,红旗等都是其发行版本。

    Linux和Windows:

    质量的不同。
    用户假设,软件哲学。

    Linux优势:完全免费,稳定高效

    PHP:

    MySQL:
    开源,免费,高性能的数据库。

    Apache:
    Web服务器软件。
    监听端口,接受请求,解析HTTP协议,转发给PHP。
    没有apache也就没有我们的网站开发。

    Nginx:
    与apache一样,都是服务器软件。
    Nginx比apache:前景好,配置轻松,性能更加优秀。
    apache是采用的轮询机制,nginx是一种高效的监听方式。

    如何编译安装软件?

    编译安装是在Linux安装软件的重要方式之一。
    在linux中安装软件有两种主要的方式:
    1)编译安装
    对软件的源代码进行编译安装。
    2)源安装
    比如在CentOS中使用yum安装。

    编译安装:
    1)编译前的准备工作:
    在命令行敲:

    ./configure
    

    编译为二进制文件:

    make
    

    安装:

    make install
    

    实战环节

    我们使用Oracle公司的VirtualBox这个软件做一个虚拟机。
    网站:virtualbox.org

    创建centos虚拟机,启动。(https://www.imooc.com/video/12897
    启动的时候需要下载系统镜像。

    安装好重启之后,配置网卡:


    图片.png

    注意还要添加DNS和网关:

    DNS1=8.8.8.8
    GATEWAY=10.10.10.1  # 这些都是和自己的内网一个网段的才行,包括上面的10.10.10.150。
    

    http://www.jb51.net/os/RedHat/189963.html

    重启网卡:

    systemctl restart network.service
    

    使防火墙运行22端口(ssh)连接:

    firewall-cmd --zone=public --add-port=22/tcp --permanent
    systemctl restart firewalld.service
    

    在VirtualBox上面的网卡需要对虚拟机选择桥接网卡(设置->网络):


    图片.png

    将其在VirtualBox中重新启动。之后,我们就可以重新登录了。

    LAMP之安装PHP:

    我们可以在我们自己的mac上面使用ssh去连接虚拟机了。

    # 先安装vim和wget
    yum install -y vim  wget  # 安装vim可以安装它以及它的一系列依赖
    

    我们选择安装7.0.26版本的PHP:
    http://php.net/downloads.php#v7.0.26

    php-7.0.26.tar.gz 点击,进入,选择:Hong Kong

    邮件拷贝连接(http://hk1.php.net/get/php-7.0.26.tar.gz/from/this/mirror):

    注意:
    我们拷贝的地址,是(http://hk1.php.net/get/php-7.0.26.tar.gz.asc/from/this/mirror
    我们要删除掉.asc:

    http://hk1.php.net/get/php-7.0.26.tar.gz/from/this/mirror
    

    然后:

    wget  http://hk1.php.net/get/php-7.0.26.tar.gz/from/this/mirror
    

    我们解压.tar.gz文件:

    tar -zxvf mirror
    

    我们使用ll,可以看到解压之后的文件:

    -rw-------.  1 root        root            1454 Dec  4 14:59 anaconda-ks.cfg
    -rw-r--r--.  1 root        root        18824456 Nov 21 20:20 mirror.1
    drwxr-xr-x. 15 liaodalin01 liaodalin01     4096 Nov 21 19:57 php-7.0.26
    

    php解压以后有一个问题,就是我们单纯的安装PHP,不能和nginx一起工作,只能和apache一起工作。
    如果想和nginx一起工作作为webserver,我们需要安装一个软件(也是php的一个组件),叫作:FPM。
    需要我们配置./configure的时候添加 --enable-fpm用来激活FPM。

    我们使用:

    yum install -y gcc gcc++ libxml2-devel
    

    我们来编译安装PHP:

    1)configure。进入解压后的php-7.0.26根目录,先configure

    # 指定安装路径(一般来说是装在/usr/local/下)
    ./configure --prefix=/usr/local/php7/  --enable-fpm   
    

    2)make编译(会比较慢,编译的时间长)

    make
    

    3)安装

    make install
    

    安装完成之后,我们在家目录下去测试:

    cd ~
    vim test.php
    <?php
    phpinfo();
    

    然后执行:

    /usr/local/php7/bin/php test.php
    

    我们可以看到php的info的打印结果。

    了解:
    php-fpm是什么?
    fastcgi的管理器,只能适用于php.
    fastcgi是与语言无关的开放扩展,主要讲cgi的解释器进程保持在内存中,借此以获取较高的性能。
    fastcgi一直执行着,不过每一次都要花时间去fork一个子进程。
    cgi,全称是公共网关接口。是一个协议。

    再顺序理一下:
    CGI:是一个协议,能够保证webserver传递过来的数据是标准格式,方便CGI程序的编写者。
    eg:我们访问index.php的时候,这个时候,nginx会根据配置文件,知道这个不是一个静态文件二直接返回,需要执行php解释器来处理,nginx会发送数据给解释器本次请求的url,以及请求参数等。总之,nginx给php传递什么数据都是由cgi这个协议来决定的。

    访问index.php,nginx要启动cgi来处理,而我们的php解释器就是一个cgi程序,现在再来看下fastcgi。
    cgi在处理程序的时候会fork一个子进程, 处理完成后释放,下次来请求的时候,再fork,再释放。这样的方式大家会觉得很笨,效率不高,所以fastcgi诞生了。
    fastcgi是程序主动启动一个进程,这个进程有n个子进程,然后子进程都会常驻在内存中,避免了fork和释放。当然,fastcgi在忙的时候也会自己启动新的子进程来帮助,在比较闲的时候又会将这些子进程销毁,保证资源不浪费。
    PHP-FPM(FastCGI Process Manager) 是实现了fastcgi这个协议的程序,之前是三方的,现在被PHP官网买了。(协议是用于被实现,自己只有标准,没有具体的实现)。所以现在我们就可以直接在官方下载和使用了。


    安装mysql

    我们进入:

    dev.mysql.org
    

    DOWNLOADS - > Community -> MySQL Community Server -> Generally Available(GA) releales 下选择Source Code, 和Generic Linux (Architecture Independent), 通用的linux架构(Compressed TAR Archive)。

    我们选择下载,我们是下载到虚拟机上,我们右键,拷贝链接。在:No thanks, just start my download那里:
    https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz

    我们在虚拟机中下载:

    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20.tar.gz
    

    使用tar解压:

    tar -zxvf mysql
    

    我们安装一些依赖包:

    yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost boost-doc boost-devel
    

    我们进入到解压后的mysql根目录,然后cmake 编译:

    注意:cmake是一个跨平台的安装工具。

    最新版的mysql都使用cmake命令来进行安装,cmake的命令参数较多:

    图片.png
    cmake \
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
    -DMYSQL_DATADIR=/mydata/mysql/data  \
    -DSYSCONFDIR=/etc  \
    -DMYSQL_USER=mysql  \
    -DWITH_MYISAM_STORAGE_ENGINE=1  \
    -DWITH_INNOBASE_STORAGE_ENGINE=1  \
    -DWITH_ARCHIVE_STORAGE_ENGINE=1  \
    -DWITH_MEMORY_STORAGE_ENGINE=1  \
    -DWITH_READLINE=1  \
    -DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock  \
    -DMYSQL_TCP_PORT=3306  \
    -DENABLED_LOCAL_INFILE=1   \
    -DENABLED_DOWNLOADS=1  \
    -DWITH_PARTITION_STORAGE_ENGINE=1  \
    -DEXTRA_CHARSET=all  \
    -DDEFAULT_CHARSET=utf8  \
    -DDEFAULT_COLLATION=utf8_general_ci  \
    -DWITH_DEBUG=0  \
    -DMYSQL_MAINTAINER_MODE=0  \
    -DWITH_SSL:STRING=bundled  \
    -DWITH_ZLIB:STRING=bundled
    

    注意:
    如果有错的话重新下载这个版本安装:( wget http://nchc.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz

    安装:

    make install  
    

    我们就安装好了mysql,使用:

    mysqld 
    

    启动Mysql。

    启动之后,我们输入:mysql就可以进入mysql了。


    安装Apache

    打开Apache官网:httpd.apache.org

    Download -> Apache HTTP Server 2.4.29 (httpd): 2.4.29 is the latest available version 2017-10-05

    图片.png

    我们点击右键,拷贝链接(http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.29.tar.gz)。

    在命令行,下载到虚拟机用户根目录:

    wget http://mirror.bit.edu.cn/apache//httpd/httpd-2.4.29.tar.gz
    

    使用tar解压:

    tar -zxvf httpd
    

    cd进入解压apache解压目录.

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

    就在进行编译前的准备工作。
    如果有错误说APR没有被发现,我们就安装APR。

    我们在用户根目录下载APR以及APR-Util:

    wget http://archive.apache.org/dist/apr/apr-1.4.5.tar.gz
    
    wget http://archive.apache.org/dist/apr/apr-util-1.3.12.tar.gz
    

    并解压:

    tar -zxvf apr
    tar -zxvf apr-util
    

    我们对apr和apr-util重命名。

    mv apr-1.4.5 apr
    mv apr-util-1.3.12 apr-util
    

    我们要把这两个文件夹(apr,apr-util)丢到httpd-2.4.20这个目录中。

    mv apr apr-utl httpd-2.4.20/srclib/
    

    处理好apr和apr-util之后,我们下载一个依赖pcre(正则):

    wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz
    

    下载好安装它(下载完之后它被命名为download文件夹),它是最后一个依赖。

    mv download pcre.tar.bz2
    tar -jxvf  pcre.tar.bz2
    

    在解压完成后,进入解压目录:

    cd pcre-8.37/
    

    配置:

    ./configure --prefix=/usr/local/pcre-8.37
    

    然后编译:

    make
    

    安装:

    make install
    

    相关文章

      网友评论

        本文标题:LAMP/LNMP安装与配置

        本文链接:https://www.haomeiwen.com/subject/chcxixtx.html