美文网首页学习
150Nginx 运维基础入门--LNMP系统安装

150Nginx 运维基础入门--LNMP系统安装

作者: Jachin111 | 来源:发表于2021-09-16 23:19 被阅读0次

    实验原理

    什么是 LNMP
    首先这里要简单介绍下 LAMP 和 LNMP,这两个都是在网站服务器架构中的系统环境。

    上节中我们简单介绍过:
    LAMP 指的是:Linux+Apache+MySQL+Perl/PHP/Python
    LNMP 指的是:Linux+Nginx+MySQL+PHP

    我们可以从表面看出,这两个框架大致的区别就在于 Apache 和 Nginx 上面(其实,远远不止这些)。我们在上节已经分析了 Nginx 与 Apache 的各种优缺点,这里就不再多加赘述。

    这就是 LNMP 的组成:


    image.png

    实验步骤

    LNMP 系统安装(L-N-M-P)
    前期准备(环境要求,库依赖):
    如果你的物理机上用 apt-get 安装了老版的 Nginx,或者你的 Nginx 有问题,可以使用 sudo apt-get purge nginx 命令删除已安装的 Nginx。

    针对后面的 nginx 源码编译安装(如果选择 apt-get 的方式则不需要,我们在这里会有简单的库依赖列表,需要读者参照解决。

    ssl 功能需要 openssl

    gzip 模块需要 zlib

    rewrite 模块需要 pcre

    这些库可以点击后在相应官网进行下载、解压、编译、安装。(下载最新的最好)

    L(Linux 安装)

    在 LNMP 中的作用或角色:
    Linux 是一类 Unix 计算机操作系统的统称,是目前最流行的免费操作系统。LNMP 中以它作为平台。
    Linux 的常见发行版有:debian、centos、ubuntu、fedora、gentoo 等。
    我们实验楼的环境本身就是 ubuntu,可直接进行下一步操作。如果想拥有自己的 ubuntu 实验环境,赶紧动手实现

    N(Nginx 安装)

    在 LNMP 中的作用或角色:Nginx 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
    安装方式
    决定因素:主要针对不同人群、不同需求,对于一般新手而言 apt-get 就够了;如果你乐于折腾,需要定制,那就源码安装吧(这里只会简单叙述)。强烈建议 apt-get 直接安装。
    (1)直接 apt-get 安装

    sudo apt-get update
    sudo apt-get install -y nginx
    
    image.png

    这里要是安装失败的,很可能就是源的问题了。现在的软件源比较完整,基本都包含了 Nginx,如果源列表实在没有, 进入系统设置-软件更新切换另一个源就好了,ubuntu 官方源(国内速度较慢)、souhu 源、163 都有(更换源最后记得 sudo apt-get update 更新软件包列表数据库,不然不会生效)。
    ubuntu 因为安全策略,每次执行安装命令时一般需要加上 sudo 去操作。建议在安装过程中使用 sudo 而不是直接切换到 root 用户,这样虽然表面繁琐,但是安全。
    (2)源码安装
    这个方法比较繁琐这里简单阐述下,因为 ubuntu 默认的策略是什么库都不安装,经过上面的库依赖解决,可以从中了解到 Nginx 依赖的库有哪些,并且可以定制安装组件或者不安装组件,开机启动或开机不启动等等。

    nginx 源 下载最新的源代码压缩包,解压编译安装就好。

    Linux 中最好把源代码存放在 /usr/local/src 文件夹中

    完成安装后的测试
    所有的启动配置文件都在 /etc/init.d/nginx 这个目录下,所以相关操作都可以在这个文件夹启动命令,这其实就是一个启动脚本。
    启动命令:

    sudo /etc/init.d/nginx start
    
    # 或者使用如下的命令
    
    sudo service nginx start
    

    启动完毕后,打开浏览器,访问 http://localhost 一定要刷新以确认。

    image.png
    在实验楼的新版本环境里,由于环境升级的时候安装了 apache,apache 的 html 文件覆盖了 nginx 的文件,所以也可能会展示 apache 的页面:
    image.png
    停止命令:
    sudo /etc/init.d/nginx stop
    
    # 或者使用如下的命令
    
    sudo service nginx stop
    

    停止过后,再打开浏览器,访问 http://localhost 同样需要刷新确认

    image.png
    重启命令:
    sudo /etc/init.d/nginx restart
    
    # 或者使用如下的命令
    
    sudo service nginx restart
    

    nginx 安装后的初级配置
    在后面的章节中,关于 Nginx 的配置有较详细的讲解及实战。这里只是基础的配置

    sudo vim /etc/nginx/sites-available/default
    

    PHP 需要配置 location ~ .php$ {},所以要让 php 与 nginx 一起工作,就得在这个配置文件中配置这个模块。
    找到 location ~ .php 配置段,修改内部配置为如下内容:

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
    image.png

    紧接着测试配置文件是否正确:

    sudo nginx -t
    
    image.png

    测试成功以后重载配置文件,使配置文件生效:

    sudo service nginx reload
    
    image.png
    关于测试的话要等下面的 php 一同配置好后一起测试
    如果对 nginx default 配置还不是很清楚的或者有兴趣的读者可以参考 示例 1示例 2

    M(MySQL 安装)

    安装
    MySQL 是一个小型关系型数据库管理系统,其安装分为服务端与客户端
    安装命令如下:(由于实验楼环境中已经装有 Mysql。安装部分就省略掉。)

    sudo apt-get install mysql-server mysql-client
    

    然后你会看见输入密码的界面,你只需接下来输入管理员密码就行。
    如果不安装,直接使用环境中的 MySQL,只需要在环境中使用 sudo service mysql start 启动 MySQL,MySQL 用户为 root,密码为空。
    修改 MySQL 的配置文件

    sudo vim /etc/mysql/mariadb.conf.d/50-server.cnf
    

    将 bind-address = 127.0.0.1 注释掉(在对应的行前面添加 # ),就可以远程连接数据库了


    image.png

    P(php 安装)

    在 LNMP 中的作用或角色:nginx 本身不能处理 PHP,它只是个 web 服务器,当接收到请求后,如果是 php 请求,则发给 php 解释器处理,并把结果返回给客户端。
    php-fpm 是一个守护进程(FastCGI 进程管理器)用于替换 PHP FastCGI 的大部分附加功能,对于高负载网站是非常有用的。

    sudo apt-get install -y php7.0-fpm
    

    安装好以后连同上面的 Nginx 一同测试:
    现在创建一个探针文件保存在 /var/www/html 目录下(这个目录就是刚刚 nginx 配置文件中 root 目录),以便测试。

    sudo vim /var/www/html/phpinfo.php
    
    image.png

    接下来使用命令启动 php7.0-fpm 服务:

    sudo service php7.0-fpm start
    

    然后访问 http://localhost/phpinfo.php记得刷新
    接下来你就会看见:

    image.png

    修改各模块配置文件

    修改各个模块配置文件,达到能互相支持的目的:
    (1)首先,要想让 php 支持 MySQL,还需要安装一系列的配套模块。
    在刚才打开的网页中,这是没有装模块的界面,搜索可以看出,里面没有任何 MySQL 的启动信息


    image.png

    你需要安装 php-mysql 模块,使用如下命令进行安装:

    sudo apt-get install php-mysql
    

    安装好以后,紧接着你需要需要重启 php

    sudo service php7.0-fpm restart
    

    这是装好以后的表现:


    image.png

    (2)改变监听端口
    在某些情况下我们需要改变服务器监听的端口。
    因为套接字是通过绑定 ip 端口连接的,那就只需要将刚才的 Nginx 的 default(所在目录 /etc/nginx/sites-available/)配置中的端口打开,改成你想要监听的端口。

    # 这是 Nginx 的 default 文件
    sudo vim /etc/nginx/sites-available/default
    
    server {
      # 把 80 修改为 9000
      listen 9000 default_server;
      listen [::]:9000 default_server ipv6only=on;
    
      root /var/www/html;
      index index.html index.htm;
    
      # Make site accessible from http://localhost/
      server_name localhost;
    }
    

    命令重载配置文件,使之生效:

    sudo service nginx reload
    
    sudo service nginx restart
    

    好了以后直接刷新刚才的页面 http://localhost:9000/phpinfo.php记得刷新)就完成了

    注意事项

    如果运行不正常,用 service nginx status 查看运行状态。
    启动,重启,关闭 Nginx 记得加 sudo,不然可能会失败。
    如果还是不能启动,查看 log,这个文件会告诉你失败的原因。

    tail /var/log/nginx/error.log
    

    相关文章

      网友评论

        本文标题:150Nginx 运维基础入门--LNMP系统安装

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