当前位置: 首页 > news >正文

八LAMP搭建

# LAMP
## 一、知识回顾
### FTP samba nfs 特点
- 借用Linux用户作为映射用户,进行权限管理
- 软件本身还有管理控制权限
#### 客户端连接到服务器后进行读写执行等操作
,必须同时具有:
- 软件许可的权限
   vsftpd:
     anon upload enable=YES
- 文件系统许可的权限
    chmod 755 filename
    chown user:qroup filename
- ftp和samba区别: ftp仅支持客户端操作,samba支持服务器端操作(内网用得多)场景:多人共享同一份资源时,使用Samba也可降低对每个用户存储空间的要求。
### linux搭建samba服务器步骤
``` shell
    yum -y install samba
    mkdir -p /data/mysql 要共享的目录
     cd /etc/samba
     cp -a smb.conf.example smb.conf # 把模板文件复制给conf
     vim smb.conf 
     useradd laow  创建samba用户
     pdbedit -a laow  给samba用户设置密码
     systemctl enable --now smb  启动服务
     chown -R laow.laow /data/mysql/ 给samba用户添加服务目录的权限
```
smb.conf要写入的规则

![[Pasted image 20240914224341.png]]
如何让Linux客户端永久挂载samba服务器
![[Pasted image 20240914224912.png]]


