LNMP简易搭建

目录

前言

一、拓扑图

二、NGINX配置

三、配置MySQL

四、配置php环境

五、部署应用

总结



前言

LNMP平台指的是将Linux、Nginx、MySQL和PHP(或者其他的编程语言,如Python、Perl等)集成在一起的一种Web服务器环境。它是一种常用的开发和部署网站的解决方案,适用于构建各种类型的网站和应用程序。

下面简要介绍每个组件的作用和功能:

  1. Linux:作为操作系统,提供稳定的基础环境,支持并发处理和高性能。

  2. Nginx:作为Web服务器和反向代理服务器,处理客户端请求并将它们转发给后端应用服务器,具有高性能和可扩展性。

  3. MySQL:作为关系型数据库管理系统,用于存储和管理网站的数据,提供高效的数据读写和查询功能。

  4. PHP:作为一种常用的编程语言,用于开发网站的后端逻辑和业务处理,与Nginx和MySQL进行沟通。

LNMP平台的优点包括:

  1. 性能优异:Nginx作为Web服务器具有高性能和高并发处理能力,可以处理大量的请求。

  2. 稳定可靠:Linux作为操作系统对稳定性有保证,并且MySQL作为数据库管理系统也很稳定,保证了网站的可靠性。

  3. 可扩展性:LNMP平台支持横向扩展,可以通过增加服务器节点和负载均衡来提高系统的性能和可用性。

  4. 社区支持:LNMP平台的每个组件都有庞大的开发者社区,提供了大量的文档、插件和技术支持。

需要注意的是,LNMP平台并不是唯一的选择,还有其他类似的解决方案,如LAMP(Linux、Apache、MySQL和PHP)、LEMP(Linux、Nginx、MySQL和PHP)、WAMP(Windows、Apache、MySQL和PHP)等。选择合适的平台取决于具体的需求和场景。


一、拓扑图

在三台主机上配防火墙、selinux、IP并测试通联性

复制代码
systemctl stop firewalld
setenforce 0

二、NGINX配置

1、下载NGINX

复制代码
wget https://nginx.org/download/nginx-1.20.2.tar.gz

2、解压并安装

复制代码
[root@bogon ~]# ls
anaconda-ks.cfg       公共  图片  音乐
initial-setup-ks.cfg  模板  文档  桌面
nginx-1.20.2.tar.gz   视频  下载
[root@bogon ~]# tar -xf nginx-1.20.2.tar.gz 
[root@bogon ~]# ls
anaconda-ks.cfg       nginx-1.20.2.tar.gz  视频  下载
initial-setup-ks.cfg  公共                 图片  音乐
nginx-1.20.2          模板                 文档  桌面
[root@bogon ~]# cd nginx-1.20.2/
[root@bogon nginx-1.20.2]# ls
auto     CHANGES.ru  configure  html     man     src
CHANGES  conf        contrib    LICENSE  README
[root@bogon nginx-1.20.2]# ./configure --prefix=/usr/local/nginx

在安装过程中会出现缺少依赖的提示,我们安装依赖

解决后继续安装./configure --prefix=/usr/local/nginx

又发现报错,缺少依赖;继续装依赖

解决依赖后继续安装./configure --prefix=/usr/local/nginx

OK,开始安装make && make install

复制代码
make && make install

完成

3、稍作优化

复制代码
ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

4、修改配置文件vim /usr/local/nginx/conf/nginx.conf

第一处

第二处 #此处是针对php环境的修改:IP写成php环境主机的IP、目录修改成如下用于测试、后缀

5、书写测试页面

复制代码
 vim /usr/local/nginx/html/index.html

内容如下:

修改文件名

复制代码
 mv /usr/local/nginx/html/index.html /usr/local/nginx/html/index.php

6、启动nginx并监听端口

复制代码
[root@bogon nginx-1.20.2]# nginx -c /usr/local/nginx/conf/nginx.conf
[root@bogon nginx-1.20.2]# netstat -anput |grep nginx
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      63511/nginx: master 
[root@bogon nginx-1.20.2]# 

7、访问失败,php环境还未配置

三、配置MySQL

来到192.168.115.129主机

1、安装mariadb

复制代码
 yum -y install mariadb mariadb-server

2、启动mairadb

复制代码
[root@bogon ~]# systemctl start mariadb.service 
[root@bogon ~]# netstat -anput |grep mysql
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      125211/mysqld   

3、此处可以添加硬盘在主机上存储数据

扫描硬盘、格式化并硬盘分区

