LNMP网络架构的搭建

news2024/12/25 13:12:21

操作准备:准备三台虚拟机 

 安装 MySQL 服务

(1)准备好mysql目录上传软件压缩包并解压

cd /opt
mkdir mysql
tar xf mysql-boost-5.7.44.tar.gz

(2)安装mysql环境依赖包

yum -y install ncurses ncurses-devel bison cmake openssl-devel gcc gcc-c++ make

(3)创建一个mysql用户

(4)进入软件包目录进行配置软件模块

cd /opt/mysql/mysql-boost-5.7.44

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8  \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

(5)编译

make -j 2 

(6)安装

make install

(7)修改/etc/my.cnf配置文件

先卸载mariadb,CentOS7默认情况下会安装mariadb

yum remove -y mariadb*

然后添加以下内容

[client]
port = 3306
socket=/usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port = 3306
character-set-server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket=/usr/local/mysql/mysql.sock
bind-address = 0.0.0.0
skip-name-resolve
max_connections=2048
default-storage-engine=INNODB
max_allowed_packet=16M
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

(8)修改 mysql 安装目录和 my.cnf 配置文件的属主属组

chown -R mysql:mysql /usr/local/mysql/
chown mysql:mysql /etc/my.cnf

(9)设置路径的环境变量

使用 echo 重定向输入到 /etc/profile 文件的末尾

echo 'export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib' >> /etc/profile	

运行 /etc/profile 文件

source /etc/profile

(10)进入 /usr/local/mysql/bin/ 目录,进行初始化数据库

./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

(11)将 mysql 添加到 systemctl 服务管理并开启 

cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/

systemctl daemon-reload
systemctl start mysqld.service
systemctl enable mysqld

(12)修改 mysql 的登录密码并授权远程登录

可以查看当前数据库相关信息

show databases;

安装 php 服务

(1)上传 php 软件包到 /opt/php 目录下

mkdir php   #在opt目录下面创建一个php目录用于存放php软件包

(2)安装 php 环境依赖包

yum -y install \
gd \
libjpeg libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

(3)解压 php 软件包

tar xf php-7.1.10.tar.bz2

(4)配置软件模版

切换到 /opt/php-7.1.10/ 目录下

cd /opt/php-7.1.10/

配置软件相关文件、路径、信息(必须在 /opt/php-7.1.10/ 目录下执行)

./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-fpm \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

(5)编译

make -j 2    #注意当前计算机最大支持运行的核的数量

(6)安装

make install

(7)将 php 的可执行程序文件放入路径环境变量的目录(用于系统识别)

创建软连接,用于路径优化

