centos7 配置LNMP环境

简介: centos7 配置LNMP环境

LNMP环境的搭建

随着我们 Nginx web 服务器的流行,又出现了我们叫做 LNMP 的一种新的 web 环境服务组合。LNMP 就是 Linux + Nginx + Mysql + PHP 等首字母的缩写。现在, LNMP 已经逐渐成为国内大中型互联网公司网站的主流组合环境, 因此, 我们必须熟练掌握 LNMP 环境的搭建、优化及维护方法。

LNMP工作流程

首先,我们的客户端通过浏览器域名请求我们的 Nginx web 服务,如果客户端请求的是静态资源,那么直接由我们的 Nginx 服务解析并返回给客户端。如果客户端请求的是动态资源,那么 Nginx 就会把他的请求通过 FastCGI 接口发送给 php 引擎服务(php-fpm)进行解析并返回,如果这个请求要调用数据库,那么 php 就会继续向后请求 MySQL 数据库,以读取所需要的数据,最后通过 Nginx 将结果返回给客户端。

FastCGI接口

CGI 的全称为 “通用网关接口”( Common Gateway Interface ), 为 HTTP 服务器与其他机器上的程序服务通信交流的一种工具, CGI 程序须运行在网络服务器上。传统 CGI 接口方式的主要缺点是性能较差,因为每次 HTTP 服务器遇到动态程序时都需要重新启动解析器来执行解析,之后结果才会被返回给 HTTP 服务器。这在处理高并发访问时几乎是不可用的, 因此就诞生了 FastCGI。 另外,传统的 CGI 接口方式安全性也很差, 故而现在已经很少被使用了。

FastCGI 是一种用于在 Web 服务器和应用程序之间提供高性能和可扩展性的协议。与早期的 CGI 协议不同,FastCGI 允许 Web 服务器重用已加载到内存中的应用程序,避免了每个请求都需要重新加载的开销,从而提高了性能和响应速度。

FastCGI 协议还支持多线程操作,这使得它能够处理高并发请求。此外,FastCGI 协议还允许 Web 服务器与多个应用程序进行通信,这使得它更加灵活和可扩展。许多 Web 服务器和编程语言都支持 FastCGI 协议,包括 Apache、Nginx、PHP、Python 和 Ruby 等。

配置LNMP

部署环境

因为我这边是用的是 centos7 的环境,yum没有办法直接安装 nginx 服务,所以需要安装拓展源,这边安装阿里云的 epel。

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

安装所需要的服务

yum install nginx mariadb-server php php-mysql php-gd php-fpm -y

配置环境

配置数据库

# systemctl enable mariadb --now
# mysqladmin -uroot psd '123456'

修改 nginx 的配置文件

server {
    listen  80;
    server_name localhost;
    location / {
        root html;
        index index.html index.htm index.php; # 添加上.php为后缀的文件
    }
location ~ \.php$ {
    root /usr/share/nginx/html;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}
}

修改php配置文件

/etc/php.ini增加以下两行。
cgi.fix_pathinfo=0
date.timezone ="Asia/shanghai"
[root@web01 ~]# egrep '^user|^group' /etc/php-fpm.d/www.conf 
user = nginx
group = nginx

这个文件里的user、group都是apache,所以我们要把它修改成nginx

启动服务

systemctl restart nginx mariadb php-fpm

测试

nginx 和 php 协同:

[root@node1 conf.d]# echo "<?php phpinfo(); ?>" >/usr/share/nginx/html/test.php
[root@node1 conf.d]# systemctl restart nginx

测试 mysql 和 php 协同:

[root@node2 conf.d]# cat /usr/share/nginx/html/mysql.php
<?php
$con = mysql_connect("localhost","root","12345");
if (!$con) {
die("could not connect to the db:\n" . mysql_error());
}
else { echo "success"; }
mysql_close($con);
?>

测试完毕,删除测试的.php文件

rm -f /usr/share/nginx/html/*.php

安装 Discuz

解压到我们的 /usr/share/nginx/html/ 下,如果配置没有问题就是可以直接跳转到安装界面,安装注册并连接到数据库之后,就是这样:

 

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
应用服务中间件 Linux nginx
CentOS 7 上配置 Nginx 作为反向代理
在CentOS 7上设置Nginx反向代理的步骤:安装Nginx;启动Nginx服务编辑`/etc/nginx/nginx.conf`;添加`proxy_pass http://app_server_address;将请求转发至应用服务器;重启Nginx`sudo systemctl restart nginx`;验证配置是否成功
|
9天前
|
安全 关系型数据库 MySQL
CentOS 8 中安装与配置 MySQL
CentOS 8 中安装与配置 MySQL
59 3
|
10天前
|
缓存 Linux Docker
CentOS 7 下安装 Docker 及配置阿里云加速服务
CentOS 7 下安装 Docker 及配置阿里云加速服务
218 0
|
9天前
|
网络协议 Linux Shell
如何在 CentOS 中配置 SSH 服务的 TCP 端口转发
如何在 CentOS 中配置 SSH 服务的 TCP 端口转发
17 0
|
1月前
|
Linux
centos bond多网关配置 bond多网关路由
centos bond多网关配置 bond多网关路由
26 2
|
11天前
|
Java Linux
Centos安装openjdk11并配置JAVA_HOME
Centos安装openjdk11并配置JAVA_HOME
34 0
|
12天前
|
消息中间件 RocketMQ
Centos7.6安装RocketMQ4.9.2并配置开机自启
Centos7.6安装RocketMQ4.9.2并配置开机自启
24 0
|
12天前
|
Java Linux Maven
Centos7.6安装Maven3.8.3并配置阿里云镜像
Centos7.6安装Maven3.8.3并配置阿里云镜像
76 0
|
12天前
|
Linux
centos7安装maven3.8.1并配置阿里云镜像
centos7安装maven3.8.1并配置阿里云镜像
60 0
|
1月前
|
开发工具
centos8 yum安装mysql8 流程配置
centos8 yum安装mysql8 流程配置
191 0