Web服务器-一代经典LNMP

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

我们上一大章介绍了Kubernetes的知识,本章节我们进入中间件的讲解,这里会包含很多不同的类型组件,中间件的第一个大类我这里定义的是Web服务器。由于目前使用最广泛的Web服务器是Nginx,所以我们这里的讲解主要以Nginx服务器为主。

在互联网早期,LAMP是很多网站的配置,也是学习Linux必须掌握的技能,后期随着技术迭代升级出现了衍生版本:LNAMP和LNMP。今天我们就来讲解LNMP的部署。

L:代表操作系统Linux。

N:代表Web服务器Nginx。

A:代表Web服务器Apahce。

M:代表数据库MySQL。

P:代表后端语言PHP。

由于Linux系统和Nginx都们都是已经比较熟悉,这里就忽略不记,数据库这里我们这里还没讲解,而且还没有具体应用就用不到Mysql,所以我们重点放在PHP和Nginx配置上面。

1.php源安装

bash 复制代码
#添加源和基础工具
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
yum install yum-utils -y
# 启用PHP 7.4仓库,可替换其他版本如php80
yum-config-manager --enable remi-php74  

2.php及常用扩展安装

复制代码
yum install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring -y

3.配置php

这样配置,Nginx才有权限读取这个sock,然后使用sock通信比默认是用网络通信会更好。

ini 复制代码
vi  /etc/php-fpm.d/www.conf

[www]
user = nginx
group = nginx

listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nginx
listen.group = nginx

pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35

4.启动php

这里LNMP里面php是需要启动以后才可以使用,下一个LAMP是不需要启动的,他已经集成到web服务器内部。

bash 复制代码
systemctl start php-fpm
systemctl enable php-fpm

5.配置Nginx

ini 复制代码
server {
    listen 80;
    server_name _;
    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

6.准备php测试文件

这里是一个php函数,可以打印当前php的环境信息,一般用于测试php功能。

bash 复制代码
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

如果我们的php代码有访问数据库的能力,那么我们的LNMP就已经完全配置成功。早期我们学Linux的时候,就通过Shell脚本来实现自动化部署LNMP,只是那个时候很多组件都是通过编译安装。而且微信早期都大量使用php,这里编程界有一句话是这样说的:PHP是世界上最好的语言。

在中国互联网早期的有多知名的PHP应用,比如论坛:PHPWind被阿里收购,

Discuz被腾讯收购(基本上都是15年前的事情),而这个2个应用也随着移动互联网的崛起,基本上都已经落幕。

运维小路

一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!

关注微信公众号《运维小路》获取更多内容。

相关推荐
火车叼位18 分钟前
脚本伪装:让 Python 与 Node.js 像原生 Shell 命令一样运行
运维·javascript·python
鹏北海18 分钟前
micro-app 微前端项目部署指南
前端·nginx·微服务
予枫的编程笔记30 分钟前
【Linux进阶篇】从基础到实战:grep高亮、sed流编辑、awk分析,全场景覆盖
linux·sed·grep·awk·shell编程·文本处理三剑客·管道命令
Sheep Shaun31 分钟前
揭开Linux的隐藏约定:你的第一个文件描述符为什么是3?
linux·服务器·ubuntu·文件系统·缓冲区
Tfly__39 分钟前
在PX4 gazebo仿真中加入Mid360(最新)
linux·人工智能·自动驾驶·ros·无人机·px4·mid360
陈桴浮海41 分钟前
【Linux&Ansible】学习笔记合集二
linux·学习·ansible
迎仔42 分钟前
06-存储设备运维进阶:算力中心的存储管家
运维
生活很暖很治愈1 小时前
Linux——环境变量PATH
linux·ubuntu
?re?ta?rd?ed?1 小时前
linux中的调度策略
linux·运维·服务器
深圳市九鼎创展科技1 小时前
瑞芯微 RK3399 开发板 X3399 评测:高性能 ARM 平台的多面手
linux·arm开发·人工智能·单片机·嵌入式硬件·边缘计算