LNMP网站搭建

news2025/4/18 17:10:49

安装宝塔面板一键安装LNMP

LNMP

LNMP含义

L代表Linux 用来当作程序运行的系统平台
N代表Nginx 用来提供WEB网页服务
M代表Mysql 用来存储管理网站数据
P代表PHP 用来处理动态资源

LNMP搭建方法

1. yum安装依赖环境

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

在这里插入图片描述
安装完毕
2.创建Nginx用户,作为专门使用Nginx的用户,可以精准控制文件夹权限

useradd -M -s /sbin/nologin nginx

3.这里使用,编译安装Nginx程序,编译安装可用选择自己Nginx先要的模块,可以更好的使用Nginx

Nginx可以去Nginx官网下载
写文章时Nginx跟新至1.24版本故选择1.22版本进行下载使用

cd /opt
wget http://nginx.org/download/nginx-1.22.1.tar.gz
tar xf nginx-1.22.1.tar.gz

下载Nginx-1.22到/opt目录下,并且解归档
在这里插入图片描述

编译安装Nginx

进入/opt/nginx-1.22.1/src/core/nginx.h修改版本号
在这里插入图片描述
修改13 14行 如下图
我修改成Apache版本号是2.3.9
在这里插入图片描述

编译安装Nginx

./configure \
--prefix=/apps/nginx \   #指定安装路径  
--user=nginx \         	 #指定用户名字
--group=nginx \			 #指定用户组
--with-http_stub_status_module    #安装状态统计模块

编译Nginx

make -j4  && make install 

安装完成
在这里插入图片描述
为了方便管理Nginx需要写一个service文件

vim /lib/systemd/system/nginx.service
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
PIDFile=/apps/nginx/logs/nginx.pid
ExecStart=/apps/nginx/sbin/nginx
ExecReload=/bin/kill -1 $MAINPID
ExecStop=/bin/kill -3 $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target

刷新service文件列表
启动服务

systemctl daemon-reload
systemctl start nginx

在这里插入图片描述
设置软连接方便使用nginx命令

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

设置权限

chmod 777 /lib/systemd/system/nginx.service
nginx -V    #查看Nginx安装信息

在这里插入图片描述

安装Mysql数据库

1、安装Mysql环境依赖包

yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel libarchive-devel boost-devel   ncurses-devel gnutls-devel libxml2-devel openssl-devel libevent-devel libaio-devel

2、创建Mysql用户,方便管理

useradd -M -s /sbin/nologin  mysql

3、编译安装Mysql
解压MySQL安装包,并进入文件夹

 tar xfv mysql-boost-5.7.20.tar.gz
 cd mysql-5.7.20/

#设置安装模块与安装路径
cmake \
-DCMAKE_INSTALL_PREFIX=/apps/mysql \
-DMYSQL_UNIX_ADDR=/apps/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/apps/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=/apps/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1


make -j4 && make install    #四核编译

在这里插入图片描述
编译安装完成

4、修改mysql 配置文件

vim /etc/my.cnf
[client]
port = 3306
socket=/usr/local/mysql/mysql.sock
 
[mysqld]
user = mysql
basedir=/apps/mysql
datadir=/apps/mysql/data
port = 3306
character-set-server=utf8
pid-file = /apps/mysql/mysqld.pid
socket=/apps/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

5、设置Ngixn权限

chown -R mysql:mysql /apps/mysql/
chown mysql:mysql /etc/my.cnf

6、设置环境变量

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

source /etc/profile

7、初始化数据库

cd /apps/mysql/bin/
./mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/apps/mysql \
--datadir=/apps/mysql/data

初始化完成

在这里插入图片描述

8、添加mysql系统服务

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

刷新系统服务
启动MySQLD

systemctl daemon-reload
systemctl start mysqld

在这里插入图片描述
成功启动

9、
设置数据库

mysqladmin -u root -p password 

在这里插入图片描述

编译安装php

1、将安装PHP 所需软件包传到/opt目录下
2、安装GD库和GD库关联程序,用来处理和生成图片

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、编译安装

./configure \
--prefix=/apps/php \
--with-mysql-sock=/apps/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
make && make install

4、调整主配置文件

cp /opt/php-7.1.10/php.ini-development /apps/php/lib/php.ini
vim /apps/php/lib/php.ini