ln -s /usr/local/php/bin/* /usr/local/bin/
ln -s /usr/local/php/sbin/* /usr/local/sbin/

(8)调整主配置文件

cp /opt/php-7.1.10/php.ini-development /usr/local/php/lib/php.ini	
vim /usr/local/php/lib/php.ini

修改1170行

修改939行——设置时区

(9)调整进程服务配置文件

cd /usr/local/php/etc/
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf

修改17行——将pid的文件路径给打开

(10)调整扩展配置文件

cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

修改23、24行

修改36行——设置监听服务器地址

修改62行——修改允许访问的客户端地址

(11)创建php用户

useradd -M -s /sbin/nologin php

(12)启动php-fpm服务

cp /opt/php/php-7.1.10/sapi/fpm/php-fpm.service /usr/lib/systemd/system
systemctl daemon-reload
systemctl start php-fpm.service
systemctl enable php-fpm.service

查看端口

netstat -lntp | grep php

安装 Nginx 服务

(1)关闭防火墙

systemctl stop firewalld
systemctl disable firewalld
setenforce 0
vim /etc/sysconfig/selinux

(2)安装nginx环境依赖包

yum -y install pcre-devel zlib-devel openssl-devel gcc gcc-c++ make

(3)准备好nginx目录上传软件压缩包并解压

cd /opt
mkdir nginx
tar xf nginx-1.12.0.tar.gz

(4)创建运行用户

useradd -M -s /sbin/nologin nginx

(5)进入软件包目录进行配置软件模块

cd nginx-1.12.0/
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

(6)编译

make -j 2 

(7)安装

make install

(8)将 nginx 的可执行程序文件放入路径环境变量的目录(用于系统识别)

创建软连接,用于路径优化

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

(9)添加 Nginx 系统服务

vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

(10)添加权限并重启nginx服务

chmod 754 /lib/systemd/system/nginx.service
systemctl start nginx.service
systemctl enable nginx.service

(11)修改配置文件nginx.conf

重启nginx服务

systemctl restart nginx

(12)创建网页文件

mkdir -p /var/www/html
cd /var/www/html
vim test.php

文件内容

cd /usr/local/nginx/html/
vim zzr.html

文件内容

(13)nginx服务端安装rpcbind nfs-utils实现动态页面访问

yum install -y rpcbind nfs-utils
vim /etc/exports

共享文件

systemctl enable --now rpcbind nfs
exportfs -arv   #在线发布
showmount -e    #检查服务端

(14)php客户端

showmount -e
vim /etc/fstab

192.168.80.40:/var/www/html /var/www/html nfs defaults,_netdev 0 0

mkdir -p /ar/www/html   #创建目录
mount -a                #挂载目录

(15)网页登录验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1792652.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机网络之曼彻斯特编码和差分曼彻斯特编码

目录 前言 曼彻斯特编码 定义 策略 思路 差分曼彻斯特编码 定义 策略 思路 结束语 前言 今天是坚持写博客的第十九天,很高兴自己又坚持了一天,今天想送给自己一句李白《行路难》当中的诗词,希望我自己和大家都可以铭记于心&#x…

27、matlab傅里叶变换:fft()函数

1、fft 快速傅里叶变换 语法 Y fft(X) 使用快速傅里叶变换 (FFT) 算法计算 X 的离散傅里叶变换 (DFT)。 Y fft(X,n) 返回 n 点 DFT。 Y fft(X,n,dim) 返回沿维度 dim 的傅里叶变换。例如,如果 X 是矩阵,则 fft(X,n,2) 返回每行的 n 点傅里叶变换含…

微软不再允许Windows 11通过1@1.com绕过登录 但还有其他办法可以继续用

微软不再允许 Windows 11 通过 11.com 和 nothankyou.com 绕过登录,但断网的情况下使用 OOBE\BYPASSNRO 命令仍然是有效的。如果你在安装或重置系统时仍然需要创建本地账户,请直接使用 OOBE 命令。 在 Windows 11 家庭版和专业版中用户必须保持设备联网…

尚硅谷2024新版3小时速通Docker教程

尚硅谷2024新版3小时速通Docker教程 百度网盘:https://pan.baidu.com/s/1SncgHbdJehvZspjcrrbLSw?pwd6c27

linux 系统监控脚本

1.对CPU的监控函数 function GetCpu(){cpu_numgrep -c "model name" /proc/cpuinfocpu_usertop -b -n 1 | grep Cpu | awk {print $2} | cut -f 1 -d "%"cpu_systemtop -b -n 1 | grep Cpu | awk {print $4} | cut -f 1 -d "%"cpu_idletop -b -…

Github 2024-06-06 Go开源项目日报 Top10

根据Github Trendings的统计,今日(2024-06-06统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Go项目10Ollama: 本地大型语言模型设置与运行 创建周期:248 天开发语言:Go协议类型:MIT LicenseStar数量:42421 个Fork数量:2724 次关注人…

当边缘计算用在定位设备

什么是边缘计算? 边缘计算是个比较高大上的概念,在这里就不提众多官方与非官方的定义了,只说说自己的理解。 边缘计算就是在最靠近物理设备的使用现场,利用有限的硬件资源,完成设备层数据采集、协议转换、数据上传、…

Java | Leetcode Java题解之第120题三角形最小路径和

题目&#xff1a; 题解&#xff1a; class Solution {public int minimumTotal(List<List<Integer>> triangle) {int n triangle.size();int[] f new int[n];f[0] triangle.get(0).get(0);for (int i 1; i < n; i) {f[i] f[i - 1] triangle.get(i).get(i…

Chrome浏览器打开无痕模式的方法

快捷键&#xff1a;同时按住CtrlshiftN 如图&#xff0c;系统会新开一个无痕标签页&#xff0c;不需要了点右上角关闭就可以了。

探索计算机视觉:开启智能图像处理的新纪元

第一部分&#xff1a;计算机视觉概述与基本原理 计算机视觉&#xff0c;作为人工智能领域的重要分支&#xff0c;旨在让计算机具备处理和理解图像和视频数据的能力。随着深度学习技术的飞速发展&#xff0c;计算机视觉已经在许多实际应用场景中取得了显著的成果&#xff0c;如…

山东大学软件学院项目实训-创新实训-基于大模型的旅游平台(二十七)- 微服务(7)

11.1 : 同步调用的问题 11.2 异步通讯的优缺点 11.3 MQ MQ就是事件驱动架构中的Broker 安装MQ docker run \-e RABBITMQ_DEFAULT_USERxxxx \-e RABBITMQ_DEFAULT_PASSxxxxx \--name mq \--hostname mq1 \-p 15672:15672 \-p 5672:5672 \-d \rabbitmq:3-management 浏览器访问1…

RabbitMQ-直连交换机(direct)使用方法

RabbitMQ-默认读、写方式介绍 RabbitMQ-发布/订阅模式 目录 1、概述 2、直连交换机 3、多重绑定 4、具体代码实现 4.1 生产者部分 4.2 消费者部分 5、运行代码 6、总结 1、概述 直连交换机&#xff0c;可以实现类似路由的功能&#xff0c;消息从交换机发送到哪个队列…

详细分析Mysql中的SQL_MODE基本知识(附Demo讲解)

目录 前言1. 基本知识2. Demo讲解2.1 ONLY_FULL_GROUP_BY2.2 STRICT_TRANS_TABLES2.3 NO_ZERO_IN_DATE2.4 NO_ENGINE_SUBSTITUTION2.5 ANSI_QUOTES 前言 了解Mysql内部的机制有助于辅助开发以及形成整体的架构思维 对于基本的命令行以及优化推荐阅读&#xff1a; 数据库中增…

【C语言】详解函数(下)(庖丁解牛版)

文章目录 1. 前言2. 数组做函数形参3. 函数嵌套调用和链式访问3.1 嵌套调用3.2 链式访问 1. 前言 详解C语言函数(上)的链接&#xff1a;http://t.csdnimg.cn/EGsfe 经过对函数的初步了解之后,相信大家已经对C语言标准库里的函数已经有初步的认知了&#xff0c;并且还学会了如…

HashMap第2讲——put方法源码及细节

上篇文章介绍了HashMap在JDK 1.8前后的四大变化&#xff0c;今天就进入到put方法的源码解析。HashMap的设计非常巧妙&#xff0c;细节也很多&#xff0c;今天来看看部分细节&#xff0c;后续的文章会一一介绍。 ps&#xff1a;学习源码的目的不仅仅是为了了解它的运行机制&…

Java——Stream流(2/2):Stream流的中间方法、终结方法(方法、案例演示)

目录 Stream流的中间方法 方法 案例演示 Stream流的终结方法 方法 案例演示1 收集 案例演示2 Stream流的中间方法 方法 中间方法指的是调用完成后会返回新的Stream流&#xff0c;可以继续使用(支持链式编程)。 Stream提供的常用中间方法说明Stream<T> filter(P…

Ansible部署 之 zookeeper集群

简介 Ansible是近年来越来越火的一款轻量级运维自动化工具&#xff0c;主要功能为帮助运维实现运维工作的自动化、降低手动操作的失误、提升运维工作效率。常用于自动化部署软件、自动化配置、自动化管理&#xff0c;支持playbook编排。配置简单&#xff0c;无需安装客户端&am…

【小白专用 已验证24.5.30】ThinkPHP6 视图

ThinkPHP6 视图 模板引擎支持普通标签和XML标签方式两种标签定义&#xff0c;分别用于不同的目的 标签类型描述普通标签主要用于输出变量、函数过滤和做一些基本的运算操作XML标签也称为标签库标签&#xff0c;主要完成一些逻辑判断、控制和循环输出&#xff0c;并且可扩展 c…

keil下载及安装(社区版本)

知不足而奋进 望远山而前行 目录 文章目录 前言 Keil有官方版本和社区版本&#xff0c;此文章为社区版本安装&#xff0c;仅供参考。 1.keil MDK 2.keil社区版介绍 3.keil下载 (1)打开进入登录界面 (2)点击下载,跳转到信息页面 (3)填写个人信息,点击提交 (4)点击下载…

基于web的垃圾分类回收系统的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;管理员管理&#xff0c;用户管理&#xff0c;公告管理&#xff0c;运输管理&#xff0c;基础数据管理 用户账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;运输管理&#xff0c;公告…