【后端】LNMP环境搭建

长期更新各种好文,建议关注收藏!
本文近期更新完毕。


LNMP=linux+nginx+mysql+php

  • 需要的资源
    linux服务器
    web服务软件nginx
    对应的语言编译器+代码文件
    数据库mysql
  • 安装
    tar.gz包或者命令行安装
    进入root: sodu 或su
mkdir path/{server,soft} -p
#{}表示几个文件夹 
#-p: create parent directories as needed. If path/ doesn’t exist, it will create it. 

mv path/*  newpath #*表示所有文件

nginx

nginx提供web服务访问
安装nginx之前需要创建专用的启动用户,某个软件如果有root权限比较危险

useradd bootuser -s /sbin/nologin -M
tar xzf nginx-version.tar.gz
cd nginx-version
./configure --perfix=/data/server/nginx 
make#编译
make install#安装
gedit /data/server/nginx/conf/nginx.conf#修改配置文件
##user nobody;找到这句 改为user bootuser取消注释

/data/server/nginx/sbin/nginx#运行nginx 这个sbin里的nginx是可执行文件
  • ./configure --perfix=/data/server/nginx
    执行可执行程序configure
    安装到perfix指定目录下

设置完之后 外网访问服务器的ip地址,以及本服务器电脑访问localhost都应该能出现nginx默认网页

netstat -tnulp | grep nginx #查看是否启动服务
/data/server/nginx/sbin/nginx -s stop#关闭服务
/data/server/nginx/sbin/nginx -s reload#重启服务

mysql

mysql安装完具备2个软件,客户端(/data/server/mysql/bin/mysql启动 exit退出 )、服务端

useradd -s /sbin/nologin -M mysql

ln -s mysql-version-folder mysql #软连接

/data/server/mysql/scripts/mysql_intall_db --basedir=/data/server/mysql --datadir=/data/ --datadir=/data/server/mysql/data/ --user=mysql
#安装

#配置文件管理
mv /etc/my.cnf /etc/my.cnf-bak #更换名称
cp /data/server/mysql/support-files/my-default.cnf /etc/my.cnf

#启动命令配置
cp /data/server/mysql/support-files/mysql.server /etc/init.d/mysqld

#修改启动文件 's替换 #content1 #content2 # g所有东西找到做修改' content1替换为content2
sed -i 's#/usr/local/mysql#/data/server/mysql#g' /data/server/mysql/bin/mysqld_safe /etc/init.d/mysqld

#数据库权限设置
chown -R mysql.mysql /data/server/mysql/

#设置开机自启动
chkconfig --add mysqld
chkconfig mysqld on

#启动/停止/重启服务端
service mysqld start/stop/restart

netstat -tnulp | grep mysqld #查看是否启动服务

#配置环境变量
gedit /etc/profile
#末尾添加这条配置 输入的命令都在这个PATH里挨个找
PATH=/data/server/mysql/bin:$PATH
#配置文件生效
source /etc/profile
#连接服务端 没有密码
mysql -uroot -p

php

依赖软件 libiconv

cd /data/soft
tar zxf libiconv-1.14.tar.gz
cd libiconv-1.14
./configure --perfix=/usr/local/libiconv
make 
make install

cd /data/soft/
tar xzf php-5.3.29.tar.gz
cd php-5.3.29

#配置
ln -s /data/server/mysql/lib/libmysqlclient.so.18 /usr/lib64
touch ext/phar/phar.phar
./configure \
--perfix=/data/server/php-5.3.29 \
--with-mysql=/data/server/mysql \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp

make
make install

#php文件配置
cd /data/server
ln -s php-version php
#修改php.ini 开启session
cp /data/soft/php-version/php.ini-production /data/server/php/lib/php.ini
gedit /data/server/php/lib/php.ini #启动记事本

#找到下面内容
;session.save_path ="/tmp
#改为 删掉分号
session.save_path ="/tmp

#复制php-fpm配置文件,默认没有该文件但有备份文件
cp /data/server/php/etc/php-fpm.conf.default /data/server/php/etc/php-fpm.conf

#启动
/data/server/php/sbin/php-fpm
#关闭
pkill php-fpm
netstat -tnulp | grep php #查看是否启动服务

#nginx整合php
#修改nginx配置文件
cp /data/server/nginx/conf/nginx.conf /data/server/nginx/conf/nginx.conf-bak
gedit /data/server/nginx/conf/nginx.conf
#把server内容替换成
server{
	listen 80;
	server_name localhost;
	#静态请求处理location
	location / {
		root html;
		index index.php index.html index.htm;
	}
	#动态请求处理location
	location ~* .*\.(php|php5)?${
		root html;
		fastcgi_pass 127.0.0.1:9000;
		fastcgi_index index.php;
		include fastcgi.conf;
	}
}
/data/server/nginx/sbin/nginx -t
#重启nginx
/data/server/nginx/sbin/nginx -s reload

#编写简单的php程序
echo "<?php echo '<p>hello world</p>'; ?" > /data/server/nginx/html/test.php

#url: 127.0.0.1/test.php 可以看到

部署网站

上述服务都启动后。

cd /data/soft/
unzip code.zip #项目代码
mv /data/soft/code /data/server/nginx/html
#修改权限
chown -R www.www /data/server/nginx/html/code
#url:localhost/code

部署禅道

cd /data/soft/
unzip zentao.zip #项目代码
mv /data/soft/zentao/zentaopms/ /data/server/nginx/html/chandao
#修改权限
chown -R www.www /data/server/nginx/html/chandao
#url:localhost/chandao/www

Navicat设置

本机管理哪些能连本服务器,
打开navicat->mysql数据库->表user 显示哪些人可以连接
在这里插入图片描述
::1表示ip末尾是1的可以连接
修改其中一条为%表示都可以连接
在这里插入图片描述
改完后新建查询,输入下面执行,运行
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VSCode设置Playwright教程

1.安装扩展 打开VS Code&#xff0c;在扩展—>搜索"Playwright Test for VSCode"&#xff0c;点击安装 按快捷键CommandShiftP&#xff0c;输入install playwright&#xff0c;点击安装Playwright 安装成功会有如下提示 2.调试脚本 打开tests/example.spec.ts文…

RK3566和Robo_C的EMC防护设计细节

USB部分的防护细节&#xff1a; ROBO C的USB接口&#xff1a; PF级别的电容滤波&#xff1a; TVS电容&#xff08;TVS Capacitor&#xff09;&#xff1a;用于与TVS二极管配合&#xff0c;保护电路免受瞬态电压冲击。电容一般较小&#xff0c;通常为几十皮法&#xff08;pF&am…

MicroDiffusion——采用新的掩码方法和改进的 Transformer 架构,实现了低预算的扩散模型

介绍 论文地址&#xff1a;https://arxiv.org/abs/2407.15811 现代图像生成模型擅长创建自然、高质量的内容&#xff0c;每年生成的图像超过十亿幅。然而&#xff0c;从头开始训练这些模型极其昂贵和耗时。文本到图像&#xff08;T2I&#xff09;扩散模型降低了部分计算成本&a…

使用 Three.js 创建一个 3D 人形机器人仿真系统

引言 在这篇文章中&#xff0c;我们将探讨如何使用 Three.js 创建一个简单但有趣的 3D 人形机器人仿真系统。这个机器人可以通过键盘控制进行行走和转向&#xff0c;并具有基本的动画效果。 技术栈 HTML5Three.jsJavaScript 实现步骤 1. 基础设置 首先&#xff0c;我们需要…

【c++高阶DS】最小生成树

&#x1f525;个人主页&#xff1a;Quitecoder &#x1f525;专栏&#xff1a;c笔记仓 目录 01.最小生成树Kruskal算法Prim算法 01.最小生成树 连通图中的每一棵生成树&#xff0c;都是原图的一个极大无环子图&#xff0c;即&#xff1a;从其中删去任何一条边&#xff0c;生成…

自学记录鸿蒙API 13:实现人脸比对Core Vision Face Comparator

完成了文本识别和人脸检测的项目后&#xff0c;我发现人脸比对是一个更有趣的一个小技术玩意儿。我决定整一整&#xff0c;也就是对HarmonyOS Next最新版本API 13中的Core Vision Face Comparator API的学习&#xff0c;这项技术能够对人脸进行高精度比对&#xff0c;并给出相似…

2024/12/29 黄冈师范学院计算机学院网络工程《路由期末复习作业一》

一、选择题 1.某公司为其一些远程小站点预留了网段 172.29.100.0/26&#xff0c;每一个站点有10个IP设备接到网络&#xff0c;下面那个VLSM掩码能够为该需求提供最小数量的主机数目 &#xff08; &#xff09; A./27 B./28 C./29 D./30 -首先审题我们需要搞清楚站点与网…

redis cluster集群

华子目录 什么是redis集群redis cluster的体系架构什么是数据sharding&#xff1f;什么是hash tag集群中删除或新增节点&#xff0c;数据如何迁移&#xff1f;redis集群如何使用gossip通信?定义meet信息ping消息pong消息fail消息&#xff08;不是用gossip协议实现的&#xff0…

PrimeVue菜单模块(Menu),看api的重要性

以下是对PrimeVue菜单模块&#xff08;Menu&#xff09;的API属性的中文详解&#xff1a; 一、整体概述 PrimeVue的菜单&#xff08;Menu&#xff09;是一个支持动态和静态定位的导航/命令组件&#xff0c;其API通过定义一些辅助的属性&#xff08;props&#xff09;、事件等&…

STM32中断详解

STM32中断详解 NVIC 中断系统中断向量表相关寄存器中断优先级中断配置 外部中断实验EXTI框图外部中断/事件线映射中断步骤初始化代码实现 定时器中断通用定时器相关功能标号1&#xff1a;时钟源标号 2&#xff1a;控制器标号 3&#xff1a;时基单元 代码实现 NVIC 中断系统 STM…

从零开始开发纯血鸿蒙应用之逻辑封装

从零开始开发纯血鸿蒙应用 一、前言二、逻辑封装的原则三、实现 FileUtil1、统一的存放位置2、文件的增删改查2.1、文件创建与文件保存2.2、文件读取2.2.1、读取内部文件2.2.2、读取外部文件 3、文件删除 四、总结 一、前言 应用的动态&#xff0c;借助 UI 响应完成&#xff0…

《机器学习》——线性回归模型

文章目录 线性回归模型简介一元线性回归模型多元线性回归模型误差项分析一元线性模型实例完整代码 多元线性模型实例完整代码 线性回归模型简介 线性回归是利用数理统计中回归分析&#xff0c;来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法。 相关关系&…

【深度学习环境】NVIDIA Driver、Cuda和Pytorch(centos9机器,要用到显示器)

文章目录 一 、Anaconda install二、 NIVIDIA driver install三、 Cuda install四、Pytorch install 一 、Anaconda install Step 1 Go to the official website: https://www.anaconda.com/download Input your email and submit. Step 2 Select your version, and click i…

在HTML中使用Vue如何使用嵌套循环把集合中的对象集合中的对象元素取出来(我的意思是集合中还有一个集合那种)

在 Vue.js 中处理嵌套集合&#xff08;即集合中的对象包含另一个集合&#xff09;时&#xff0c;使用多重 v-for 指令来遍历这些层次结构。每个 v-for 指令可以用于迭代一个特定级别的数据集&#xff0c;并且可以在模板中嵌套多个 v-for 来访问更深层次的数据。 例如&#xff…

ip归属地是什么意思?ip归属地是实时定位吗

在数字化时代&#xff0c;IP地址作为网络设备的唯一标识符&#xff0c;不仅关乎设备间的通信&#xff0c;还涉及到用户的网络身份与位置信息。其中&#xff0c;IP归属地作为IP地址的地理位置信息&#xff0c;备受用户关注。本文将详细解析IP归属地的含义&#xff0c;并探讨其是…

基于BP训练深度学习模型(用于回归)以及验证误差值

用原生Python训练了一个BP网络&#xff0c;适合没有pytorch等环境的电脑&#xff0c;并用训练的模型对原始数据进行了预测&#xff0c;拿来估测比较误差值了&#xff0c;可以直接拿去用&#xff08;需根据个人数据来调训练次数、学习效率&#xff09;&#xff0c;代码在文章末。…

C#冒泡排序

一、冒泡排序基本原理 冒泡排序是一种简单的排序算法。它重复地走访要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果它们的顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换&#xff0c;也就是说该数列已经排序完成。 以一个简单的整数数…

折腾日记:如何让吃灰笔记本发挥余热——搭建一个相册服务

背景 之前写过&#xff0c;我在家里用了一台旧的工作站笔记本做了服务器&#xff0c;连上一个绿联的5位硬盘盒实现简单的网盘功能&#xff0c;然而&#xff0c;还是觉的不太理想&#xff0c;比如使用filebrowser虽然可以备份文件和图片&#xff0c;当使用手机使用网页&#xf…

从0入门自主空中机器人-2-1【无人机硬件框架】

关于本课程&#xff1a; 本次课程是一套面向对自主空中机器人感兴趣的学生、爱好者、相关从业人员的免费课程&#xff0c;包含了从硬件组装、机载电脑环境设置、代码部署、实机实验等全套详细流程&#xff0c;带你从0开始&#xff0c;组装属于自己的自主无人机&#xff0c;并让…

剑指Offer|LCR 013. 二维区域和检索 - 矩阵不可变

LCR 013. 二维区域和检索 - 矩阵不可变 给定一个二维矩阵 matrix&#xff0c;以下类型的多个请求&#xff1a; 计算其子矩形范围内元素的总和&#xff0c;该子矩阵的左上角为 (row1, col1) &#xff0c;右下角为 (row2, col2) 。 实现 NumMatrix 类&#xff1a; NumMatrix(…