LAMP架构(Apache、Mysql、PHP服务的部署)

news2024/11/27 14:30:51

目录

一、LAMP架构

1.LAMP组件

二、编译安装Apache httpd服务

1.关闭防火墙,拉取软件包

 2.安装环境依赖包

3.配置软件模块

4.编译及安装

5.优化配置文件路径

6.添加httpd系统服务

7.修改httpd 服务配置文件

8.浏览器访问验证

三、编译安装mysqld服务

1. 将mysql软件包上传到 /opt/mysql

2.安装环境依赖包

3.配置软件模块,编译安装

4.创建mysql用户,修改mysql 配置文件

5. 更改mysql安装目录和配置文件的属主属组

6.设置路径环境变量

7.初始化数据库

8.添加mysqld系统服务

9.修改mysql 的登录密码,授权远程登录

四、编译安装PHP 解析环境

1. 上传PHP软件包

2.安装GD库和GD库关联程序,用来处理和生成图片

3.配置软件模块,编译安装

4.复制模版文件作为PHP 的主配置文件,并进行修改

5.优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别

6.修改httpd 服务的配置文件,让apache支持PHP

7.验证PHP 测试页

五、安装论坛

1. 创建数据库,并进行授权

2.上传并解压论坛压缩包

3.更改论坛目录的属主

4. 浏览器访问验证


一、LAMP架构

LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。LAMP是一个缩写词,具体包括Linux操作系统、Apache网站服务器、MySQL数据库服务器、PHP(或Perl、Python)网页编程语言。

1.LAMP组件

(平台)Linux:作为LAMP架构的基础,提供用于支撑Web站点的操作系统,能够与其他三个组件提供更好的稳定性,兼容性(AMP组件也支持Windows、UNIX等平台) 。

(前台)Apache:作为LAMP架构的前端,是一款功能强大,稳定性好的Web服务器程序,该服务器直接面向用户提供网站访问,发送网页,图片等文件内容。

(后台)MySQL:作为LAMP架构的后端,是一款流行的开源关系数据库系统。在企业网站、业务系统等应用中,各种账户信息、产品信息,客户资料、业务数据等都可以存储到MySQL数据库,其他程序可以通过SQL语句来查询,更改这些信息。

(中间连接)PHP/Perl/Python:作为三种开发动态网页的编程语言,负责解释动态网页文件,负责沟通Web服务器和数据库系统以协同工作,并提供Web应用程序的开发和运行环境。其中PHP是一种被广泛应用的开放源代码的多用途脚本语言,它可以嵌入到HTML中,尤其适合于Web应用开发。

在构建LAMP平台时,各组件的安装顺序依次为Linux、Apache、MySQL、PHP。其中Apache和MySQL的安装并没有严格的顺序,PHP环境的安装一般放到最后安装,负责沟通 Web 服务器和数据库系统以协同工作。 

二、编译安装Apache httpd服务

1.关闭防火墙,拉取软件包

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
setenforce 0

#在xshell中用命令 rz -E 将软件包拉取到虚拟机上
mkdir /opt/apache
cd /opt/apache
rz -E  

#apr组件包用于支持Apache上层应用跨平台,提供底层接口库,
#能有效的降低并发连接数、降低进程和减少访问堵塞。
httpd-2.4.29.tar.gz
apr-1.6.2.tar.gz
apr-util-1.6.0.tar.gz

 2.安装环境依赖包

yum -y install gcc gcc-c++ make pcre pcre-devel expat-devel perl 

gcc 							#C语言的编译器
gcc-c++ 						#C++的编译器
make 							#源代码编译器(源代码转换成二进制文件)
pcre 							#pcre是一个Perl函数库,包括perl 兼容的正则表达式库
pcre-devel                      #perl的接口开发包
expat-devel                     #用于支持网站解析HTML、XML文件
perl                            #perl语言编译器    

3.配置软件模块

cd /opt/apache
#解压软件包
tar zxvf apr-1.6.2.tar.gz
tar zxvf apr-util-1.6.0.tar.gz
tar jxvf httpd-2.4.29.tar.bz2

