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

我们上一大章介绍了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个应用也随着移动互联网的崛起,基本上都已经落幕。
运维小路
一个不会开发的运维!一个要学开发的运维!一个学不会开发的运维!欢迎大家骚扰的运维!
关注微信公众号《运维小路》获取更多内容。