26 让 LNMP 运行起来
更新时间:2020-03-10 10:14:22
最聪明的人是最不愿浪费时间的人。——但丁

前言

我们在前面介绍了很多理论知识,这一节我们要实战一下,从头到尾安装一个 LNMP 环境。只有自己亲自动手才能遇到各种问题,在解决问题的过程中加深大家的理解。
废话不多说,我们直接开撸……

环境准备

我们不要求大家有任何特殊的东西,只用一个电脑 (哈哈,这是废话),一个带有 centos 镜像的 docker 环境,仅此而已。

直接开始

首先看一下我们机器上面有什么 docker 镜像。
图片描述

启动 centos

使用 docker run 命令启动我们的 centos 镜像
图片描述
我们进入到 centos 镜像,从此就相当于一个完全新的操作系统,可以随便我们折腾……
图片描述

安装 Nginx

在安装 nginx 之前,有一些依赖文件要安装,比如我们前面提到的 openssl 等。
使用 yum 命令安装这些依赖文件。
图片描述
我们首先创建一个目录 /root/lnmp/ 用于保存我们的所有源代码文件。
图片描述

下载 nginx源代码

图片描述

有的朋友的机器 centos 镜像可能没有 wget 工具,我们可以使用 wget 命令安装一个

解压 Nginx 源码,

将下载的压缩文件解压到本地目录:
图片描述

编译源码

有很多朋友对 Linux 系统安装软件非常的惧怕,其实这是没有必要的。因为我们平时使用 Windows 系统安装软件非常的方便,只用点击同意,然后一路的下一步就可以了,因为这是一个图形用户界面,所以对用户很友好。其实在 Linux 中安装软件也是非常的固定化的,分为三个步骤,configure, make, make install,也是非常简单的。

configure

下面我们就安装一下 nginx, 我们进入到解压文件之后,可以看到一个 configure 文件,顾名思义,这就是一个配置文件。其实它提供了非常详细的用法,我们通过执行 configure --help 命令就可以看到:
图片描述
网上有很多文章介绍我们在配置 configure 的时候要传递这个参数,那个参数的,其实没有必要,对于我们学习使用而言,使用默认值安全满足要求。
图片描述
下面是配置之后的检测输出:
图片描述

编译和安装

这一步只用执行 makemake install 即可,没有任何其他的操作,我在这里就不贴图了。

测试

我们上面提到过,在 configure 的最后会生成一个 summary,里面包含了 nginx 的安装路径,配置文件路径等等。
图片描述

这里说明我们的 nginx 已经安装成功了,so easy

安装 php

首先我们选择安装的 php 版本。现在已经是 php7 的天下了,所以我们选择了 php7.3 版本。

下载并解压源代码

我们可以从这个地方下载 php7.3 的源代码,然后解压。
图片描述

配置

这里也是执行 configure 命令,但是我们要给 configure 传递几个参数,如下:

./configure --prefix=/usr/local/php-fpm --enable-fpm --with-config-file-path=/usr/local/php-fpm/etc

这里的 --enable-fpm 的作用就是打开 fpm 功能。

编译并安装

nginx 一模一样,我们执行 makemake install 就可以安装 php 了。
安装成功之后我们可以看一下安装结果:
图片描述
写一个简单的脚本测试一下安装成果。
图片描述
好嘞,我们的 php 安装成功了……

配置 Nginxphp

启动 php-fpm

这里我们要了解 php-fpm 的工作原理,非常的简单,大家可以自行搜索。
首先我们要启动 php-fpm,我们首先找到 php-fpm 的配置文件所在的目录 /usr/local/php-fpm/etc/,该目录下面有一个 php-fpm.conf.default 的文件,我们拷贝一份这个文件,重新命名为 php-fpm.conf。我们打开这个文件,最后有一行代码:

include=/usr/local/php-fpm/etc/php-fpm.d/*.conf

所以看出来,真正的配置应该在 /usr/local/php-fpm/etc/php-fpm.d/ 目录下面。进入这个目录,拷贝一份 www.conf.default,重新命名为 www.conf,打开这个文件,将 pm=dynamic 修改为 pm.static,保存退出。

这样我们就可以使用命令 /usr/local/php-fpm/sbin/php-fpm 启动 php-fpm 了。
图片描述

配置 nginx

我们打开 nginx 的配置文件,在 server 配置部分增加如下 location 配置。

location ~ \.php$ {
     root /root/php/;
     fastcgi_pass   127.0.0.1:9000;
     fastcgi_index  index.php;
     fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
     include        fastcgi_params;
 }

php-fpm 默认监听 9000 端口,我们可以通过 netstat 命令查看:
图片描述
重启 Nginx,然后我们在 /root/php/ 下面创建一个 index.php 文件,非常的简单:

<?php

echo "hello from php-fpm\n";

访问 http://localhost/index.php 可以看到输出结果:
图片描述

说明我们的 Nginx 已经和 php 正常的进行了通信,安装成功。

我们访问 php 文件的时候可能会出现 File not found 的问题,这个时候看一下 error.log 可以发现,
图片描述
这个问题十有八九是因为我们存放 php 文件的目录权限造成了,大家修改一下对应的权限就可以了。

安装 MySql

这个过程就不再展示了,和 Nginx 以及 php 的安装过程一模一样。大家可以试着自己安装。

总结

我们在这篇文章中手把手的教大家如何安装 LNMP 系统,大家一定要亲自动手尝试,切勿眼高手低。有的朋友可能一直在写业务层代码,对于这些东西不熟悉,认为这是 OP 的工作,其实不然,这对于每一个开发同学来说都非常的重要。遇到问题的时候我们可以准确快速的定位。

}