复制代码
[root@bogon scsi_host]# for i in `ls ./`;do echo "- - -">$i/scan;done
[root@bogon scsi_host]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sdb               8:16   0    1T  0 disk 
sr0              11:0    1  9.5G  0 rom  /run/media/root/
[root@bogon scsi_host]# mkfs -t xfs /dev/sdb
meta-data=/dev/sdb               isize=512    agcount=4, agsize=67108864 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=268435456, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=131072, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@bogon scsi_host]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

Device does not contain a recognized partition table
使用磁盘标识符 0x4eb4f908 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-2147483647,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-2147483647,默认为 2147483647):
将使用默认值 2147483647
分区 1 已设置为 Linux 类型,大小设为 1024 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@bogon scsi_host]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   60G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   59G  0 part 
  ├─centos-root 253:0    0 38.3G  0 lvm  /
  ├─centos-swap 253:1    0    2G  0 lvm  [SWAP]
  └─centos-home 253:2    0 18.7G  0 lvm  /home
sdb               8:16   0    1T  0 disk 
└─sdb1            8:17   0 1024G  0 part 
sr0              11:0    1  9.5G  0 rom  /run/media/root/
[root@bogon scsi_host]# 

创建物理卷、卷组、逻辑卷并将其自动挂载到mysql数据存储目录上

复制代码
###创建分区


[root@bogon scsi_host]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@bogon scsi_host]# vgcreate -s 200G mysql_data_vg /dev/sdb1 
  Volume group "mysql_data_vg" sucRounding up size to full physical extent 200.00 GiB
  Logical volume "mysql_data_lv" created.
cessfully created

####自动挂载
#查看UUID
[root@bogon scsi_host]# blkid
/dev/sda1: UUID="3c53f9b7-af27-45a0-847d-c8b51a61b4e8" TYPE="xfs" 
/dev/sda2: UUID="OzzZJ3-ONL3-zWXH-eLIM-l911-W2KJ-4R8b2z" TYPE="LVM2_member" 
/dev/sr0: UUID="2020-11-02-15-15-23-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/mapper/centos-root: UUID="b8b20542-652c-41b9-ad78-67da2a038bf2" TYPE="xfs" 
/dev/mapper/centos-swap: UUID="790fd44d-6a6c-45cb-8c89-d47ece6e2bfa" TYPE="swap" 
/dev/mapper/centos-home: UUID="10964595-0e9e-426f-8ef3-daa2922cdcb2" TYPE="xfs" 
/dev/sdb1: UUID="MKEsmx-K7lq-Z30T-5EgL-9owN-0GST-on0Xf9" TYPE="LVM2_member" 
#查看mysql的数据存放目录
vim /etc/mysql
此字段就是datadir=/var/lib/mysql
#挂载
vim /etc/fstab
插入UUID=MKEsmx-K7lq-Z30T-5EgL-9owN-0GST-on0Xf9 /var/lib/mysql  xfs defaults 0 0
测试mount -a
查看 df -TH

4、登录MySQL并且创建数据库hy和远程登录用户用于部署应用

