Bootstrap

CentOS 7 编译安装LNMP环境

1、前言

本文适合于已经对Linux操作系统具有基本操作经验,并且能够在Linux或Windows上通过一键搭建工具或者yum命令行进行环境搭建的读者,阅读本文需具有一定的专业知识,如果初学者的的基础比较厉害的伙伴也可以尝试一下。
本文所描述的是在标准的CentOS 7.6 64位操作系统下,安装Nginx 1.15.9 + PHP 7.3.3 + MySQL 5.7.20环境。采用源码编译安装的方式,虽然较直接使用yum命令安装较为复杂,但是源码安装可以自定义指定安装路径,可以自定义配置安装配套的库和插件,这样服务器运维人员将更清楚自己服务器的情况,从而,在日后的环境、插件的升级和更新操作中,将变得更加简便和容易
注意:该教程是以VM虚拟机安装的CentOS 7.6 minimal(最小安装) 的初始环境版本为例,如有不同的情况,可能是系统版本或者系统安装的其它软件等导致。

2、准备安装工具

2.1、安装make

yum -y install gcc automake autoconf libtool make

2.1、安装g++

yum install gcc gcc-c++ glibc

2.3、创建安装目录
本文是在VM虚拟机上安装,所以在系统根目录下创建www目录,然后在www目录里面分别创建server目录、logs目录、wwwroot目录和package目录,其中server目录存放所有的服务器软件(本文中所涉及到的nginx、php、mysql等),wwwroot目录存放所有部署的代码及程序,package目录用来存放安装过程中需要用到的编译后的库文件。
需以root权限,依次执行以下命令

mkdir /www
mkdir /www/package
mkdir –p /www/server
mkdir –p /www/wwwroot
mkdir –p /www/logs

这里需要说明,上述的server目录,是指环境安装完成后,运行程序所在的目录,并非nginx等程序的源码存放目录,为了方便,本文将下载到的这些运行环境程序的源码统一存放于/root目录下,读者可根据自身情况及喜好,将运行环境程序源码存放于任意不是/www/server的目录下

3、安装Nginx

3.1、下载并解压pcre
官网:http://www.pcre.org/
依次执行以下命令

cd /root/
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.43.tar.gz
tar -zxvf pcre-8.43.tar.gz

如果系统提示如下

-bash: wget: command not found

请执行以下命令,等待完成后继续操作

yum -y install wget

3.2、下载并解压zlib
官网:http://zlib.net/
依次执行以下命令

cd /root/
wget https://sourceforge.net/projects/libpng/files/zlib/1.2.11/zlib-1.2.11.tar.gz
tar –zxvf zlib-1.2.11.tar.gz

3.3、下载并解压openssl
官网:https://www.openssl.org/
依次执行以下命令

cd /root/
wget https://www.openssl.org/source/openssl-1.1.0b.tar.gz
tar –zxvf openssl-1.1.0b.tar.gz

3.4、为nginx添加用户及组
nginx的工作进程需要以某一个用户的权限进行运行,为了服务器安全,一般指定一个普通用户权限的账号做为nginx的运行角色,根据个人习惯,这里使用www用户做为nginx工作进程的用户,后续安装的PHP也以www用户做为工作进程用户,依次执行以下命令以创建用户及用户组

groupadd -r www
useradd -r -g www www

3.5、下载并安装nginx
官网:http://nginx.org/
依次执行以下命令

cd /root/
wget http://nginx.org/download/nginx-1.15.9.tar.gz
tar –zxvf nginx-1.15.9.tar.gz

以上命令完成下载和解压操作,接下来进行安装操作

cd nginx-1.15.9/
./configure
--prefix=/www/server/nginx
--sbin-path=/www/server/nginx/sbin/nginx
--conf-path=/www/server/nginx/conf/nginx.conf
--pid-path=/www/server/nginx/logs/nginx.pid
--user=www
--group=www
--with-http_ssl_module
--with-http_flv_module
--with-http_mp4_module  
--with-http_stub_status_module 
--with-select_module 
--with-poll_module 
--error-log-path=/www/logs/nginx/error.log 
--http-log-path=/www/logs/nginx/access.log  
--with-pcre=/root/pcre-8.43 
--with-zlib=/root/zlib-1.2.11
--with-openssl=/root/openssl-1.1.0b

我这里是为了好看的格式,如果复制以上命令的伙伴,建议转换一下,以免执行出错
其中,./configure是对安装进行配置;

--prefix                                          #表示nginx要安装到哪个路径下,这里指定刚才新建好的/www/server目录下的nginx;
--sbin-path                                       #表示nginx的可执行文件存放路径
--conf-path                                       #表示nginx的主配置文件存放路径,nginx允许使用不同的配置文件启动,通过命令行中的-c选项
--pid-path                                        #表示nginx.pid文件的存放路径,将存储的主进程的进程号。安装完成后,可以随时改变的文件名 , 
;