Linux——LNMP环境搭建

一、LNMP环境概述

1、什么是LNMP环境

LNMP 是 Linux + Nginx + MySQL/Mariadb + PHP 的组合缩写。

Nginx:是一个web服务器,提供HTTP 服务。
MySQL/MariaDB:关系型数据库,用来存放数据(例如账号信息等)
PHP:是一种编程语言。常用来做网站(例如qq.com 、 baidu.com)。

2、网站访问原理

用户通过web浏览器访问网站,即访问Nginx服务。此时会处理图片、js、css(叫做静态请求);接收PHP请求但不处理,会将PHP的请求转发给php-fpm服务,由此服务来处理PHP请求(叫做动态请求)
Linux——LNMP环境搭建

3、静态请求 & 动态请求

静态请求:指Nginx可以直接处理的图片、js、css、视频、音频、flash等

动态请求:指需要和数据库打交道的请求。例如:用户登录过程,查看文章或者写一篇文章。

二、Mariadb数据库安装

1、Mariadb数据库概述

Mariadb数据库是MySQL的一个分支。MySQL被 SUN公司收购后,又被 Oracle公司收购,因为Oracle公司专门做关系型商业收费数据库,所以很有可能在未来的某年MySQL也会变成商业版收费软件。为了避免这一情况,现在很多公司开始转向使用Mariadb数据库。

Mariadb数据库完全兼容MySQL数据库,包括API和命令行。目前最新的稳定版是10.3版。

2、下载

官方网站 https://mariadb.org/

下载界面 https://downloads.mariadb.org/ 本次学习使用10.3版本
Linux——LNMP环境搭建
Linux——LNMP环境搭建

可以保存对应的下载链接在Linux中使用wget命令获取镜像。

3、解压缩文件

tar zxvf mariadb-10.3.13-linux-x86_64.tar.gz

3.1 常用的解压缩命令

解压.tar.gz文件 tar zxvf mariadb-10.3.13-linux-x86_64.tar.gz
解压.tar.bz2文件 tar jxvf mariadb-10.3.13-linux-x86_64.tar.bz2
解压.tar.xz文件 tar Jxvf mariadb-10.3.13-linux-x86_64.tar.xz

3.2 常用的压缩打包命令

tar zcvf mariadb-10.tar.gz 123/
tar jcvf mariadb-10.tar.bz2 123/
命令解析:将目录123/ 压缩打包为mariadb-10.tar.gz/bz2

4、拷贝解压后的文件至对应的目录并改名,方便后期维护

mv mariadb-10.3.13-linux-x86_64 /usr/local/mysql

5、查看安装步骤

[root@JSH-01 local]# cd mysql/
[root@JSH-01 mysql]# less INSTALL-BINARY

Linux——LNMP环境搭建

6、创建目录

mkdir -p /data/mysql (其中参数 -p 是级联创建)

7、创建用户

useradd -M -s /sbin/nologin mysql
(其中参数 -M 不创建家目录;-s 指定shell)

8、改变文件的拥有者和群组

chown -R mysql:mysql /data/mysql
(其中参数 -R 指定目录以及其子目录下的所有文件)

命令解析:

目录/data/mysql及其子目录下的所有文件的拥有者和群组都是mysql。

8、初始化mariadb 生成自己的库文件

报错信息如下:此时需要安装 yum install -y libaio-devel

Linux——LNMP环境搭建

安装完依赖包后,再次执行初始化命令。输入 echo $? 查看安装结果

9、拷贝启动脚本并改名为mysqld,编辑拷贝后的文件。

[root@JSH-01 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@JSH-01 mysql]# vi /etc/init.d/mysqld

basedir=/usr/local/mysql #定义mysql程序存放目录
datadir=/data/mysql #定义mysql数据库存放位置

10、系统服务与启动

10.1 chkconfig --list 列出系统所有的服务(针对 CentOS 6系统)

增加mysqld服务至系统服务列表 chkconfig --add mysqld
前提:mysqld 在/etc/init.d 目录下;其次mysqld的权限为 755
设置其随系统启动而启动:chkconfig mysqld on

Linux——LNMP环境搭建

10.2 systemctl list-unit-files 列出系统所有的服务(针对 CentOS 7系统)

11、启动mysqld服务

