云平台选择
腾讯云
阿里云
华为云
项目部署
一、架构讲解
1.1、定义与组成
LNMP是Linux、Nginx、MySQL(或MariaDB)和PHP(或Perl、Python)的首字母缩写,代表在Linux系统下使用Nginx作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本语言的一种网站服务器架构。 Linux:作为操作系统,提供稳定的运行环境。Linux是一类Unix计算机操作系统的统称,代表版本有debian、centos、ubuntu、fedora、gentoo等。
Nginx:一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP代理服务器。Nginx采用事件驱动的非阻塞I/O模型,能够高效处理大量并发连接和请求,对系统资源的消耗相对较低。
MySQL(或MariaDB):一个关系型数据库管理系统,用于存储网站数据。MySQL具有数据可靠性高、备份恢复容易等优点,同时提供了复制和分区等特性以支持容错和高可用性需求。
PHP(或Perl、Python):一种在服务器端执行的嵌入HTML文档的脚本语言,用于处理业务逻辑和与前端的交互。
1.2、工作原理
当用户通过浏览器访问LNMP架构的网站时,Nginx服务器会接收到用户的请求。Nginx会根据请求的URL和配置进行匹配,检测请求的Web文件是静态还是动态。 静态页面请求:如果请求的是静态HTML页面,Nginx会直接处理并响应给客户端。 动态页面请求:如果请求的是动态PHP页面(或其他脚本语言),Nginx会将请求发送给后端的PHP模块或CGI。PHP解释器将动态网页解析为静态的HTML网页,然后返回给Nginx。Nginx再将解析后的HTML静态网页结果返回给客户端。
1.3、特点与优势
高性能和高并发:Nginx具有出色的性能和高并发处理能力,能够高效处理大量并发连接和请求。 安全性高:Nginx可以通过HTTP认证和SSL/TLS加密来提供数据和服务的安全性。 灵活性:LNMP可以安装于多个平台和多个版本的Linux操作系统上,同时支持自定义和扩展以适应不同的应用需求。 易用性:LNMP具有易用性,不需要额外的复杂配置即可完成安装和配置。 高可靠性:MySQL作为后端数据库,具有数据可靠性高、备份恢复容易等优点。
1.4、应用案例
LNMP架构广泛应用于各类网站和应用中,如微信公众号后台管理系统、电商网站等。在这些场景中,Nginx负责反向代理和负载均衡,MySQL用于存储数据,PHP处理业务逻辑和与前端的交互,Linux提供稳定的运行环境。
二、项目配置
2.1、服务安装
# 商业转载请联# 安装数据库
[root@localhost ~]# yum -y install mariadb-server mariadb
# 安装php8
[root@localhost ~]# yum install -y http://rpms.remirepo.net/enterprise/remi-release-7.rpm
[root@localhost ~]# yum install php80-php-xsl php80-php php80-php-cli php80-php-devel php80-php-gd php80-php-pdo php80-php-mysql php80-php-fpm -y
# 安装nginx
[root@localhost ~]# yum install -y epel-release
[root@localhost ~]# yum install -y nginx
# 启动php 数据库 nginx
[root@localhost ~]# systemctl start php80-php-fpm mariadb nginx
[root@localhost ~]# systemctl enable php80-php-fpm mariadb nginx
2.2、nginx 配置
# nginx 配置文件设置
server {
listen 80;
server_name www.itnzs.top;
location / {
root /usr/share/nginx/html;
index index.php;
}
location ~ \.php$ {
root /usr/share/nginx/html; #指定网站目录
fastcgi_pass 127.0.0.1:9000; #指定访问地址
fastcgi_index index.php; #指定默认文件
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; #站点根目录,取决于root配置项
include fastcgi_params; #包含nginx常量定义
}
}
# 重启nginx
systemctl restart nginx
2.3、数据库配置
# mysql 创建数据库
mysql -e "create database wordpress"
2.4、代码上传
# 代码上传
tar xf wordpress-6.1-zh_CN.tar.gz
rm -rf /usr/share/nginx/html/*
cp -r ./wordpress/* /usr/share/nginx/html
chmod -R 777 /usr/share/nginx/html