mv apr-1.6.2 /opt/apache/httpd-2.4.29/srclib/apr
mv apr-util-1.6.0 /opt/apache/httpd-2.4.29/srclib/apr-util

cd /opt/apache/httpd-2.4.29/
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite 
--enable-charset-lite --enable-cgi

#指定将 httpd 服务程序的安装路径
--prefix=/usr/local/httpd 		
#启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力
--enable-so 				
#启用网页地址重写功能,用于网站优化、防盗链及目录迁移维护
--enable-rewrite 				
#启动字符集支持,以便支持使用各种字符集编码的页面
--enable-charset-lite 			
启用CGI(通用网关接口)脚本程序支持,便于网站的外部扩展应用访问能力
--enable-cgi					

4.编译及安装

#make -j 2  表示开2核同时进行编译
make	
make install						

5.优化配置文件路径

#将httpd服务的可执行程序文件放入路径环境变量的目录中便于系统识别
#将httpd服务的可执行文件在环境变量中创建软链接
ln -s /usr/local/httpd/conf/httpd.conf /etc/
ln -s /usr/local/httpd/bin/* /usr/local/bin/

6.添加httpd系统服务

方法一:
cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd		#用于service服务管理
chmod +x /etc/init.d/httpd
vi /etc/init.d/httpd
#!/bin/bash				    #在第一行前插入新行,添加此三行内容
# chkconfig: 35 85 21		#35级别自动运行  第85个启动 第21个关闭
# description: Apache is a World Wide Web server

chkconfig --add httpd     		#将httpd服务加入到service管理器

systemctl start httpd.service
或
service httpd start

方法二:
vim /lib/systemd/system/httpd.service
[Unit]											#服务的说明
Description=The Apache HTTP Server				#描述服务
After=network.target			#依赖,当依赖的服务启动之后再启动自定义的服务
[Service]										#服务运行参数的设置
Type=forking									#后台运行方式
PIDFile=/usr/local/httpd/logs/httpd.pid			#PID文件位置
ExecStart=/usr/local/bin/apachectl $OPTIONS		#服务的运行命令
ExecReload=/bin/kill -HUP $MAINPID				#根据PID重载配置
[Install]										#服务安装的相关设置
WantedBy=multi-user.target						#设置为多用户

systemctl start httpd.service
systemctl enable httpd.service

7.修改httpd 服务配置文件

vim /etc/httpd.conf
--52行--修改
Listen 192.168.88.50(主机IP地址):80
--197行--取消注释,修改
ServerName www.qyy.com(自定义域名):80

--221行--默认首页存放路径
DocumentRoot "/usr/local/httpd/htdocs"
--255行--默认首页文件名设置
DirectoryIndex index.html

httpd -t  或 apachectl -t			#检查配置文件的配置项是否有误
cat /usr/local/httpd/htdocs/index.html
<html><body><h1>It works!</h1></body></html>
systemctl restart httpd.service

8.浏览器访问验证

#查看httpd服务是否打开
netstat -anpt | grep 80
tcp    0   0  192.168.88.50:80  0.0.0.0:*  LISTEN    34500/httpd  
echo "192.168.88.50 www.qyy.com" >> /etc/hosts


http://192.168.88.50
http://www.qyy.com

在虚拟机可以用域名访问,而要在主机用域名访问要修改主机配置文件
#在c盘路径打开
C:\Windows\System32\drivers\etc
#用记事本打开 hosts 文件
添加 192.168.88.50 www.qyy.com

三、编译安装mysqld服务

1. 将mysql软件包上传到 /opt/mysql

mkdir /opt/mysql
cd /opt/mysql
rz -E
ls
boost_1_59_0.tar.gz  mysql-5.7.17.tar.gz
#boost_1_59_0.tar.gz支持c++的运行库

2.安装环境依赖包

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

gcc 
gcc-c++ 
ncurses 				#字符终端下图形互动功能的动态库
ncurses-devel 			#ncurses开发包
bison 					#语法分析器
cmake					#mysql需要用cmake编译安装

3.配置软件模块,编译安装

tar zxvf mysql-5.7.17.tar.gz
tar zxvf boost_1_59_0.tar.gz
cd /opt/mysql
mv boost_1_59_0 /usr/local/boost		#重命名
cd /opt/mysql/mysql-5.7.17/
cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \		#指定mysql的安装路径
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \ #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
-DSYSCONFDIR=/etc \                             #指定配置文件的存储路径
-DSYSTEMD_PID_DIR=/usr/local/mysql \            #指定进程文件的存储路径
-DDEFAULT_CHARSET=utf8  \                       #指定默认使用的字符集编码,如 utf8
-DDEFAULT_COLLATION=utf8_general_ci \			#指定默认使用的字符集校对规则
-DWITH_EXTRA_CHARSETS=all \						#指定支持其他字符集编码
-DWITH_INNOBASE_STORAGE_ENGINE=1 \              #安装INNOBASE存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \             #安装BLACKHOLE存储引擎 
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \            #安装FEDERATED存储引擎 
-DMYSQL_DATADIR=/usr/local/mysql/data \         #指定数据库文件的存储路径
-DWITH_BOOST=/usr/local/boost \       #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
-DWITH_SYSTEMD=1								#生成便于systemctl管理的文件

存储引擎选项:
MYISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)


注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,
然后再重新CMAKE,否则错误依旧

#编译并安装
make
make install

4.创建mysql用户,修改mysql 配置文件

useradd -M -s /sbin/nologin  mysql

vim /etc/my.cnf								#删除原配置项,再重新添加下面内容
[client]									#客户端设置
port = 3306
socket = /usr/local/mysql/mysql.sock			

[mysql]										#服务端设置
port = 3306
socket = /usr/local/mysql/mysql.sock
auto-rehash									#开启自动补全功能

[mysqld]									#服务全局设置
user = mysql       							#设置管理用户
basedir=/usr/local/mysql					#指定数据库的安装目录
datadir=/usr/local/mysql/data				#指定数据库文件的存储路径
port = 3306									#指定端口
character-set-server=utf8					#设置服务器字符集编码格式为utf8
pid-file = /usr/local/mysql/mysqld.pid		#指定pid 进程文件路径
socket=/usr/local/mysql/mysql.sock			#指定数据库连接文件
bind-address = 0.0.0.0						#设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开
skip-name-resolve							#禁用DNS解析
max_connections=2048						#设置mysql的最大连接数
default-storage-engine=INNODB				#指定默认存储引擎
max_allowed_packet=16M						#设置数据库接收的数据包大小的最大值
server-id = 1								#指定服务ID号

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

sql_mode常用值如下:

  • NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常
  • STRICT_TRANS_TABLES:在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
  • NO_AUTO_CREATE_USER:禁止GRANT创建密码为空的用户
  • NO_AUTO_VALUE_ON_ZERO:mysql中的自增长列可以从0开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错
  • NO_ZERO_IN_DATE:不允许日期和月份为零
  • NO_ZERO_DATE:mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告
  • ERROR_FOR_DIVISION_BY_ZERO:在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MySQL返回NULL
  • PIPES_AS_CONCAT:将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似
  • ANSI_QUOTES:启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

5. 更改mysql安装目录和配置文件的属主属组

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

6.设置路径环境变量

#设置全局变量
echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile	
#在当前shell环境中刷新 /etc/profile 文件
source /etc/profile

7.初始化数据库

cd /usr/local/mysql/bin/
./mysqld \
--initialize-insecure \				#生成初始化密码为空
--user=mysql \                      #指定管理用户
--basedir=/usr/local/mysql \        #指定数据库的安装目录
--datadir=/usr/local/mysql/data		#指定数据库文件的存储路径

8.添加mysqld系统服务

#用于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         #开机自启动
netstat -anpt | grep 3306       #查看端口
tcp   0  0 0.0.0.0:3306   0.0.0.0:*    LISTEN      55631/mysqld 

9.修改mysql 的登录密码,授权远程登录

#给root账号设置密码为123456,原始密码为空
mysqladmin -u root password "123456" 

# -p 后跟密码,密码与-p间不能有空格
mysql -u root -p123456
grant all privileges on *.* to 'root'@'%' identified by 'abc123';
#授予root用户可以在所有终端远程登录,使用的密码是abc123,并对所有数据库和所有表有操作权限


show databases;			#查看当前已有的数据库	
quit                    #退出mysql数据库

四、编译安装PHP 解析环境

1. 上传PHP软件包

mkdir /opt/php
cd /opt/php
rz -E
ls
php-7.1.10.tar.bz2

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.配置软件模块,编译安装

cd /opt/php
tar jxvf php-7.1.10.tar.bz2
cd /opt/php/php-7.1.10/
./configure \
--prefix=/usr/local/php7 \							#指定将 PHP 程序的安装路径
--with-apxs2=/usr/local/httpd/bin/apxs \			#指定Apache httpd服务提供的apxs 模块支持程序的文件位置
--with-mysql-sock=/usr/local/mysql/mysql.sock \		#指定mysql 数据库连接文件的存储路径
--with-config-file-path=/usr/local/php7				#设置 PHP 的配置文件 php.ini 将要存放的位置
--with-mysqli \										#添加 MySQL 扩展支持 #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,而且还可以使访问数据库工作变得更加稳定
--with-zlib \										#支持zlib功能,提供数据压缩
--with-curl \										#开启curl扩展功能,实现HTTP的Get下载和Post请求的方法
--with-gd \											#激活gd 库的支持
--with-jpeg-dir \									#激活jpeg 的支持
--with-png-dir \									#激活png 的支持
--with-freetype-dir \
--with-openssl \
--enable-mbstring \									#启用多字节字符串功能,以便支持中文等代码
--enable-xml \										#开启扩展性标记语言模块
--enable-session \									#会话
--enable-ftp \										#文本传输协议
--enable-pdo \										#函数库
--enable-tokenizer \								#令牌解释器
--enable-zip

make  -j4        #以4核编译
make install

4.复制模版文件作为PHP 的主配置文件,并进行修改

cp /opt/php/php-7.1.10/php.ini-development /usr/local/php7/php.ini	
#在测试环境时使用php.ini-development文件,而在生产环境时使用php.ini-production文件
vim /usr/local/php7/php.ini
--1170行--修改
mysqli.default_socket = /usr/local/mysql/mysql.sock
--939行--取消注释,修改
date.timezone = Asia/Shanghai

5.优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别

#将/usr/local/php7/bin/ 加入环境变量中
ln -s /usr/local/php7/bin/* /usr/local/bin/
php -m 			#查看PHP 加载了哪些模块

6.修改httpd 服务的配置文件,让apache支持PHP

vim /etc/httpd.conf 
--393行--插入以下内容
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
--255行--修改首页文件名设置
DirectoryIndex index.html index.php

#检查支持php7的模块是否存在
#在vim末行模式输入
/php7
LoadModule php7_module        modules/libphp7.so

7.验证PHP 测试页

rm -rf /usr/local/httpd/htdocs/index.html
vim /usr/local/httpd/htdocs/index.php
<?php
phpinfo();
?>

systemctl restart httpd.service

浏览器访问
http://192.168.88.50

五、安装论坛

1. 创建数据库,并进行授权

mysql -u root -p123456

CREATE DATABASE bbs;
#创建一个数据库

GRANT all ON bbs.* TO 'bbsuser'@'%' IDENTIFIED BY '123456';
#把bbs数据库里面所有表的权限授予给bbsuser,并设置密码123456

flush privileges;
#刷新数据库

show databases;

2.上传并解压论坛压缩包

cd /opt/php
rz -E
ls
Discuz_X3.4_SC_UTF8.zip  php-7.1.10  php-7.1.10.tar.bz2
unzip /opt/Discuz_X3.4_SC_UTF8.zip 
cd /opt/php/dir_SC_UTF8/
cp -r upload/ /usr/local/httpd/htdocs/bbs		#上传站点更新包

3.更改论坛目录的属主

ps aux							#查看发现论坛进程的用户名是daemon
cd /usr/local/httpd/htdocs/bbs
chown -R daemon ./config
chown -R daemon ./data
chown -R daemon ./uc_client
chown -R daemon ./uc_server/data

4. 浏览器访问验证

#论坛页面访问
http://192.168.80.10/bbs


#本地架设就用localhost,如何不是在在本机上就要填写IP地址和端口号
数据库服务器:localhost     
数据库名字:bbs
数据库用户名:bbsuser
数据库密码:123456
管理员账号:root
管理员密码:123456


#论坛后台管理员页面
http://192.168.80.10/bbs/admin.php

 

 

 

 

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

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

相关文章

java.lang.IllegalStateException: Failed to load ApplicationContext

问题描述 mvn clean install的时候报的如下异常&#xff1a; 紧接着又往下翻了一下日志还有一个这个错误 按正常来说通过可以取pom当中的properties标签的值呀。但是可以发现编译过后的application当中的值并没有被替换。 解决过程 &#xff08;1&#xff09;我先是将server.…

1:400 万中国土壤数据介绍

一、土壤数据在科研以及日常生产生活中具有重要性价值。以下是其主要方面&#xff1a; 农业生产&#xff1a;土壤数据对于农业生产至关重要。通过了解土壤的物理、化学和生物学特性&#xff0c;农民可以合理管理土壤&#xff0c;选择适合的作物和肥料&#xff0c;调整灌溉和排水…

yolov8_track追踪加分割(yolo目标检测+追踪+分割)

**这个仓库包含了最先进的多目标追踪器。其中一些基于运动信息,另一些则基于运动和外观描述。对于后者,最先进的ReID模型也会自动下载。目前支持的模型有:DeepOCSORT LightMBN、BoTSORT LightMBN、StrongSORT LightMBN、OCSORT和ByteTrack。 我们提供了如何将这个包与流行的…

【轻量化网络系列(4)】ShuffleNetV1论文超详细解读(翻译 +学习笔记+代码实现)

前言 前面我们学了MobileNetV1-3&#xff0c;从这篇开始我们学习ShuffleNet系列。ShuffleNet是Face&#xff08;旷视&#xff09;在2017年发布的一个高效率可以运行在手机等移动设备的网络结构&#xff0c;论文发表在CVRP2018上。这个新的轻量级网络使用了两个新的操作&#…

软考A计划-试题模拟含答案解析-卷一

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff0c;以及各种资源分享&am…

wait,notify,notifyAll,sleep,join等线程方法的全方位演练

一、概念解释 1. 进入阻塞&#xff1a; 有时我们想让一个线程或多个线程暂时去休息一下&#xff0c;可以使用 wait()&#xff0c;使线程进入到阻塞状态&#xff0c;等到后面用到它时&#xff0c;再使用notify()、notifyAll() 唤醒它&#xff0c;线程被唤醒后&#xff0c;会等…

网络规划与设计实验+配置案例报告+pkt

目录 第一部分&#xff1a;网络规划与设计实验..... 7 实验一 用户需求分析报告的撰写... 7 一、实验目的和要求... 7 二、实验内容... 7 三、实验步骤... 7 3.1 项目背景... 7 3.1.1 信息化发展趋势... 7 3.1.2 学校基本情况介绍... 8 3.1.3 学校对网络建设的基本要求…

Ovirt 开源虚拟化平台安装

ovirt官网 一、资源规划介绍 1.1、服务规划 ovirt版本 ovirt engine 4.3.10 ovirt node 4.3.10 ovirt.node01.opsvv.com 负责托管引擎服务 1.2、资源划分 1.2.1、节点划分 密码均为&#xff1a;12345678 Node02无法开启虚拟化&#xff0c;只演示加入集群节点使用 节点…

NodeJs服务链路追踪日志

&#xff08;逆境给人宝贵的磨炼机会。仅有经得起环境考验的人&#xff0c;才能算是真正的强者。自古以来的伟人&#xff0c;大多是抱着不屈不挠的精神&#xff0c;从逆境中挣扎奋斗过来的。——松下幸之助&#xff09; 服务链路追踪 服务的链路追踪指我们可以通过一个标记&am…

阿里云ECS部署Trojan代理

项目地址&#xff1a;GitHub - Jrohy/trojan: trojan多用户管理部署程序, 支持web页面管理 一、容器部署&#xff1a; docker run --name trojan-mariadb --restartalways -p 3306:3306 -v /home/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORDtrojan -e MYSQL_ROOT_HOST% -e…

在滴滴和字节跳动干了 2 年,太真实…

先简单交代一下背景吧&#xff0c;某不知名985的本硕&#xff0c;17年毕业加入滴滴&#xff0c;之后跳槽到了头条&#xff0c;一直从事软件测试相关的工作。之前没有实习经历&#xff0c;算是两年半的工作经验吧。 这两年半之间完成了一次晋升&#xff0c;换了一家公司&#x…

Linux 软件安装及vim详细用法和配置

文章目录 一、Linux下的软件1、什么是软件包&#xff1f;2、软件安装的三种方法3、yum 安装 lrzsz软件&#xff08;windows和Linux消息互传&#xff09;4、深入理解yum源 二、 L i n u x 编辑器 − v i m 使用 Linux编辑器-vim使用 Linux编辑器−vim使用1、vim三种模式作用及其…

递归之谜:解析无限嵌套的美

一、前言 嵌套是指在一个事物中包含另一个事物&#xff0c;而递归是一种特殊形式的嵌套&#xff0c;其中一个事物包含自身。 递归就是一种嵌套的形式&#xff0c;递归函数解决问题时嵌套调用自身。递归的核心思想是通过反复应用相同的过程来解决问题&#xff0c;每一次调用都…

容器化:MongoDB

1 缘起 开启容器化之路。 2 容器化MongDB 2.1 查看镜像 docker search mongodb2.2 安装 前台安装 sudo docker run \ --name mongodb \ -p 27017:27017 \ -v /home/xindaqi/mongodb/conf:/data/configdb \ -v /home/xindaqi/data/mongodb-data:/data/db \ -v /home/xind…

99年表示真干不过,部门新来的00后测试员已把我卷崩溃,想离职了...

在程序员职场上&#xff0c;什么样的人最让人反感呢? 是技术不好的人吗?并不是。技术不好的同事&#xff0c;我们可以帮他。 是技术太强的人吗?也不是。技术很强的同事&#xff0c;可遇不可求&#xff0c;向他学习还来不及呢。 真正让人反感的&#xff0c;是技术平平&#x…

常见的GPIO口框架分析

目录 1、单片机平台 2、嵌入式 Linux 平台 GPIO 八种工作模式详解 接着上一篇的讲&#xff0c;我们上一篇研究了 GPIO 的硬件结构&#xff0c;其来源于 STM32 官方手册&#xff0c;研究了 GPIO 的八种工作模式和推挽输出及开漏输出原理&#xff0c;接下来我们研究 GPIO 的软件…

孙燕姿谈“AI孙燕姿”:她的反应让人意外,深入体验揭示其背后的真相与潜力!

目录 前言AI歌手简介AI歌手的技术原理孙燕姿对“AI孙燕姿”的看法结论个人感受一、你听过AI歌手的音乐呈现吗&#xff1f;作为听众你的感受如何&#xff1f;二、你认为这种新型演艺模式能否获得广泛的市场认可&#xff1f;原因是什么&#xff1f;三、你认为AI歌手会取代流行歌手…

SQL查询语言(3) 嵌套查询

如果不进行去重可能会出现一个情况 嵌套查询根据子查询的结果是否依赖于外层循环,分成相关子查询和不相关子查询 分类 IN 笔者总结&#xff1a;一般这种方法适用于查找有共性的元组&#xff0c;同一类事物比如查找和elsa选修相同科目的学生/选修相同科目的女同学。在后面我…

【随手查】数据手册研读笔记

一个付费课程的学习之旅&#xff0c;将课程中所学到的东西以及实践中学到的悟到的记录下来&#xff0c;方便日后查看&#xff0c;持续更。。。 笔记目录 一、电阻1、贴片电阻表面的阻值标记2、额定功率下降曲线3、贴片电阻的温度系数 二、电容1、电容值的计算公式2、ESR曲线3、…

JVM Sandbox入门详解

一. 概述 在日常开发中&#xff0c;经常会接触到面向AOP编程的思想&#xff0c;我们通常会使用Spring AOP来做统一的权限认证、异常捕获返回、日志记录等工作。之所以使用Spring AOP来实现上述功能&#xff0c;是因为这些场景本质上来说都是与业务场景挂钩的&#xff0c;但是具…