–1170行–修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
–939行–取消注释,修改
date.timezone = Asia/Shanghai

在这里插入图片描述

/apps/php/etc
cp  php-fpm.conf.default php-fpm.conf
vim php-fpm.conf

–17行–去掉";"注释
pid = run/php-fpm.pid
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf

5、启动php-fpm
/apps/php/sbin/php-fpm -c /apps/php/lib/php.ini
netstat -anpt | grep 9000
在这里插入图片描述
启动成功

#PHP-FPM(FastCGI Process Manager:FastCGI 进程管理器)是一个 PHPFastCGI 管理器, 由于Nginx服务器不能处理动态页面,需要由 Nginx 把动态请求交给 php-fpm 进程进行解析。

cd /opt/php-7.1.10/sapi/fpm
cp php-fpm.service /usr/lib/systemd/system/php-fpm.service
systemctl restart php-fpm.service

配置 Nginx 支持 PHP 解析

vim /apps/nginx/conf/nginx.conf
–65行–取消注释,修改
在这里插入图片描述
systemctl restart nginx.service
搭建完成

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

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

相关文章

Cascade-MVSNet CVPR-2020 学习笔记总结 译文 深度学习三维重建

文章目录 4 Cascade-MVSNet CVPR-20204.0 主要特点4.1 背景介绍4.2 代价体构造回顾4.3 Cascade-MVSNet4.4 Loss的设置4.5 Cascade-MVSNet实战操作4.6 总结4 Cascade-MVSNet CVPR-2020 深度学习三维重建 cascade-MVSNet-CVPR-202(源码、原文、译文 )下载 4.0 主要特点 采用特…

一阶高通滤波器(博途SCL代码)

高通滤波器与低通滤波器刚好相反,允许信号的高频分量通过,可以和低通滤波器组合使用,组成带通滤波器。一阶低通滤波器相关算法介绍,可以查看下面文章链接: PLC信号处理系列之一阶低通(RC)滤波器算法_plc滤波算法程序_RXXW_Dor的博客-CSDN博客1、先看看RC滤波的优缺点 优点…

C#中的IQueryable vs IEnumerable (二)

概要 在前面的文章中,本人曾经分析了IQueryable和 IEnumerable两个接口的异同点。但是整个分析过程,侧重于基本概念层面,本文从设计和代码应用的角度来分析它们的区别。 现象讨论 相比于IEnumerable,IQueryable多了一个Express…

4.k8s部署私人仓库并且部署java服务案例

文章目录 前言一、搭建私人仓库1.1 拉取仓库镜像1.2 创建一个文件夹用来放用户名密码,然后在新创建一个账户1.3 Registry服务默认会将上传的镜像保存在容器的/var/lib/registry,我们将主机的/opt/registry目录挂载到该目录,即可实现将镜像保存到主机的/o…

多线程-锁的种类

1 作用 Java中的锁主要用于保障多并发线程情况下数据的一致性。在多线程编程中为了保障数据的一致性,我们通常需要在使用对象或者方法之前加锁,这时如果有其他线程也需要使用该对象或者该方法,则首先要获得锁,如果某个线程发现锁正在被其他线程使用,就会…

案例研究|农业信息化企业天演维真的堡垒机选型思路与落地实践

浙江天演维真网络科技股份有限公司(以下简称为“天演维真”)成立于2004年,是中国领先的乡村振兴数字化服务整体解决方案提供商。作为中国品牌农业信息化服务的先行者、中国农产品数字身份识别技术开创者,天演维真的产品已助力全国…

【Python】Python基础语法

总感慨万千,虽只道寻常 文章目录 前言1. python与Java的主要区别2. 数据类型3. 输入与输出3.1 输入3.2 输出 4. 注释5. 运算符6. 条件语句7. 循环8. 函数9. 列表9.1 创建9.2 根据下标访问元素9.3 列表切片9.4 遍历9.5 插入元素9.6 查找元素下标9.7 删除元素9.8 列表…

Spring Boot - Junit4 / Junit5 / Spring Boot / IDEA 关系梳理

