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

理论

什么是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

推荐阅读更多精彩内容