## 二、LAMP搭建
### L+A+M+P搭建
L: Linux
A: Apache(httpd)
M:MySQL(Mariadb)
P:PHP、python、perl
### 如何正确地部署和选择合适的LAMP环境?
- 在部署过程中,建议结合源代码编译核心软件(如使用MySQL源码而非RPM包)与使用RPM包安装非核心依赖软件的方式来简化流程。
### 部署LAMP环境的方法:
- 最简单RPM包
``` shell 
  yum -y isntall httpd mariadb-server php
  cd /var/www/html/
  echo "hello" > index.html
  systemctl start httpd

```
- 安装一键安装脚本 [下载 - LNMP一键安装包](https://lnmp.org/download.html)
``` shell 
  tar -xvf lnmp1.9-full.tar.gz
  cd lnmp1.9-full/
   ./install.sh lamp
   #安装完部署俩个小项目
   #1
   cd /home/wwwroot/default/
   mkdir ./bak
mv index.html lnmp.gif ocp.php phpinfo.php  p.php  /bak  #保留phpmyadmin
   unzip /root/typecho.zip -d /home/wwwroot/default/
   chown -R www.www * #得让运行这个进程的用户对这些文件有权限
   cd themes/ #替换模组的文件
   #添加插件
   unzip /root/Snow.zip -d /home/wwwroot/default/usr/plugins/
   cd /home/wwwroot/default/usr/plugins
   chown -R www.www *
   #2
   unzip /root/Discuz_X3.3_SC_UTF8.zip
  mkdir -pv /home/wwwroot/default/bbs
   mv upload/ /home/wwwroot/default/bbs
    cd /home/wwwroot/default/
   chown -R www.www bbs/ *  #得让运行这个进程的用户对这些文件有权限
```
   -  细节  得让运行这个进程的用户对这些文件有权限 并提前创建好数据库用户 并查看3306 80 22 端口是否开启

   ![[Pasted image 20240920195248.png]]

![[Pasted image 20240920194903.png]]
  ![[Pasted image 20240920194705.png]]
![[Pasted image 20240920195024.png]]

## 三 手动源码编译安装(最难)

 
-  源码软件安装:  
-  ./configure   #将以下检查和指定的参数都写入到MakeFile文件中,让make命令作为参考进行编译  
  #安装前环境检查脚本  
  #1.  编译工具是否安装  
  #2.  软件之间的依赖(解决方案:1. 跟随编译(如Apache中的APR和APR-Util)、2. 提前编译(编译nginx要提前编译gcc zlib-devel pcre -devel )、3. rpm解决依赖)  
  #3.  指定安装路径 --prefix=PATH 
   #4.  --with-* --without-* #是否关联其他软件作为依赖  
  #5.  --enable、--disable  #是否启用本身自带的某功能  
  #6. ./configure --help | grep -E "(enableldisable)" 查看帮助命令 --enable-rewrite=shared 用于处理动态资源
-  make #将源码编译成二进制  
  #MakeFile作为编译参考文件  
-  make install  
  #将make编译之后的二进制文件,按照prefix选项指定的路径进行复制粘贴并修改属性(归属和权限)  
  
 
-  cpio  进行文件或目录的备份,类似于打包操作  
   优势:可以按照文件的绝对路径进行打包,解包时按照绝对路径还原 (CPIO是备份工具他把分散在各个地方的这些文件的绝对路径汇总在一起,做成了一个备份文件,然后再在这个备份文件外边套一个RPM的包的后缀名。发给别人使用)
- 共有库和私有库:编译指定了自己的安装路径之后,编译后生成的函数文件的存放位置叫私有库。编译安装时没有指定路径,安装之后放到usr/lib ,usr/lib64等目录下,称为叫公共库。
- 网站迁移:设置域名重写规则。即当用户通过旧域名访问网站时,服务器会自动重定向至新域名
### 编译安装
-  **libxml2** :解析器是处理XML语言所必需的工具
- **libmcrypt** **mhash**  **mcrypt** 支持不同的加密算法,如哈希算法、SHA算法和MD5算法,并需要它们相互补充
- **zlib** :找到CFLAGS=-O3 -DUSE_MMAP,在后面加入 **-fPIC** FPIC选项是为了解决特定版本兼容性问题
- **libpng** **jpeg6** 需要特定的解码软件支持,并在服务器端正确配置安装路径
- **freetype** 用于字体渲染和字体转换,支持多种字体如宋体、黑体、微软雅黑
-  64位系统与32位软件兼容性问题?通过把32位按照软链接方式64位软件链接的兼容问题
- 安装Apache时,需先解决APR和PCRE问题  apache的特定的文件——mime.types文件,该文件位于apache安装目录下的conf/子目录内,用来帮助Apache通过后缀名识别文件的具体类型。
- MySQL初始化脚本(mysql.server)。该脚本包含了MySQL启动、停止和重载等动作的基本逻辑启动:/usr/local/mysql/bin/mysql -u root -p 创建中文数据库 create database test2 character set utf8;
- 具体步骤 - https://blog.csdn.net/gsdgdg00/article/details/142480086?fromshare=blogdetail&sharetype=blogdetail&sharerId=142480086&sharerefer=PC&sharesource=gsdgdg00&sharefrom=from_link
![[Pasted image 20240923194643.png]]
### 注意和报错

- 问题在编译时缺乏树状依赖(如何寻找并安装缺失的依赖文件如expat.h)去这https://rpm.pbone.net/ 找对应版本的依赖包


![[Pasted image 20240923193008.png]]

![[Pasted image 20240923193735.png]]

- make 编译中止时要在编译前先make clean 在make  make -j是不支持老版本的软件的
- **apache报错提示:**若启动时提示/usr/local/apache2/modules/mod_deflate.so无权限,可关闭SELinux解决,类似此类.so文件不能载入或没有权限的问题,都是SELinux问题,MySQL和Apache都可能有类似问题。
- **apache警告提示:**发现启动服务提示:AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message **解决办法:**打开主配置文件httpd.conf      搜索ServerName    (约在200行左右)改为ServerName  localhost:80(并且去掉前面的#注释)
- 备份新方法
![[Pasted image 20240923194125.png]]
## 四、==LAMP原理讲解==

![[Pasted image 20240920195932.png]]

  -  文件本身不会因为被访问而发生变化的资源叫静态资源,文件本身会因为被访问而发生变化的资源叫动态资源
  - 如何确保项目安装后能顺利连接数据库?在项目安装过程中,需要将连接数据库的参数(如账号、密码、数据库IP等)保存在配置文件中,以便后续每次请求数据库时直接调用这些信息进行连接,确保项目能够正常运行。
  - 登录流程是如何进行的?登录流程中,用户在网页表单填写账号和密码后提交,服务器通过调用PHP函数连接数据库,根据提交的账号信息查询数据库,并将用户提交的密码与数据库中的密码进行比对,若一致则身份验证成功,用户成功登录。
  - apache接收到请求后如何处理?当apache接收到用户请求后,它会查看请求的URL地址栏内容,如果用户请求的是静态资源,apache可以从硬盘加载到内存并直接响应给客户端。但如果用户请求的是动态资源,apache则需要解析网页内容、连接数据库并处理数据变化。

## 五、==命令和问题扩展==

-  使用dd命令创建swap空间  
``` shell
    dd if=/dev/zero of=/dev/swapfile bs=1M count=2048  #扩容swap 
   mkswap /dev/swapfile  #格式化swap内存
   swapon /dev/swapfile   #开启swap内存
   vim /etc/fstab      #永久挂载swap
```

  -  给文件打补丁

  ``` shell 
     diff  #生成补丁文件  
     patch #给旧文件打补丁  
     示例:
      vim a.txt #旧文件
      vim b.txt #新文件
     diff -u a.txt b.txt > p.patch  #生成补丁文件p.patch 
     patch a.txt < p.patch  #给a文件打补丁
     cat a.txt  #查看内容是否发生变化

```

- 其他开发平台介绍
LTMJ  =  Linux + Tomcat + MySQL + JDK  
  
httpd 、 nginx 、tomcat  
  
LNAMP = Linux + Nginx + Apache + MySQL + PHP

- 网络实验小技巧 :在用脚本写搭建vsftp虚拟用户服务时,预先准备一个已修改好的配置文件,然后将这个配置文件直接覆盖到新安装的软件配置文件上,最后启动服务,用sed会出错
- 写脚本技巧:
    - 模块化脚本:将不同功能的脚本分开,便于管理和测试。 
    - 了解脚本逻辑:主要功能通过内部调用实现,外部提供选择界面![[Pasted image 20240920192950.png]]
 - web服务:nginx已被f5公司收购 ,阿帕奇有httpd,tomcat ,nginx适用于高并发场景,相比更侧重性能而非稳定性,Apache更侧重稳定性 
 - 举例 :选择使用哪种Web服务器时需考虑实际情况,比如高校网站平时访问量不大时,单一使用Apache可能已经足够。而对于经常举办秒杀等活动的电商平台,则可能需要Nginx来提升并发处理能力。
 - 404:因为客户端请求资源失败,所以是客户端错误

相关文章:

八LAMP搭建

# LAMP ## 一、知识回顾 ### FTP samba nfs 特点 - 借用Linux用户作为映射用户&#xff0c;进行权限管理 - 软件本身还有管理控制权限 #### 客户端连接到服务器后进行读写执行等操作 &#xff0c;必须同时具有: - 软件许可的权限 vsftpd: anon upload enableYES - 文件…...

Windows——解除Windows系统中文件名和目录路径的最大长度限制

第一步&#xff1a;打开本地组策略编辑器 按下Win R键打开运行窗口&#xff0c;输入 gpedit.msc 并回车&#xff0c;打开本地组策略编辑器。 第二步&#xff1a;开启 长路径设置 第三步&#xff1a;重启计算机...

黑名单与ip禁令是同一个东西吗

黑名单和IP禁令相关&#xff0c;但它们并不是完全相同的概念。以下是它们之间的区别&#xff1a; 黑名单 定义&#xff1a;黑名单通常是一个包含不允许或被禁止的用户、IP地址、域名或其他实体的列表。用途&#xff1a;用于阻止特定用户或实体访问某个系统或服务。黑名单可以…...

FuTalk设计周刊-Vol.075

国庆75周年&#xff0c;也是第75期周刊&#xff5e; 祝大家国庆快乐&#xff5e;&#xff01; #AI漫谈 热点捕手 1.万字深剖&#xff01;13位AI巨擘联袂&#xff0c;1.6万字解码生成式AI产品「全攻略」 “生成式人工智能产品”主题论坛&#xff0c;邀请到了来自腾讯、商汤科…...

PE节表中是否存在misc.VirtualSize 比SizeofRawData还要大的情况

确实是存在的,这是win10自带记事本,可以看到 确实是大.所以在申请imagebuffer的时候,还是需要比较大小.但是在还原的时候.只考虑sizeofRawData即可>...

栈及笔试题

目录 栈的实现 1、数组栈 2、链式栈 栈的创建 栈的打印 内存泄漏 栈溢出 练习 有效的括号 栈的实现 栈后入先出 1、数组栈 &#xff08;最佳实现&#xff0c;且访问数据的时候CPU告诉访存命中率比较高&#xff0c;因为地址连续存放&#xff0c;访问时CPU从cache里一…...

【工程测试技术】第3章 测试装置的基本特性,静态特性和动态特性,一阶二阶系统的特性,负载效应,抗干扰性

目录 3.1 概述 1测量装置的静态特性 2.标准和标准传递 3.测量装置的动态特性 4.测量装置的负载特性 5.测量装置的抗干扰性 1.线性度 2.灵敏度 3.回程误差 4.分辨力 5.零点漂移和灵敏度漂移 3.3.1 动态特性的数学描述 1.传递函数 2.频率响应函数 3.脉冲响应函数 …...

ireport 5.1 中文生辟字显示不出来,生成PDF报字体找不到

ireport生成pdf里文字不显示。本文以宋体中文字不显示为例。 问题&#xff1a;由浅入深一步一步分析 问题1、预览正常&#xff0c;但生成pdf中文不显示 报告模板编辑后&#xff0c;预览正常&#xff0c;但生成pdf中文不显示。以下是试验过程&#xff1a; 先编辑好一个报告单模…...

给Ubuntu虚拟机设置静态IP地址(固定IP)

查看 为Ubuntu虚拟机配置静态IP地址&#xff08;固定IP&#xff09;的方法经过亲自测试&#xff0c;已被证实有效。 这里你记得网关就可以了&#xff0c;等下要用 查看配置前的网络信息 ifconfig 查看网关 route -n 配置 配置网络文件 cd /etc/netplan/ ls 查看自己的文件的名…...

spring boot文件上传之x-file-storage

spring boot文件上传之x-file-storage 今天看到一个文件上传的开源组件x-file-storage&#xff0c;官方地址如下&#xff1a; https://x-file-storage.xuyanwu.cn/#/ 该组件官网是这样介绍的&#xff0c;如下&#xff1a; 一行代码将文件存储到本地、FTP、SFTP、WebDAV、阿…...

Object.values() 、 Object.keys()

拿到当前对象里面的value值 // 假设你有一个对象 const myObject {name: Kimi,age: 30,country: Moon };// 获取对象的所有值 const values Object.values(myObject);// 输出值数组 console.log(values); // ["Kimi", 30, "Moon"] 如果你需要在 Vue 组…...

脸爱云管理系统存在任意文件上传漏洞

漏洞描述 脸爱云一脸通智慧管理平台是一套功能强大、运行稳定、操作简单方便、用户界面美观的一脸通系统。该平台整合了人脸识别技术和智能化解决方案&#xff0c;可以实现识别和管理个体身份&#xff0c;为各种场景提供便捷的身份验证和管理功能。其存在任意文件上传漏洞&…...

elasticsearch_exporter启动报错 failed to fetch and decode node stats

最近把服务器迁移到了ubuntu系统&#xff0c;结果发现在centos还正常运行的elasticsearch_exporter&#xff0c;用systemd启动后一直报错 failed to fetch and decode node stats 在网上翻了大半年&#xff0c;竟然都无解&#xff01;这种报错&#xff0c;很明显就是你的ES密码…...

Git 使用方法

简介 Git常用命令 Git 全局设置 获取Git 仓库 方法二用的比较多 将仓库链接复制 在 git base here ----> git clone 仓库链接 工作区、暂存区、版本库 Git 工作区中文件中的状态 本地仓库的操作 远程仓库操作 git pull 将代码推送到远程仓库 1. git add 文件名 ---放…...

生产环境升级mysql流程及配置主从服务

之前写到过mysql升级8.4的文章, 因此不再介绍mysql的安装过程 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客 生产环境升级mysql8.4.x流程 安装mysql 参考之前文章: 避免服务器安装多个mysql引起冲突的安装方法_安装两个mysql会冲突吗-CSDN博客…...

论软件体系结构的演化

摘要 2022年3月&#xff0c;我加入了公司的新智慧公交平台项目研发团队&#xff0c;并担任系统架构师角色&#xff0c;负责系统整体架构的设计与评审。该项目采用了物联网三层架构模型&#xff0c;其中设备接入层和网络交互层基于公司的中台战略&#xff0c;我们有效复…...

【go入门】常量

目录 定义枚举iota思考题 定义 go语言常量的定义和其他语言类似&#xff0c;常量中的数据类型只能是布尔型&#xff0c;数字型&#xff08;整型、浮点型、复数&#xff09;和字符串型 常量的定义方式和变量一样&#xff0c;只不过变量定义使用 var 关键字&#xff0c;而常量定…...

2.1 HuggingFists系统架构(二)

部署架构 上图为HuggingFists的部署架构。从架构图可知&#xff0c;HuggingFists主要分为服务器(Server)、计算节点(Node)以及数据库(Storage)三部分。这三部分可以分别部署在不同的机器上&#xff0c;以满足系统的性能需求。为部署方便&#xff0c;HuggingFists社区版将这三部…...

工具类:JWT

工具类&#xff1a;JWT 依赖JwtUtil.java 依赖 <!-- 创建、解析 和 验证JSON Web Tokens (JWT)--><dependency><groupId>io.jsonwebtoken</groupId><artifactId>jjwt</artifactId><version>0.9.1</version></dependenc…...

王道-计网

2 采用滑动窗口机制对两个相邻结点A(发送方)和B(接收方)的通信过程进行流量控制。假定帧的序号长度为3比特,发送窗口与接收窗口的大小均为7,当A发送了编号为0、1、2、3这4个帧后,而B接收了这4个帧,但仅应答了0、1两个帧,A继续发送4、5两个帧,且这两个帧已进入B的接收…...

【机器学习(十)】时间序列案例之月销量预测分析—Holt-Winters算法—Sentosa_DSML社区版

文章目录 一、Holt-Winters算法原理(一) 加法模型(二) 乘法模型(三) 阻尼趋势 二、Holt Winters算法优缺点优点缺点 三、Python代码和Sentosa_DSML社区版算法实现对比(一) 数据读入和统计分析(二) 数据预处理(三) 模型训练和模型评估(四) 模型可视化 四、总结 一、Holt-Winters…...

Webpack优化问题

目录 打包流程swcthread-loaderhash升级插件 打包流程 webpack 的打包流程大致可以分为以下几个步骤&#xff1a; 初始化&#xff1a;webpack 通过配置文件和 Shell 参数&#xff0c;初始化参数&#xff0c;确定入口文件、输出路径、加 载器、插件等信息。接下来读取配置文件…...

yjs10——pandas的基础操作

1.pandas读入文件——pd.read_cvs() data pd.read_csv("E:/机器学习/data/salary.csv") 注意&#xff1a;1.是pd.read_cvs&#xff0c;不要顺手写成np.read_cvs 2.路径的斜杠方向是/&#xff0c;不是\&#xff0c;如果直接从电脑粘贴路径&#xff0c;路径写法是\&am…...

Squaretest单元测试辅助工具使用

1、idea安装插件 Squaretest 然后关掉idea 2、安装字节码软件&#xff08;jclasslib&#xff09; 3、找到idea里面的Squaretest安装目录 找到包含TestStarter的jar包 4、打开 com.squaretest.c.f 打开后选择常量池 5、找到第16个修改 Long value值&#xff0c;修改的数字即为使…...

MFU简介

1、缩写 MFU - Mask Field Utilization&#xff08;光刻掩膜版有效利用比例&#xff09; GDPW - Gross Die Per Wafer&#xff0c;每张wafer上die的数量 2、什么是MASK 在光刻机中&#xff0c;光源&#xff08;紫外光、极紫外光&#xff09;透过mask曝光在晶圆上形成图…...

十分钟实现内网连接,配置frp

十分钟实现内网连接&#xff0c;配置frp 一.frp是什么&#xff1f;其实是一款实现外网连接内网的一个工具&#xff0c;个人理解&#xff0c;说白了就像是teamviwer一样&#xff0c;外网能访问内网。 利用处于内网或防火墙后的机器&#xff0c;对外网环境提供 http 或 https 服…...

解决MySQL命令行中出现乱码问题

在MySQL命令行中遇到乱码问题通常是由于字符编码设置不正确导致的。以下是一些解决步骤&#xff1a; 1. **检查和设置字符集**&#xff1a; 首先&#xff0c;您需要确保MySQL服务器、客户端和数据库使用的是正确的字符集。您可以通过执行以下命令来查看当前的字符集设置&…...

TS系列(7):知识点汇总

你好&#xff0c;我是沐爸&#xff0c;欢迎点赞、收藏、评论和关注。 一、TS是什么&#xff1f; TypeScript 由微软开发&#xff0c;是基于 JavaScript 的一个扩展语言。TypeScript 包含 JavaScript 的所有内容&#xff0c;是 JavaScript 的超集。TypeScript 增加了静态类型检…...

Unity 查看Inspectors组件时严重掉帧

遇到一个问题&#xff0c;就是运行一个脚本的时候&#xff0c;只要我查看它的Inspectors&#xff0c;就会严重掉帧。 原本是30fps&#xff0c;只要查看这个组件&#xff0c;就掉到5fps。 这还真有点像波粒二象性&#xff0c;一观察就会掉帧&#xff0c;不观察就正常。 using…...

golang学习笔记23-面向对象(五):多态与断言【重要】

本节也是GO核心部分&#xff0c;很重要。 注&#xff1a;由于导包语句已经在19讲&#xff08;笔记19&#xff1a;面向对象的引入&#xff09;展示过了&#xff0c;所以这里就不展示了。 一、多态&#xff08;Polymorphism&#xff09; 变量&#xff08;实例&#xff09;具有多…...

asp access 手机站 用于做微网站/苏州网络公司

PR劫持的定义和方法2018-03-19传承网络次什么是PR劫持&#xff1f;一般搜索引擎在处理301和302转向的时候&#xff0c;都是把目标URL当作实际应该收录的URL。当然也有特例&#xff0c;不过在大部分情况下是这样处理的。所以如果你从域名A做301或302跳转到域名B&#xff0c;而域…...

做网站ui主要研究内容/网络营销推广工具有哪些

可恶啊&#xff0c;习惯了 vue的 数据双向绑定了 &#xff0c;有点不习惯小程序的模式了 虽然小程序 也是mvvm的设计方式 但是却没有 v-model 这么简便的方法 不过也越来越觉得 不能依赖框架&#xff0c;还是提升自己基础能力最好了 虽然不能双向绑定 但是可以通过其他的方式 …...

南阳建网站企业/百度学术论文查重官网

NPM酷库&#xff0c;每天两分钟&#xff0c;了解一个流行NPM库。 JSON是JS中数据交换时最常用的数据格式&#xff0c;其序列话和反序列化性能非常好&#xff0c;但是其语法却比较严格&#xff0c;比如以下是一个合法的JS声明&#xff0c;却不是一个合法的JSON&#xff1a; { fo…...

高端定制网站速度/今天最新新闻

# 本程序要实现的功能是&#xff1a; # 实现学生信息管理系统的增删改查 str_print("name:{}\t,math:{}\t,chinese:{}\t,english:{}\t") grade_list[] while True:print("""**************************欢迎使用【学生信息管理系统】请选择你想要进行的…...

网站建设与管理教案怎么写/优化系统的软件

基础类可接收我们发给派生类的任何消息&#xff0c;因为两者拥有完全一致的接口。我们要做的全部事情就是从派生上溯造型&#xff0c;而且永远不需要回过头来检查对象的准确类型是什么。所有细节都已通过多态性获得了完美的控制。但经过细致的研究&#xff0c;我们发现扩展接口…...

北京网站设计公司哪儿济南兴田德润简介/南京seo排名扣费

2019独角兽企业重金招聘Python工程师标准>>> 今天查JS的一些框架&#xff0c;无意进入了一个网站http://www.w3cschool.cc/。浏览了一下之后&#xff0c;发现真是。。棒极了&#xff01;&#xff01;这个网站提供了多种语言和框架的入门教程&#xff0c;内容很丰富&…...