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个应用也随着移动互联网的崛起,基本上都已经落幕。

运维小路

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

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

相关推荐
运维成长记25 分钟前
ansible-playbook 进阶 接上一章内容
linux·服务器·ansible
愚润求学1 小时前
【Linux】mmap文件内存映射
linux·运维·服务器·开发语言·c++
就是我2 小时前
轻松管理Linux定时任务:Cron实用教程
linux·后端
hope_wisdom2 小时前
Linux系统编程之共享内存
linux·共享内存·linux系统·linux编程
Ealrang2 小时前
Linux分区总结
运维
江湖有缘3 小时前
【Docker管理工具】部署Docker管理面板DweebUI
运维·docker·容器
阿巴~阿巴~3 小时前
Git 全平台安装指南:从 Linux 到 Windows 的详细教程
linux·windows·git
摸鱼仙人~3 小时前
Maven 安装与配置指南(适用于 Windows、Linux 和 macOS)
linux·windows·maven
云道轩3 小时前
deepseek轻松解决 Nginx 网络透传问题实现内部IBM MQ和外部IBM MQ的通信
nginx·ibm mq
linux行者4 小时前
Linux 资源限制(进程级,用户级,系统级)
linux·运维·服务器