/etc/init.d/mysqld start 或者 service mysqld start
(只要将其加入系统服务列表,就可以用后者启动)

报错信息:

Linux——LNMP环境搭建

编辑默认配置文件 vi /etc/my.cnf 修改对应的参数(如图)

一般讲socket放在 /tmp/ 目录下;

Linux——LNMP环境搭建

修改完成后,再次启动mysqld 如图所示,表示成功

Linux——LNMP环境搭建

12、查看进程 ps aux|grep mysql

13、查看3306端口 netstat -lnp

Linux——LNMP环境搭建

14、连接MySQL/MariaDB服务

Linux——LNMP环境搭建

15、首次连接需要输入的命令太长,怎么办?

解决方法1:软连接

Linux——LNMP环境搭建

解决方法2:系统环境变量(重启系统后会失效)

只有存在于/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
里面的命令才可以直接用。

将 /usr/local/mysql/bin 目录添加至系统环境变量中
Linux——LNMP环境搭建

解决方法3:系统环境变量(永久有效)

[root@JSH-01 mysql]# echo "PATH=$PATH:usr/local/mysql/bin" >> /etc/profile

解析:/etc/profile 初始环境系统变量配置文件

16、别名 alias (可以理解为外号)

例如1:定义别名(仅针对当前窗口有效;重启或重新连接后就失效了)
[root@JSH-01 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 
[root@JSH-01 ~]# alias vieth0='vi /etc/sysconfig/network-scripts/ifcfg-eth0'
##当重启或重新连接后就失效了

[root@JSH-01 ~]# ls -a
.   .bash_history  .bash_profile  .cache  .mysql_history  .pydistutils.cfg  .tcshrc
..  .bash_logout   .bashrc        .cshrc  .pip            .ssh
[root@JSH-01 ~]# vi .bashrc 

需要将别名写入当前用户家目录下的 .bashrc 文件中才能永久有效(针对当前用户)

需要将别名写入root用户/etc/bashrc 文件中才能永久有效(针对所有用户)

Linux——LNMP环境搭建

三、编译安装PHP

1、下载

官网 www.php.net
Linux——LNMP环境搭建

点击对应的文件格式后,会跳转至镜像站,选择国家后点击下载。复制对应的下载链接,在Linux中使用wget命令获取。

Linux——LNMP环境搭建

2、解压缩

[root@JSH-01 src]# tar zxvf php-7.3.2.tar.gz
[root@JSH-01 src]# ls
mariadb-10.3.13-linux-x86_64.tar.gz  php-7.3.2  php-7.3.2.tar.gz

3、编译

3.1 编译第一步: ./configure配置编辑参数

进入PHP目录,vi INSTALL 可以看到编译指引链接https://php.net/install

Linux——LNMP环境搭建

编译参数如下:

./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-pdo-mysql=/usr/local/mysql --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl

编译参数详解:

--prefix=/usr/local/php-fpm 指定安装路径
--with-config-file-path=/usr/local/php-fpm/etc 指定配置文件路径
--enable-fpm 开启fpm功能(因为要对接Nginx)
--with-fpm-user=php-fpm 指定fpm的用户
--with-fpm-group=php-fpm 指定fpm的组
--with-mysql=/usr/local/mysql 连接MySQL(兼容老版本)
--with-mysqli=/usr/local/mysql/bin/mysql_config 连接MySQL(新版本)
--with-pdo-mysql=/usr/local/mysql 连接MySQL的一种方式
--with-mysql-sock=/tmp/mysql.sock 指定MySQL的socket

添加PHP的各种模块
--with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl

编译过程中的错误与解决方法

错误1:

checking for cc ...    no
checking for gcc ...  no

解决方法:安装编译器 yum install -y gcc

错误2:

configure: error: libxml2 not found. Please check your libxml2 installation.

解决方法:yum list |grep libxml2(一般都是缺少开发包devel,所以此处安装 yum install -y libxml2-devel )

[root@JSH-01 php-7.3.2]# yum list |grep libxml2
libxml2.x86_64                          2.9.1-6.el7_2.3                @anaconda
libxml2.i686                            2.9.1-6.el7_2.3                base     
libxml2-devel.i686                      2.9.1-6.el7_2.3                base     
libxml2-devel.x86_64                    2.9.1-6.el7_2.3                base     
libxml2-python.x86_64                   2.9.1-6.el7_2.3                base     
libxml2-static.i686                     2.9.1-6.el7_2.3                base     
libxml2-static.x86_64                   2.9.1-6.el7_2.3                base     
mingw32-libxml2.noarch                  2.9.3-1.el7                    epel     
mingw32-libxml2-static.noarch           2.9.3-1.el7                    epel     
mingw64-libxml2.noarch                  2.9.3-1.el7                    epel     
mingw64-libxml2-static.noarch           2.9.3-1.el7                    epel     

错误3:

configure: error: Cannot find OpenSSL's <evp.h>

解决方法:yum install -y openssl-devel

[root@JSH-01 php-7.3.2]# yum list |grep -i OpenSSL (-i参数:忽略大小写)
openssl.x86_64                          1:1.0.2k-8.el7                 @anaconda
openssl-libs.x86_64                     1:1.0.2k-8.el7                 @anaconda
apr-util-openssl.x86_64                 1.5.2-6.el7                    base     
globus-gsi-openssl-error.x86_64         4.0-1.el7                      epel     
globus-gsi-openssl-error-devel.x86_64   4.0-1.el7                      epel     
globus-gsi-openssl-error-doc.noarch     4.0-1.el7                      epel     
globus-openssl-module.x86_64            5.0-1.el7                      epel     
globus-openssl-module-devel.x86_64      5.0-1.el7                      epel     
globus-openssl-module-doc.noarch        5.0-1.el7                      epel     
mingw32-openssl.noarch                  1.0.2h-1.el7                   epel     
mingw32-openssl-static.noarch           1.0.2h-1.el7                   epel     
mingw64-openssl.noarch                  1.0.2h-1.el7                   epel     
mingw64-openssl-static.noarch           1.0.2h-1.el7                   epel     
openssl.x86_64                          1:1.0.2k-16.el7                base     
openssl-devel.i686                      1:1.0.2k-16.el7                base     
openssl-devel.x86_64                    1:1.0.2k-16.el7                base     
openssl-libs.i686                       1:1.0.2k-16.el7                base     
openssl-libs.x86_64                     1:1.0.2k-16.el7                base     
openssl-perl.x86_64                     1:1.0.2k-16.el7                base     
openssl-pkcs11.x86_64                   0.4.8-1.el7                    epel     
openssl-static.i686                     1:1.0.2k-16.el7                base     
openssl-static.x86_64                   1:1.0.2k-16.el7                base     
openssl098e.i686                        0.9.8e-29.el7.centos.3         base     
openssl098e.x86_64                      0.9.8e-29.el7.centos.3         base     
perl-Crypt-OpenSSL-Bignum.x86_64        0.04-18.el7                    base     
perl-Crypt-OpenSSL-RSA.x86_64           0.28-7.el7                     base     
perl-Crypt-OpenSSL-Random.x86_64        0.04-21.el7                    base     
perl-Crypt-OpenSSL-X509.x86_64          1.803-4.el7                    epel     
pyOpenSSL.x86_64                        0.13.1-4.el7                   base     
pyOpenSSL-doc.noarch                    0.13.1-4.el7                   base     
rubygem-openssl_cms_2_0_0.x86_64        0.0.2-1.20140212git7fea071.el7 epel     
rubygem-openssl_cms_2_0_0-doc.noarch    0.0.2-1.20140212git7fea071.el7 epel     
xmlsec1-openssl.i686                    1.2.20-7.el7_4                 base     
xmlsec1-openssl.x86_64                  1.2.20-7.el7_4                 base     
xmlsec1-openssl-devel.i686              1.2.20-7.el7_4                 base     
xmlsec1-openssl-devel.x86_64            1.2.20-7.el7_4                 base 

错误4:

checking for cURL 7.15.5 or greater... configure: error: cURL version 7.15.5 or later is required to compile php with cURL support

解决方法:yum install -y libcurl-devel

[root@JSH-01 ~]# yum list |grep curl
curl.x86_64                             7.29.0-42.el7                  @anaconda
libcurl.x86_64                          7.29.0-42.el7                  @anaconda
python-pycurl.x86_64                    7.19.0-19.el7                  @anaconda
collectd-curl.x86_64                    5.8.1-1.el7                    epel     
collectd-curl_json.x86_64               5.8.1-1.el7                    epel     
collectd-curl_xml.x86_64                5.8.1-1.el7                    epel     
curl.x86_64                             7.29.0-51.el7                  base     
curlftpfs.x86_64                        0.9.2-14.el7                   epel     
flickcurl.x86_64                        1.25-2.el7                     epel     
flickcurl-devel.x86_64                  1.25-2.el7                     epel     
libcurl.i686                            7.29.0-51.el7                  base     
libcurl.x86_64                          7.29.0-51.el7                  base     
libcurl-devel.i686                      7.29.0-51.el7                  base     
libcurl-devel.x86_64                    7.29.0-51.el7                  base     
mingw32-curl.noarch                     7.47.0-1.el7                   epel     
mingw32-curl-static.noarch              7.47.0-1.el7                   epel     
mingw64-curl.noarch                     7.47.0-1.el7                   epel     
mingw64-curl-static.noarch              7.47.0-1.el7                   epel     
nbdkit-plugin-curl.x86_64               1.2.7-2.el7                    epel     
ocaml-curl.x86_64                       0.7.5-3.el7                    epel     
ocaml-curl-devel.x86_64                 0.7.5-3.el7                    epel     
python34-pycurl.x86_64                  7.43.0-5.el7                   epel     
uwsgi-alarm-curl.x86_64                 2.0.17.1-1.el7                 epel     
uwsgi-plugin-curl-cron.x86_64           2.0.17.1-1.el7                 epel     
[root@JSH-01 ~]# yum install -y libcurl-devel

错误5:

configure: error: jpeglib.h not found.

解决方法:yum install -y libjpeg-turbo-devel

[root@JSH-01 php-7.3.2]# yum list |grep jpeg
jpeginfo.x86_64                         1.6.1-2.el7                    epel     
jpegoptim.x86_64                        1.4.6-1.el7                    epel     
libjpeg-turbo.i686                      1.2.90-6.el7                   base     
libjpeg-turbo.x86_64                    1.2.90-6.el7                   base     
libjpeg-turbo-devel.i686                1.2.90-6.el7                   base     
libjpeg-turbo-devel.x86_64              1.2.90-6.el7                   base     
libjpeg-turbo-static.i686               1.2.90-6.el7                   base     
libjpeg-turbo-static.x86_64             1.2.90-6.el7                   base     
libjpeg-turbo-utils.x86_64              1.2.90-6.el7                   base     
mingw32-libjpeg-turbo.noarch            1.3.1-4.el7                    epel     
mingw32-libjpeg-turbo-static.noarch     1.3.1-4.el7                    epel     
mingw64-libjpeg-turbo.noarch            1.3.1-4.el7                    epel     
mingw64-libjpeg-turbo-static.noarch     1.3.1-4.el7                    epel     
openjpeg.x86_64                         1.5.1-18.el7                   base     
openjpeg-devel.i686                     1.5.1-18.el7                   base     
openjpeg-devel.x86_64                   1.5.1-18.el7                   base     
openjpeg-libs.i686                      1.5.1-18.el7                   base     
openjpeg-libs.x86_64                    1.5.1-18.el7                   base     
openjpeg2.x86_64                        2.3.0-6.el7                    epel     
openjpeg2-devel.x86_64                  2.3.0-6.el7                    epel     
openjpeg2-devel-docs.noarch             2.3.0-6.el7                    epel     
openjpeg2-tools.x86_64                  2.3.0-6.el7                    epel     
turbojpeg.i686                          1.2.90-6.el7                   base     
turbojpeg.x86_64                        1.2.90-6.el7                   base     
turbojpeg-devel.i686                    1.2.90-6.el7                   base     
turbojpeg-devel.x86_64                  1.2.90-6.el7                   base 

错误6:

configure: error: png.h not found.

解决方法: yum install -y libpng-devel

[root@JSH-01 php-7.3.2]# yum list |grep png|grep devel
libpng-devel.i686                       2:1.5.13-7.el7_2               base     
libpng-devel.x86_64                     2:1.5.13-7.el7_2               base     
libpng12-devel.i686                     1.2.50-10.el7                  base     
libpng12-devel.x86_64                   1.2.50-10.el7                  base     
pnglite-devel.x86_64                    0.1.17-1.el7.8                 epel  

错误7:

configure: error: freetype-config not found.

解决方法:yum install -y freetype-devel

[root@JSH-01 php-7.3.2]# yum list |grep freetype|grep devel
freetype-devel.i686                     2.8-12.el7_6.1                 updates  
freetype-devel.x86_64                   2.8-12.el7_6.1                 updates 

错误8:提示mysql的版本不对,即安装的mysql版本太新

configure: error: wrong mysql library version or lib not found. Check config.log for more information.

解决方法:下载一个低版本的MySQL或者MariaDB(不需要安装)
在 /usr/local/src/ 目录中下载MySQL5.6版本的二进制包、并解压缩,修改编译参数

[root@JSH-01 src]# wget  http://mirrors.163.com/mysql/Downloads/MySQL-5.6/mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz
[root@JSH-01 src]# tar zxf mysql-5.6.43-linux-glibc2.12-x86_64.tar.gz 
[root@JSH-01 src]# mv mysql-5.6.43-linux-glibc2.12-x86_64  /usr/local/mysql5.6

新编译参数:
./configure --prefix=/usr/local/php-fpm --with-config-file-path=/usr/local/php-fpm/etc --enable-fpm --with-fpm-user=php-fpm --with-fpm-group=php-fpm --with-mysql=/usr/local/mysql5.6 --with-mysqli=/usr/local/mysql5.6/bin/mysql_config --with-pdo-mysql=/usr/local/mysql5.6 --with-mysql-sock=/tmp/mysql.sock --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --with-pear --with-curl --with-openssl

警告:新版本的编译已经不需要如下的参数。所以可以在编译参数中删除。当然加上也不影响编译。

configure: WARNING: unrecognized options: --with-mysql, --with-mcrypt, --enable-gd-native-ttf
3.2 编译第二步:make将源码文件编译为二进制文件(通过使用GCC编译)
Build complete.    #看到该提示,表示编译完成
Don't forget to run 'make test'.

[root@JSH-01 php-7.3.2]# echo $?    #查看编译过程是够成功,如果是0则表示成功
0
3.3 编译第三步:make install 安装
[root@JSH-01 php-7.3.2]# ls /usr/local/php-fpm/     #安装完成后查看该目录的内容
bin  etc  include  lib  php  sbin  var          #配置文件在 /etc/目录中
[root@JSH-01 php-7.3.2]# cd /usr/local/php-fpm/etc/
[root@JSH-01 etc]# ls
pear.conf  php-fpm.conf.default  php-fpm.d

4、拷贝生成配置文件 php-fpm.conf 否则PHP无法启动

[root@JSH-01 etc]# cp php-fpm.conf.default  php-fpm.conf    #复制生成配置文件,否则PHP无法启动
[root@JSH-01 etc]# ls
pear.conf  php-fpm.conf  php-fpm.conf.default  php-fpm.d

5、拷贝生成配置文件 php.ini 到 /usr/local/php-fpm/etc/目录下

默认PHP的源码包中有:php.ini-development(开发环境) 和 php.ini-production(生产环境)根据需要拷贝生成。
如果用于开发、测试环境则拷贝php.ini-development(开发环境)生成配置文件 php.ini;
如果用于生产环境则拷贝php.ini-production(生产环境)生成配置文件 php.ini;

[root@JSH-01 php-7.3.2]# cp php.ini-development /usr/local/php-fpm/etc/php.ini

5、配置启动脚本并设置权限

[root@JSH-01 php-7.3.2]# cp sapi/fpm/init.d.php-fpm   /etc/init.d/php-fpm
[root@JSH-01 php-7.3.2]# chmod 755  /etc/init.d/php-fpm

6、设置PHP开机启动

[root@JSH-01 php-7.3.2]# chkconfig --add php-fpm
[root@JSH-01 php-7.3.2]# chkconfig php-fpm  on

7、启动PHP服务 service php-fpm start

报错1:

[root@JSH-01 php-7.3.2]# service php-fpm start
Starting php-fpm [01-Mar-2019 11:17:58] WARNING: Nothing matches the include pattern '/usr/local/php-fpm/etc/php-fpm.d/*.conf' from /usr/local/php-fpm/etc/php-fpm.conf at line 143.
[01-Mar-2019 11:17:58] ERROR: No pool defined. at least one pool section must be specified in config file
[01-Mar-2019 11:17:58] ERROR: failed to post process the configuration
[01-Mar-2019 11:17:58] ERROR: FPM initialization failed
 failed

解决方法:在目录 /usr/local/php-fpm/etc/php-fpm.d/ 拷贝生成配置文件 www.conf

[root@JSH-01 php-7.3.2]# cd /usr/local/php-fpm/etc/php-fpm.d/
[root@JSH-01 php-fpm.d]# ls
www.conf.default
[root@JSH-01 php-fpm.d]# cp www.conf.default www.conf

报错2:

[root@JSH-01 php-fpm.d]# service php-fpm start
Starting php-fpm [01-Mar-2019 11:28:07] ERROR: [pool www] cannot get uid for user 'php-fpm'
[01-Mar-2019 11:28:07] ERROR: FPM initialization failed
 failed

解决方法:创建用户 php-fpm (因为编译的时候未创建)

[root@JSH-01 php-fpm.d]# useradd php-fpm

8、再次启动,成功后检查服务及端口 9000

[root@JSH-01 php-fpm.d]# service php-fpm start
Starting php-fpm  done
[root@JSH-01 php-fpm.d]# ps aux |grep php-fpm
root     15099  0.0  0.2 127020  4220 ?        Ss   11:29   0:00 php-fpm: master process (/usr/local/php-fpm/etc/php-fpm.conf)
php-fpm  15100  0.0  0.2 127020  4152 ?        S    11:29   0:00 php-fpm: pool www
php-fpm  15101  0.0  0.2 127020  4152 ?        S    11:29   0:00 php-fpm: pool www
root     16510  0.0  0.0 112632   660 pts/0    D+   11:31   0:00 grep --color=auto php-fpm
[root@JSH-01 php-fpm.d]# netstat -lntp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3207/sshd           
tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      15099/php-fpm: mast 
tcp6       0      0 :::3306                 :::*                    LISTEN      19939/mysqld  

四、编译安装Nginx

1、Nginx官网 http://nginx.org/

Mainline version:Mainline 是 Nginx 目前主力在做的版本,可以说是开发版
Stable version:最新稳定版,生产环境上建议使用的版本
Legacy versions:遗留的老版本的稳定版

Linux——LNMP环境搭建

2、下载

[root@JSH-01 php-fpm.d]# cd /usr/local/src
[root@JSH-01 src]# wget http://nginx.org/download/nginx-1.14.2.tar.gz

本次学习安装使用 Stable version 1.14.2 版本
Linux——LNMP环境搭建

3、解压缩

[root@JSH-01 src]# tar zxvf nginx-1.14.2.tar.gz 

4、编译

编译参数如下:

./configure --prefix=/usr/local/nginx --with-http_ssl_module

[root@JSH-01 src]# cd nginx-1.14.2   #进入文件目录
[root@JSH-01 nginx-1.14.2]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module   #编译
[root@JSH-01 nginx-1.14.2]# echo $?    #检查编译过程是否成功,0表示成功
0 

5、编译 make

6、编译安装 make install

7、Nginx配置脚本

[root@JSH-01 ~]# ls /usr/local/nginx/conf/nginx.conf

Linux——LNMP环境搭建

8、启动Nginx服务: /usr/local/nginx/sbin/nginx

[root@JSH-01 nginx]# /usr/local/nginx/sbin/nginx
[root@JSH-01 nginx]# ps aux|grep nginx     #访问网站时使用的为 worker process 进程
root     12167  0.0  0.0  45896  1120 ?        Ss   16:10   0:00 nginx: master process /usr/local/nginx/sbin/nginx
nobody   12168  0.0  0.1  46344  1896 ?        S    16:10   0:00 nginx: worker process
root     13114  0.0  0.0 112660   968 pts/0    R+   16:11   0:00 grep --color=auto nginx
[root@JSH-01 nginx]# netstat -lntp |grep nginx     #监控的为80端口
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      12167/nginx: master 
上一篇:如何使用Adobe Reader复制PDF文档上的文字


下一篇:Linux学习——堡垒机