美文网首页
阿里云安装 LA/NMP分布式环境详细步骤

阿里云安装 LA/NMP分布式环境详细步骤

作者: 1367bfee4461 | 来源:发表于2018-04-23 02:08 被阅读0次

    理论

    什么是LAMP    

    LAMP = Linux + Apache + MySQL +PHP

    为什么使用LAMP

    涵盖了整个web的开发流程

    流行、免费、开源、轻量(新版的Apache只有7M)

    Linux

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

    Centos、Ubuntu、Redhat、红旗都是其他发行版本

    Linux与Windows

    Linux与Windows有质的不同

    用户假设(面向的群体,Linux的用户明白自己做什么 想要什么 并会为此行为负责,Windows则恰恰相反,通俗来说就是高端与小白用户)、软件哲学

    Linux的优势是完全免费、稳定高效(windows不能长时间不关机使用、软件卸载不干净等...)

    PHP

    不概述

    MySQL

    开源、免费、高性能的关系型数据库

    Apache

    apache是web服务器软件

    运行大致流程:首先客户端通过浏览器访问一个IP 》 这个IP上肯定启动了服务器软件,且(apache)监听了某一个端口 》数据顺着端口进入了apache 》 apache拿到数据通过http/https协议等进行解析 整理数据,转发给PHP进行业务的处理 》 PHP业务处理完成之后再返回给apache 》 apache最后再返回给客户端 》客户端从浏览器展示给了用户

    Nginx

    Nginx与Apache一样,都是web服务器软件

    目前最受欢迎的服务器软件

    nginx与apache相比:Nginx拥有更好的前景、配置轻松、性能优越(对于性能的优越下面大致阐述)

            性能优越:Apache采用的是select轮训机制,所谓的轮训打个比方说就是它可能监听了1000个链接,其中不论哪一个链接发生了变化或者新的动态,它会采用for循环一样的东西,进行循环来看,并且这个循环是个死循环。但是对于Nginx来说,它采用的是epoll,epoll是一个非常高效的事件监听机制,它不会主动的轮训,而是采用了监听 哪一个链接发生了变化,然后第一时间感知 然后将链接进行处理。

    编译安装 及 如何进行编译安装(主要有两种方式)

    编译安装是在Linux中安装软件的主要方式之一 (将下载的软件源代码进行编译 安装。方式二 源安装 (centos中使用的yum、debian系列中的apt-get等)

    一、编译前的准备工作   ./configure

    二、编译:make    (将源码编译成二进制文件)

    三、安装:make install 

    实战

    本节是阐述在云服务器安装la/nmp环境 并没有从底层搭建开始,如果是虚拟机用户 后期会出相应教程

    安装PHP

    第一步:访问 php 官网,并且点击导航栏下载(download),在众多PHP版本中选择版本(我选择了 php-7.1.16)

    第二步:点击php-7.1.16找到镜像下载站点(我选择了香港 'hk1.php.net'),右键 复制该下载链接

    第三步:在远程命令窗口中输入以下命令 (其中http://hk1.php.net/get/php-7.1.16.tar.gz/from/this/mirror就是我们官网复制的链接)

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

    以上命令行如果 显示未找到 wget 命令,说明没有这个小工具,需要安装,输入命令 sudo yum install wget 安装

    第四步:输入命令,解压下载完成的tar包

    tar -zxvf mirror

    第五步:这一步只是一个小常识 单纯的安装PHP是不能与Nginx一起工作的,它只能与Apache一起工作,如果想安装Nginx来作为web server的话,需要安装一个软件 叫做phpfpm,phpfpm是以补丁的形势存在的,点击这里是对phpfpm安装的简介,其中有一句“编译 PHP 时需要 --enable-fpm 配置选项来激活 FPM 支持。”

    第六步:因为是编译安装 所以我们要下载编译的软件工具 gcc 和其他一些组件,输入以下命令安装

    sudo yum install gcc gcc++ libxml2-devel

    用了root权限安装 (sudo)

    第七步:cd /php-7.1.16 后 使用 ./configure 进行编译安装的第一步 (安装成功会在最后看到 Thank you for using PHP. )

    ./configure --prefix=/usr/local/php7 --enable-fpm

    命令解释 :./configure 安装前的配置   --prefix= 安装的目录    --enable-fpm编译 PHP 时需要 --enable-fpm 配置选项来激活 FPM 支持。

    注意:输入以上命令之后先不要着急去/usr/local/下找php7这个目录, 会不显示出来,要留在php-7.1.16目录中

    第八步:在php-7.1.16目录中输入命令

    make

    由于此刻编译时间较久 先大致叙述一下什么是 phpfpm

            phpfpm是fast CGI的管理器,只能适用于PHP。

    什么是fastCGI 与 CGI?

            fast CGI是与语言无关的CGI开放扩展,主要将CGI进程保持在内存当中,借此获得较高的性能,fastCGI每次都会执行着,不会每一次都去fork一个子进程。相对于CGI来说,每次fork一个子进程是CGI固定的模式。

    CGI的全称是 公共网关接口 它是一个协议,约定web server与动态程序之间的数据传输

    白话翻译什么是fastCGI与CGI

        fastCGI:CGI在处理请求的时候会fork一个子进程,处理完成之后会释放,下一次请求的时候再fork再释放,这种方式比较没有效率。因此fastCGI诞生了,fastCGI是程序主动启用一个进程,这个进程下有多个子进程并且这些子进程都会常驻在内存当中,就避免了fork 与 释放。当然了,fastCGI在忙的时候也会启用新的进程来帮忙,在闲暇时又会将闲暇的进程结束保证了资源不被浪费。

        CGI:是保证web server传输过来的数据是标准格式方便CGI程序的编写者(打个比方 在Nginx下访问 index.php,这时Nginx会启动CGI来处理,而我们的PHP解释器它就是一个CGI程序)

    什么是phpfpm?

            phpfpm就是实现了fastCGI这个协议的程序,是第三方的,后来被PHP官方购买了。所以现在我们就可以在官网下载并使用了。

    第九步:编译完成后最后显示make test 表示编译成功,继续执行以下命令

    sudo make install

    第十步:执行安装之后我们可以创建一个测试用例 执行以下测试文件 看看是否安装成功了。

    cd /

    touch index.php

    vim index.php

    /usr/local/php7/bin/php index.php

            以上如果执行结果是PHP的信息 说明PHP安装成功!

    -- complate!

    安装MySQL

    源码安装MySQL比较费劲,追求效率点击这里去yum安装吧,但是还是建议没有试验过的试试源码安装的过程,感受一下。

    第一步:和下载PHP步骤一样,打开mysql官网下载然后在最下面有一个下拉框,下拉选Source Code(源代码)下载

    第二步:选择“Generic Linux (Architecture Independent), Compressed TAR Archive” (通用的Linux架构)点击 Download

    第三步:此时会有页面表示登录/注册下载,左下角有No thanks... 我们鼠标放在Nothanks上复制这个a标签的链接

    第四步:weget下载

    wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11.tar.gz

    第五步:解压mysql

    tar -zxvf mysql-8.0.11.tar.gz 

    第六步:安装mysql的依赖工具

    sudo yum install cmake gcc-c++ ncurses-devel perl-Data_dumper boost boost-doc boost-devel

    第七步:编译

    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql\

    -DMYSQL_DATADIR=/usr/local/mysql/data\

    -DSYSCONFDIR=/etc\

    -DMYSQL_USER=mysql \

    -DWITH_MYISAM_STORAGE_ENGINE=1 \

    -DWITH_INNOBASE_STORAGE_ENGINE=1 \

    -DWITH_ARCHIVE_STORAGE_ENGINE=1 \

    -DWITH_READLINE=1 \

    -DMYSQL_UNIX_ADDR=/usr/local/mysql/data/mysql.sock \

    -DMYSQL_TCP_PORT=3306 \

    -DENABLED_LOCAL_INFILE=1 \

    -DENABLED_DOWNLOADS=1 \

    -DWITH_PARTITION_STORAGE_ENGINE=1 \

    -DEXTRA_CHARSETS=all \

    -DDEFAULT_CHARSET=utf8 \

    -DDEFAULT_COLLATION=utf8_general_ci \

    -DWITH_DEBUG=0 \

    -DMYSQL_MAINTAINER_MODE=1 \

    -DWITH_SSL:STRING=bundled \

    -DWITH_ZLIB:STRING=bundled \

    -DDOWNLOAD_BOOST=1 \

    -DWITH_BOOST=/usr/share/doc/boost-doc-1.41.0/

    cmake命令是一个跨平台的安装工具    cmake安装命令的参数较多,如果运行 cmake 版本过低点击这里去升级自己cmake的版本

    第八步:make

    编译过程会比较慢,对于配置较低的服务器,可能会在编译中突然中断并error,百度一下error信息,如果是因为内存过小而中断,建议使用yum安装吧!  如果编译失败点击这里去yum源安装mysql (删除以上mysql所操作的所有相关文件、文件夹),成功编译的请忽略这段话,继续以下的步骤

    第九步:sudo make install

    --complate! 安装完成之后需要对数据库一个小小的配置  简要步骤如下

    1. 配置mysql文件:

        > cd /etc/my.cnf 

        # 加入配置参数

        > character-set-server=utf8 

    2.登录mysql

    >mysql -u root -p

    3.允许远程连接

    use mysql;

    update user set Host='%', Password=PASSWORD('这里填写你设置的密码') where Host='127.0.0.1';

    flush privileges;

    exit;

    4.最后重启

    service mysqld resatrt

    测试一下        时间较仓促 如果有问题 电邮我 yahx6037@foxmail.com

    安装Apache

    第一步:和安装php与mysql一样 都是访问官网的下载地址 然后wget。apache的正确下载地址在 httpd.apache.org 中

    wget http://mirrors.hust.edu.cn/apache//httpd/httpd-2.4.33.tar.gz

    第二步:解压 并进入 使用configure

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

    执行完成之后会     

    error: APR not found. Please read the documentation.

    提示我们安装 APR

    第三步:安装APR依赖  apr 访问地址http://archive.apache.org/dist/apr

    cd /

    wget http://archive.apache.org/dist/apr/apr-1.6.2.tar.gz

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

    tar -zxvf apr-1.6.2.tar.gz

    tar -zxvf apr-util-1.6.0.tar.gz

    第四步:下载解压之后 要对这两个文件进行重命名 去掉各自的版本号

    mv apr-util-1.6.0 apr-util

    mv apr-1.6.2 apr

    第五步:移动这两个依赖文件到 httpd的一个文件下

    mv apr apr-util httpd-2.4.33/srclib/

    第六步:下载最后一个依赖(一个正则pcre) 然后使用configure进行编译前的安装准备

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

    tar -zxvf pcre-8.38.tar.gz

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

    make

    sudo make install

    第七步:在安装了apache安装所需的 apr、apr-util、pcre 三个依赖之后 进入apache目录 进行apache安装

    cd httpd-2.4.33

    ./configure --prefix=/usr/local/apache -with-pcre=/usr/local/pcre-8.38/bin/pcre-config -with-included-apr

    # 以上步骤可能会报错 错误信息如下

    error: Bundled APR-Util requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/.

    # 解决办法

    cd /usr/local/src/

    wget http://apache.fayea.com/apr/apr-1.6.3.tar.bz2

    wget http://apache.fayea.com/apr/apr-util-1.6.1.tar.bz2

    tar -jxvf apr-util-1.6.1.tar.bz2

    tar -jxvf apr-1.6.3.tar.bz2

    cp -rf apr-1.6.3 /httpd-2.4.33/srclib/apr

    cp -rf apr-util-1.6.1 /httpd-2.4.33/srclib/apr-util

    # 然后再回到根目录 重复第七步

    第八步:编译 安装

    make

    sudo make install

    第九步:验证是否安装成功!

    cd /usr/local/apache/bin/

    sudo ./apachectl -k start

    #  此时会有一或两个错误

    # 错误  AH00558:

    #  或 错误 AH00559:

    #  上面的错误先不用管,那是配置虚拟主机的问题

    第十步:依旧验证是否安装成功

     因为是阿里云 所以在安全策略组的配置中已经开启了80端口,所以我们直接在本地浏览器访问云服务器公网的ip

     如果显示 

    It works!

    表示安装成功 请忽略以下步骤

    如果显示拒绝访问或没有开启防火墙的80端口 可以输入以下命令,

    sudo firewall-cmd --zone=public --add-port=80/tcp --permanent

    sudo systemctl restart firewalld.service

    再次浏览器访问显示 it works! 正常

    安装Nginx

        待更新 ....    疑问email yahx6037@foxmail.com

    相关文章

      网友评论

          本文标题:阿里云安装 LA/NMP分布式环境详细步骤

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