文章目录 PreJunit4 / Junit5 / Spring Boot / IDEAIDEA版本Spring-Boot-Older-Release-NotesSpringBootTest 起源 & Spring-Boot-1.4-Release-Notes2.0.0.RELEASE ----- 2.0.9.RELEASE2.1.0.RELEASE ----- 2.1.18.RELEASE2.2.0.RELEASE ~ 2.2.13.RELEASE2.3.0.RELEASE ~ 2…

记一次线程堵塞(挂起)导致消息队列积压

1 背景 A服务作为生产者,每天发送上千万的mq消息,每一个消息包含500个用户ids数据。B服务作为消费者,接受MQ消息并通过http调用第三方请求进行业务处理,消费组启用了rabbitmq的多线程消费组,一个实例并发40个mq消费者…

索尼mp4变成rsv修复案例(ILME-FX3)

索尼mp4的修复案例讲过很多,这次是索尼的ILME-FX3也算是一个畅销的机型,一般索尼没有封装的文件是RSV文件,但是极少遇到有多个RSV文件的,下边我们来讲下这个特殊案例。 故障文件:4个RSV文件,大小在1.78G~28G多 故障现…

(测评补单)Lazada、Shopee、Zalora:探索东南亚电商市场

随着互联网的发展,电子商务在东南亚地区迅速崛起。在这个充满活力和潜力的市场中,Lazada、Shopee和Zalora成为了三大领先的电商平台。它们以其独特的商业模式和创新的服务,吸引了数百万用户。本文将深入探讨这三家电商巨头的发展历程、核心竞…

一文讲透机器学习超参数调优!

公众号:尤而小屋作者:Peter编辑:Peter 大家好,我是Peter~ 本文的主题:机器学习建模的超参数调优。开局一张图: 文章很长,建议直接收藏~ 一、什么是机器学习超参数? 机器学习超参数…

代码随想录训练营 打家劫舍

代码随想录训练营 dp 198. 打家劫舍🌸code 213. 打家劫舍 II🌸分析code 337.打家劫舍 III🌸 198. 打家劫舍🌸 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素…

FastChat工作原理解析

在了解FastChat如何完成大模型部署前,先了解下Huggingface提供的Transformer库。Hugggingface提供的Transformer库 Hugging Face 的 Transformers 库是一个用于自然语言处理(NLP)任务的 Python 库,旨在简化和加速使用预训练语言模…

Vue3 中的几个坑,你都见过吗?

Vue3 目前已经趋于稳定,不少代码库都已经开始使用它,很多项目未来也必然要迁移至 Vue3。本文记录我在使用 Vue3 时遇到的一些问题,希望能为其他开发者提供帮助。 1. 使用 reactive 封装基础数据类型 传统开发模式中,数据声明很简…

[论文阅读]Visual Attention Network原文翻译

[论文链接]https://arxiv.org/abs/2202.09741 摘要 虽然一开始是被设计用于自然语言处理任务的,但是自注意力机制在多个计算机视觉领域掀起了风暴。然而,图像的二维特性给自注意力用于计算机视觉带来了三个挑战。(1)将图像视作一…

怎样获取字符串数组的长度_使用sizeof(array) / sizeof(array[0])

使用sizeof() C、C中没有提供直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在使用时…

Unity 性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing: 深入解析与实用案例

Unity 性能优化之Shader分析处理函数ShaderUtil.HasProceduralInstancing: 深入解析与实用案例 点击封面跳转到Unity国际版下载页面 简介 在Unity中,性能优化是游戏开发过程中非常重要的一环。其中,Shader的优化对于游戏的性能提升起着至关重要的作用。…

redis缓存详解

一、Redisson分布式锁存在问题 1、基于redis实现的分布式锁,如果redis集群出现master宕机,而从节点没有接收到锁对应的key,被选举成新的master就可能存在被其它线程加锁成功则存在加锁问题 2、 基于上面的问题,可以把redis分为多…

SpringBoot国际化配置组件支持本地配置和数据库配置

文章目录 0. 前言i18n-spring-boot-starter1. 使用方式0.引入依赖1.配置项2.初始化国际化配置表3.如何使用 2. 核心源码实现一个拦截器I18nInterceptorI18nMessageResource 加载国际化配置 3.源码地址 0. 前言 写个了原生的SpringBoot国际化配置组件支持本地配置和数据库配置 背…