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/ 下,如果配置没有问题就是可以直接跳转到安装界面,安装注册并连接到数据库之后,就是这样:

 

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
8月前
|
应用服务中间件 Linux 网络安全
Centos 8.0中Nginx配置文件和https正书添加配置
这是一份Nginx配置文件,包含HTTP与HTTPS服务设置。主要功能如下:1) 将HTTP(80端口)请求重定向至HTTPS(443端口),增强安全性;2) 配置SSL证书,支持TLSv1.1至TLSv1.3协议;3) 使用uWSGI与后端应用通信(如Django);4) 静态文件托管路径设为`/root/code/static/`;5) 定制错误页面(404、50x)。适用于Web应用部署场景。
839 87
|
6月前
|
Linux 编译器 开发工具
在CentOS环境下升级GCC编译器的指南
总结:本文提供了一种方法来升级CentOS的GCC编译器,通过使用CentOS的软件集合和开发者工具集工具,可以比较平滑地进行升级。在整个过程中无需从源代码编译,这样既省去了复杂的编译过程,也避免了可能出现的与系统库不兼容的风险。请注意,使用第三方仓库可能会带来系统稳定性和安全性上的潜在影响。所有操作都应谨慎进行,并确保有相应的数据备份。
860 19
|
6月前
|
存储 Linux Apache
在CentOS上配置SVN至Web目录的自动同步
通过上述配置,每次当SVN仓库中提交新的更改时,`post-commit`钩子将被触发,SVN仓库的内容会自动同步到指定的Web目录,从而实现代码的连续部署。
209 16
|
6月前
|
NoSQL 安全 Linux
设置Redis在CentOS7上的自启动配置
这些步骤总结了在CentOS 7系统上设置Redis服务自启动的过程。这些命令提供了一个直接且明了的方式,确保Redis作为关键组件在系统启动时能自动运行,保障了依赖于Redis服务的应用的稳定性和可用性。
535 9
|
8月前
|
Linux
Centos6配置阿里云yum源报错
在CentOS 6配置阿里云Yum源时,可能出现EPEL仓库访问报错(404 Not Found)。解决方法:编辑`/etc/yum.repos.d/epel.repo`文件,将`enabled`和`gpgcheck`参数设为0 ``` 此设置可解决仓库无法访问的问题。
1843 29
|
8月前
|
Ubuntu 安全 Linux
CentOS与Ubuntu中防火墙配置命令集汇
有了这些,你就能遨游在 CentOS 和 Ubuntu 的海洋中,频繁地改变你的防火墙设置,快速地应对各种安全威胁,同时也能保证你的系统可以正常工作。出发吧,勇敢的编程者,随着这些命令集的涌动,扬帆起航,走向安全的网络世界!
282 5
|
9月前
|
关系型数据库 MySQL Linux
CentOS 7系统下详细安装MySQL 5.7的步骤:包括密码配置、字符集配置、远程连接配置
以上就是在CentOS 7系统下安装MySQL 5.7的详细步骤。希望这个指南能帮助你顺利完成安装。
2298 26
|
9月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
402 10
|
10月前
|
关系型数据库 MySQL 应用服务中间件
Linux 手动安装快速部署 LNMP 环境实战
本文详细记录了在阿里云ECS上手动搭建LNMP环境的过程,系统选用Ubuntu 24.04。主要内容包括:1) 使用`apt`安装Nginx和MySQL,并更新软件源;2) 编译安装PHP 8.4.5,配置PHP-FPM及环境路径;3) 配置MySQL root用户密码;4) 调整Nginx支持PHP解析并测试整体环境。通过此过程,重现手动配置服务器的细节,帮助熟悉各组件的安装与协同工作。
728 23