复制代码
[root@bogon ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> CREATE DATABASE `hy` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on hy.* to 'hy'@'192.168.115.%' identified by'123.com';
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> 

5、此处可以登录其他主机安装mysql来测试我们的远程登录账户是否可以正常使用

复制代码
[root@bogon nginx-1.20.2]# mysql -u hy -h 192.168.115.130 -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 5.5.68-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hy                 |
| test               |
+--------------------+
3 rows in set (0.00 sec)

MariaDB [(none)]> 

四、配置php环境

1、移除低版本php环境

复制代码
yum remove php

2、安装高版本php环境

复制代码
##更新源
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
##安装
yum install php72w php72w-cli php72w-common php72w-devel php72w-embedded php72w-fpm php72w-gd php72w-mbstring php72w-mysqlnd php72w-opcache php72w-pdo php72w-xml php72w-ldap php72w-mcrypt

查看php版本

3、编辑 php的配置文件/etc/php-fpm.d/www.conf

修改成自己的地址

修改成NGINX服务器的IP

4、创建目录、编辑测试页面

复制代码
mkdir /usr/local/nginx/html -p

vim /usr/local/nginx/html/index.php

写入

5、启动并检查端口

复制代码
[root@bogon ~]# systemctl start php-fpm.service 
[root@bogon ~]# netstat -anput |grep php
tcp        0      0 192.168.115.129:9000    0.0.0.0:*               LISTEN      82767/php-fpm: mast 
[root@bogon ~]# 

6、浏览器访问测试

五、部署应用

仅供参考:

Disucz! 下载_免费搭建网站_开源建站系统下载_Discuz!官方_为您提供全方位建站服务!

选择对应的Disucz版本,同时兼顾它对php版本的要求

将下载好的Disucz分别部署在NGINX和php两台主机中

1、在php上部署:解压并移动位置

复制代码
[root@bogon ~]# ls
anaconda-ks.cfg                   公共  文档
Discuz_X3.5_SC_UTF8_20230726.zip  模板  下载
initial-setup-ks.cfg              视频  音乐
phpmyadmin依赖                    图片  桌面
[root@bogon ~]# unzip Discuz_X3.5_SC_UTF8_20230726.zip 
[root@bogon ~]# ls
anaconda-ks.cfg                   readme        视频
Discuz_X3.5_SC_UTF8_20230726.zip  readme.html   图片
initial-setup-ks.cfg              upload        文档
LICENSE                           utility.html  下载
phpmyadmin依赖                    公共          音乐
qqqun.png      
[root@bogon ~]# mv upload/* /usr/local/nginx/html
mv:是否覆盖"/usr/local/nginx/html/index.php"? yes
[root@bogon ~]# 

修改 属主为Apache

复制代码
[root@bogon ~]# chown apache -R /usr/local/nginx/html/*
[root@bogon ~]# ll /usr/local/nginx/html/*

2、在NGINX上同理部署

解压并移动位置

复制代码
[root@bogon ~]# ls
anaconda-ks.cfg                   公共  下载
Discuz_X3.5_SC_UTF8_20230726.zip  模板  音乐
initial-setup-ks.cfg              视频  桌面
nginx-1.20.2                      图片
nginx-1.20.2.tar.gz               文档
[root@bogon ~]# unzip Discuz_X3.5_SC_UTF8_20230726.zip
[root@bogon ~]# ls
anaconda-ks.cfg                   readme        图片
Discuz_X3.5_SC_UTF8_20230726.zip  readme.html   文档
initial-setup-ks.cfg              upload        下载
LICENSE                           utility.html  音乐
nginx-1.20.2                      公共          桌面
nginx-1.20.2.tar.gz               模板
qqqun.png                         视频
[root@bogon ~]# mv upload/* /usr/local/nginx/html/
mv:是否覆盖"/usr/local/nginx/html/index.php"? yes

创建程序用户,并修改属主

复制代码
[root@bogon ~]# useradd nginx -s /sbin/nologin -M
[root@bogon ~]# chown nginx -R /usr/local/nginx/html/*
[root@bogon ~]# ll /usr/local/nginx/html/*
-rw-r--r--  1 nginx root  494 8月  12 00:00 /usr/local/nginx/html/50x.html
-rw-r--r--  1 nginx root 2869 7月  27 00:14 /usr/local/nginx/html/admin.php
-rw-r--r--  1 nginx root  727 7月  27 00:14 /usr/local/nginx/html/api.php

3、浏览器访问测试

按照提示操作

在这一步中将之前在MySQL创建的库名、用户写上(其他的根据需求自己填写)

成功安装


总结

在本次实验中需要注意的问题:

1、关于配置NGINX和php的配置文件时,注意两者地址的关系;在设置访问路径时要两者保持一致;

2、根据Discuz的要求部署适合的php环境

3、书写测试页面,测试是否可以解析网页

4、注意属主的修改

相关推荐
考虑考虑3 小时前
docker compose V2版本新属性
运维·后端·自动化运维
风哥2号4 小时前
数据库教程FGMT27‑MySQL数据库基础知识与体系架构
数据库·mysql
AlanBruce4 小时前
摩尔信使MThings功能综述与应用使用指南
linux·自动化·plc·mthings·摩尔信使
小小的木头人4 小时前
Ubuntu Samba修改端口绕过445封禁挂载
运维·ubuntu
YangYang9YangYan4 小时前
2026 校招商品分析岗位 JD 拆解,核心指标、工具与面试考点
大数据·数据库·数据分析
西安栈上月明软件科技5 小时前
从业务黑话到本体图谱:OAG本体建模五步法(西安老系统AI化改造实战)
数据库·人工智能·架构
anxiao_m6 小时前
跨云跨机房大数据迁移怎么选?不同场景工具适配指南
数据库·云启快传
wdfk_prog6 小时前
ROS教程:01 搭建 ROS1 Noetic Docker 开发环境
运维·缓存·docker·容器·ros
SEO_juper6 小时前
Java 并发编程实战:从线程基础到高并发架构
运维·人工智能·爬虫·chatgpt·seo
szephyr7 小时前
Docker + Compose 实战:把本地项目一键搬到云服务器,附完整配置
运维·docker·容器·部署·云服务器