使用U盘安装Ubuntu
准备工作
- 需要一个8GB或者8GB以上的空U盘(由于制作启动盘需要格式化U盘,建议提前备份U盘数据)
下载系统镜像文件
- 浏览器搜索Ubuntu或者直接复制网址进入网站选择对应的版本进行下载(官网默认最新版本且下载速度较慢,建议使用镜像站下载)
- 官网网址:https://cn.ubuntu.com/download/desktop
下载启动盘制作工具
- rufus 官网网址:http://rufus.ie/zh/
然后就有如图所示下载得到的2个文件
制作启动盘
双击打开下载好的rufus程序,设备选择插入的U盘,引导类型选择下载好的Ubuntu镜像文件,其他保持默认,点击开始
当状态提示准备就绪后表示制作完成,点击关闭,U盘内显示以下文件
查看计算机磁盘格式
- Windows系统的磁盘格式一般分为2种:MBR和GPT格式,分别对应主板Bios的Legacy和UEFI的启动方式,同时在linux分区里面对应/boot和/efi分区
磁盘格式查看方法,在windos系统下,右键点击此电脑,点击管理 找到存储-磁盘管理,点击对应磁盘,右键属性,然后查看卷。
对应分区形式如下:
磁盘分区
- Linux的磁盘分区和windows不同,一般常见分区方案如下:
若磁盘空间较小,可以只划分引导区、内存交换区和系统区三个,不建立home分区也可以。
Ubuntu系统安装
Ubuntu安装分为两种MBR分区和GPT分区,分别对应Legacy和UEFI引导,注意选择正确的引导启动。
进入BIOS设置U盘启动
- 电脑开机或者重启,不停的按对应的启动快捷键,进入BIOS设置面板
- 找到Security(安全)-Secure Boot(安全启动)改为改成Disabled(关闭)
- 找到Boot(启动)-Boot Mode(启动模式)选项按照自己硬盘格式改为Legacy 或者UEFI然后按F10保存退出
- 插入制作好的U盘启动盘,开机并长按U盘启动快捷键进入引导界面(如果你实在找不到 U 盘启动快捷键的话,直接在上一步 BIOS 将 U 盘改为第一启动项也可以)选择带有usb的引导选项进入U盘(不同品牌,主板的进入方法不同,具体可以通过搜索引擎搜索自己电脑的操作方法)。
选择第一项进入安装界面
正式安装并进行系列设置
语言选择中文简体(当然如果英文很好可以选择English)
键盘布局按照自己喜好选择即可
这个界面正常安装和最小安装都可以(正常安装比最小安装多了些常用的软件视个人所需选择),下载更新建议不勾选
安装类型一般选择其他选项,方便个人进行磁盘分区
这里显示当前电脑所有的磁盘,选中想要分区的空闲磁盘点击+号进行新建分区。
可以参考下表:
新建分区
/boot
swap分区
/
/home
分区完成
执行格式化分区
地理位置默认或者选择自己所在地即可
这里输入自己的用户名和登录密码继续(建议使用英文名字方便后续使用)
等待安装程序自动执行安装,安装完成后会提示是否重启,点击现在重启
重启后系统会出现类似如下提示,拔出U盘安装盘然后按键盘Enter键进行确认即可
等待一会儿即可进入系统登录界面,点击用户名输入密码进入系统桌面
以上大功告成,#Ubuntu系统顺利安装成功。小伙伴儿们不要忘记点赞收藏哦!
linux 环境配置
ssh 设置
安装SSH
在Ubuntu系统中安装SSH是配置SSH的第一步。可以通过以下命令来安装SSH:
1 | sudo apt-get install openssh-server |
安装完成后,SSH服务将自动启动,并且会在系统启动时自动启动。
SSH服务的启动和停止
安装完成后,SSH服务将自动启动,可以使用以下命令来手动启动或停止SSH服务:
1 | sudo service ssh start |
SSH配置文件
SSH的配置文件位于/etc/ssh/sshd_config,可以使用文本编辑器来修改配置文件。在配置文件中,可以修改SSH的端口、允许登录的用户、禁止root用户登录等。
SSH服务的重启
在修改了SSH的配置文件后,需要重启SSH服务才能使修改生效。可以使用以下命令来重启SSH服务:
1 | sudo service ssh restart |
生成SSH密钥
在配置SSH之前,需要生成SSH密钥对。可以使用以下命令来生成SSH密钥对:
1 | ssh-keygen -t rsa |
生成的密钥对将保存在用户的~/.ssh目录下,其中id_rsa为私钥,id_rsa.pub为公钥。
密钥的添加和删除
生成的SSH密钥对可以通过以下命令来添加到SSH代理中:
1 | ssh-add ~/.ssh/id_rsa |
如果需要删除已添加的密钥,可以使用以下命令:
1 | ssh-add -d ~/.ssh/id_rsa |
公钥的复制
将公钥复制到要连接的远程服务器上,可以使用以下命令:
1 | ssh-copy-id user@remote_host |
这将把公钥添加到远程服务器的~/.ssh/authorized_keys文件中,从而实现无密码登录。
密钥的保护
生成的SSH密钥对是非常重要的,需要妥善保护。可以通过设置密钥的权限和使用密码来加强密钥的安全性。
使用SSH连接远程服务器
配置好SSH后,可以使用SSH来连接远程服务器。可以使用以下命令来连接远程服务器:
1 | ssh user@remote_host |
在连接时,可以选择使用不同的身份验证方式,如密码验证、公钥验证等。
公钥验证
使用公钥验证可以实现无密码登录,只需要将公钥添加到远程服务器的~/.ssh/authorized_keys文件中即可。
密码验证
使用密码验证需要输入远程服务器的密码,可以通过以下命令来连接远程服务器:
1 | ssh user@remote_host |
其他身份验证方式
除了公钥验证和密码验证外,还可以使用其他身份验证方式,如密钥卡、证书等。
配置SSH防火墙
为了加强SSH的安全性,可以配置防火墙来限制对SSH服务的访问。可以使用以下命令来配置防火墙:
1 | sudo ufw allow OpenSSH |
这将允许来自任何IP地址的SSH连接。
配置特定IP地址的访问
可以使用以下命令来允许特定IP地址的SSH连接:
1 | sudo ufw allow from 192.168.0.1 to any port 22 |
这将允许来自IP地址为192.168.0.1的主机的SSH连接。
配置防火墙的其他规则
除了配置SSH的访问规则外,还可以配置其他防火墙规则来进一步加强系统的安全性。
加强SSH安全
为了加强SSH的安全性,可以采取一些措施来防止未授权访问和恶意攻击。
禁止root用户登录
禁止root用户登录可以防止未授权访问和恶意攻击。可以通过修改SSH的配置文件来禁止root用户登录。
使用SSH密钥登录
使用SSH密钥登录可以实现无密码登录,提高系统的安全性。
使用防火墙限制访问
使用防火墙可以限制对SSH服务的访问,防止未授权访问和恶意攻击。
内容补充;
非root用户开启ssh服务
/etc/ssh/ssh_config 配置文件对 root 无效用户,单独修改该配置文件可开启非 root 用户 ssh 访问
1 | sudo vim /etc/ssh/ssh_config |
去掉 配置文件中 Port 22 的注释后保存退出
设置root用户远程登录
/etc/ssh/sshd_config 配置文件可以 设置 root 用户 ssh 访问
1 | sudo vim /etc/ssh/sshd_config |
将 PermitRootLogin prohibit-password
去掉注释并修改为
PermitRootLogin yes
修改后保存并退出
重启ssh服务服务即可
1 | sudo service ssh restart |
SSH 常见问题
ssh链接远程服务器出现错误:
原因:第一次ssh链接的时候会生成一个认证凭据,存储在客户端中的known_hosts,如果服务器地址重置or重新安装了,就会产生这个问题,巴拉巴拉。。。
解决:
ssh-keygen -R 服务器地址
然后重新链接
gitlab 安装
参考:
https://www.zhihu.com/question/37796391
更新系统包
让我们首先更新软件包列表并将任何现有软件包升级到最新版本。
1 | $ sudo apt update |
应用更新后重新启动系统。
1 | $ sudo reboot |
安装依赖项
GitLab 需要一些依赖项才能正常运行。使用以下命令安装它们:
1 | $ sudo apt install -y curl openssh-server ca-certificates postfix |
在 postfix 安装过程中,会出现一个配置窗口。选择 “Internet Site”并输入服务器的主机名作为邮件服务器名称。这将允许 GitLab 发送电子邮件通知。
选择 “Internet Site”,然后选择 “OK”。
添加 GitLab Apt 存储库
现在,我们将添加 GitLab 仓库,运行以下 curl
命令。它将自动检测你的 Ubuntu 版本并相应地设置仓库。
1 | $ curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash |
安装 Gitlab
运行以下命令在你的 ubuntu 系统上自动安装和配置 gitlab-ce,将服务器的主机名替换为你的设置,
1 | $ sudo EXTERNAL_URL="http://gitlab.linuxtechi.net" apt install gitlab-ce |
上面的输出确认 GitLab 已成功安装。gitlab web 界面的用户名是 root,密码存储在 /etc/gitlab/initial_root_password
。
注意:如果你的 ubuntu 系统上启用了操作系统防火墙,那请允许 80 和 443 端口。
1 | $ sudo ufw allow http |
访问 GitLab Web 界面
安装并配置 GitLab 后,打开 Web 浏览器并输入服务器的 IP 地址或主机名。
1 | http://<Server-IP-Address-or-Hostname> |
- 用户名:
root
- 密码:从
/etc/gitlab/initial_root_password
获取密码
密码:
gitlab 192.168.0.126:80
root / xiaobai_123!@#
修改gitlab默认端口为8088:
第一步:修改/etc/gitlab/gitlab.rb文件,如果有如下参数直接修改,如果没有就新增
nginx[‘listen_port’] = 8088
第二步:修改默认的gitlab nginx的web服务80端 /var/opt/gitlab/nginx/conf/gitlab-http.conf
server { ## HTTPS server
listen *:8088;
第三步:初始化并重启组件:
gitlab-ctl reconfigure
gitlab-ctl restart
第四步:浏览器访问http://ip:8088
mysql 安装
参考:
https://segmentfault.com/a/1190000039203507
安装命令:
sudo apt install mysql-server
不需要做的事情:
- 启动
- 设置开机启动
因为,这两件事情已经通过apt自动完成了
MySQL服务管理
1
2
3
4 sudo service mysql status # 查看服务状态
sudo service mysql start # 启动服务
sudo service mysql stop # 停止服务
sudo service mysql restart # 重启服务
查看mysql状态
输入service mysql status
就可以看到mysql正在运行中了,差不多要占350MB的内存
1 | bot@ubuntu:~/Desktop/python/django/2$ service mysql status |
权限设置
直接进入mysql
命令:sudo mysql
重置root账户密码
1 | ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; |
刷新权限
FLUSH PRIVILEGES;
远程root 用户
如果需要远程登陆:
- 创建一个
host
字段为%
的 root 用户(创建用户的同时设置密码) - 授权所有数据库的访问权限
- 刷新权限列表
新建一个 host 为 % 的 root用户,密码随意
1 | create user 'root'@'%' identified by 'yourpassword'; |
授权
1 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; |
刷新权限
1 | FLUSH PRIVILEGES; |
远程连接
光设置需要登陆用户的 host 为 % 是不够的,因为 mysql 的配置文件中静止了远程登录,需要去修改一下配置文件。
👇👇👇
如果你遇到了这个问题,并不需要修改防火墙等等,只需按我如下的操作即可
先关停mysql服务
1 | sudo systemctl stop mysql |
编辑mysql配置文件
1 | sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf |
注销掉
1 | #bind-address = 127.0.0.1 |
在开启mysql服务即可sudo service mysql start
1 | bot@ubuntu:~$ sudo service mysql start |
安装redis
执行以下命令
1 | sudo apt update |
一旦安装完成服务器将自动启动,查看服务状态,输入以下命令
1 | sudo systemctl status redis-server |
注意:
如果你的服务器上禁用ipv6,那么redis服务将启动失败
配置密码
vi编辑器打开redis.conf
1 | [root@localhost /]# vi /etc/redis/redis.conf |
找到# requirepass foobared这一行,将注释符号#去掉,将后面修改成自己的密码,例如,设置密码为123abc
1 | requirepass juihui@redis |
wq保存退出,重启服务器即可
配置远程访问
如下步骤
1.通过sudo打开配置文件
1 | sudo vim /etc/redis/redis.conf |
2.将 bind 127.0.0.1 ::1 注释掉
1 | #bind 127.0.0.1 ::1 |
1
3.将 protected-mode 改成 no
1 | protected-mode no |
输入/requirepass 找到requirepass关键字,后面跟的就是密码,默认是注释掉的,即不需要密码
注释打开,后面修改为自己的密码
1 | # The requirepass is not compatable with aclfile option and the ACL LOAD |
4.保存配置文件
5.重启Redis服务器 使其生效
1 | sudo systemctl restart redis-server |
1
6.验证redis服务器正在监听6379端口
1 | ss -an | grep 6379 |
能看到如下信息
1 | tcp LISTEN 0 511 0.0.0.0:6379 0.0.0.0:* |
我自己配置到这里就已经可以了 下面是补充:
下一步,你将需要配置你的防火墙,允许网络流量通过 TCP 端口6379。
通常你想要允许从一个指定 IP 地址或者一个指定 IP 范围来访问 Redis 服务器。例如,想要允许从192.168.121.0/24的连接,运行下面的命令:
1 | sudo ufw allow proto tcp from IP地址/24 to any port 6379 |
进行远程连接测试
测试
1 | redis-cli -h 10.211.55.7 ping |
成功会得到:
1 | PONG |
连接
1 | redis-cli -h 地址 |
例如:
1 | redis-cli -h 192.168.1.1 |
安装nginx
安装命令
1 | sudo apt install nginx |
Ubuntu 设置Nginx开机自启
1 | systemctl disable nginx.service 关闭开机自启 |
安装java
前提条件
在你打算安装 Java 17(OpenJDK 17) 的 Ubuntu 桌面或服务器上,我们不需要任何特殊配置。我们只需要系统管理员权限(也称为 sudo 权限)以及一个正常的网络连接。所以,如果你都有,只需打开 Ubuntu 的命令终端,按照以下步骤操作:
步骤 1:更新 Ubuntu 软件包列表
在安装新软件包之前,有必要对 Linux 系统进行更新。这将确保系统拥有已安装软件包的最新版本,并刷新 APT 索引缓存,使其能够下载和安装最新的应用程序。
1 | sudo apt update |
步骤 2:在 Ubuntu 22.04 或 20.04 上安装 OpenJDK 17
与 Oracle 的 Java 不同,OpenJDK 完全由开源社区维护,因此可以直接通过 Ubuntu Linux 官方软件仓库获得。这意味着我们无需添加任何额外的内容到系统中。只需在终端中使用给定的命令,OpenJDK 17 版本将被安装在你的 Ubuntu 系统上。
1 | sudo apt install openjdk-17-jdk |
当系统要求输入密码时,请输入密码。然后键入 ‘Y‘ 并按 ‘Enter‘ 继续安装。
步骤 3:确认 OpenJDK 已安装
虽然通过上面的命令,OpenJDK 17 已经安装在我们的系统上,但仍有人想要确认一下。你可以使用以下命令查看 Ubuntu 上当前安装的 Java 版本。
1 | java -version |
你应该看到类似以下的输出:
1 | openjdk version "17.0.7" 2023-04-18 |
步骤 4:设置默认 Java 版本(可选)
如果你的系统上已经安装了多个 OpenJDK 版本,你可以使用 update-alternatives 命令将某个特定版本的 JAVA 设置为全局默认版本,适用于所有应用程序。该命令帮助用户管理多个 Java 安装。
要配置默认的 Java 版本,请使用以下命令:
1 | sudo update-alternatives --config java |
上述命令将显示所有已安装的 Java 版本列表。输入对应于 OpenJDK 条目的编号,即可将其设置为默认版本,然后按 ‘Enter‘。
步骤 5:设置 JAVA_HOME 环境变量(可选)
与前面的步骤一样,这一步也不是必须的,但某些应用程序或工具,特别是开发人员使用的工具,可能需要设置 JAVA_HOME 环境变量。要将 JAVA_HOME 变量设置为 OpenJDK 17,请按照以下步骤进行:
找到 OpenJDK 17 的安装路径。你可以使用 update-alternatives 命令来查找:
1 | sudo update-alternatives --list java |
复制对应于 OpenJDK 17 的路径。
使用 Nano 或其他你喜欢的文本编辑器打开 .bashrc 文件:
1 | nano ~/.bashrc |
在文件末尾添加以下行,但不要忘记将 /path/to/your/openjdk-17 替换为实际的路径。
1 | export JAVA_HOME=/path/to/your/openjdk-17 |
保存 文件并退出文本编辑器(在 Nano 编辑器中按 Ctrl + X,然后输入 Y,最后按 Enter)。
要应用更改,可以关闭终端并重新打开,或者使用给定的命令。
1 | source ~/.bashrc |
Ubuntu-切换JDK版本
参考 -> https://blog.csdn.net/qq_34561745/article/details/130763686
因为不同场景需要的JDK版本不同,所以可以采用这种方法切换不同的JDK版本。
首先查看JDK版本:
1| java -version
如:
*一、安装jdk*
我要切换成另外一个版本。如果没有但是有需要的话,可以先安装另外一个版本,可以直接采用命令行进行安装:
1 | sudo apt install openjdk-8-jdk |
默认路径会安装在/usr/lib/jvm/java-8-openjdk-amd64中.
配置环境变量:
1| sudo vim ~/.bashrc
在最后一行添加
1| ##这个添加的就是路径,一定要和自己jdk安装的路径是一致的
2| export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
然后读取一下新的~/.bashrc
1| source ~/.bashrc
查看版本信息,并检测是否安装成功:
1| java -version
你会发现还是原来的版本,因为还没有切换。
*二、切换JDK版本*
采用update-alternatives命令进行版本切换
1| #这两个都是路径, /usr/lib/jvm/java-8-openjdk-amd64/bin/java,一定要和自己的路径吻合
2| sudo update-alternatives –install /usr/bin/java java /usr/lib/jvm/java-8-openjdk-amd64/bin/java 1070
如果不太清楚安装在哪里的话,可以打开/usr/lib/jvm文件夹下看一看。设置完成后
1| sudo update-alternatives –config java
输入编号2,回车。再查看java版本
切换成功!
项目部署
部署 常用命令
通过ssh命令 在项目地址下传输文件的命令
在对应的文件下的地址栏目输入cmd
1 | # 将后端jar包传到服务器输入如下代码 |
后端部署
首先将springBoot的项目进行打包 -> 参考网络教程
将jar包的License文件进行替换操作
2.3 找到jar包文件夹
1 | # 将打包的 forward-admin.jar 远程传送到linux服务器的”/usr/local/project/forward/server/“ 目录下 |
2.4 在服务器启动jar包
2.4.1 进入到jar包保存的目录
1 | #进入到jar包目录 |
2.4.2 启动java的jar程序
(1)直接启动,控制台退出则关掉应用
java -jar forward-admin.jar
(2)后台启动,控制台退出不会关掉应用
1 | #打包命令 |
(3)后台启动并且输出日志,控制台退出不会关掉应用
nohup java -jar forward-admin.jar >> ./register.log 2>&1 &
(3)后台启动(加内存)并且输出日志,控制台退出不会关掉应用
nohup java -jar -Xms1024m -Xmx2048m forward-admin.jar>> ./register.log 2>&1 &
2.4.3 关闭java程序
(1)查询java应用程序
1 | ps -ef|grep java |
(2)强制杀掉进程
1 | kill -9 xxx |
前端部署
将前端的vue项目进行打包 ->参考网路
打包命令: npm run build:test
将dist文件上传到服务器
1 | # 将打包的 dist 远程传送到linux服务器的”/usr/local/project/forward/web/“ 目录下 |
设置nginx的配置 的Server下 插入如下代码
server的配置代码
1 | server { |
将上面的代码保存到 -> nginx下的cnfig下的nginx.conf,保存到server同级下,设置如下图所示,
重启nginx
重启一下nginx -s reload 即可
图片地址问题:
图片问题一般需要再后端的 ( 对图片等数据订单一个配置 )修改后打包。
ssh扩展
从服务器下载东西到本地windos
1 | scp -r -P 9000 root@192.168.0.119:~/storage/pictures/1.jpg D:/ |
在本地windos上传东西到服务器
1 | scp -r dist root@192.168.0.133:/usr/local/project/forward/web/ |
常见问题
1、前端遇到问题如下:
解决方案:
方法一:指定配置目录
1 | sudo /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf |
方法二:在logs下新建一个nginx.pid文件
1.进入nginx的logs目录查看文件,发现没有nginx.pid文件
2.创建一个nginx.pid文件
3.编辑nginx.pid文件,文件内容为1473,保存退出
4.在sbin目录下启动nginx并测试关闭
成功解决问题
需要打包为test文件, npm run build:test
打包其他的环境,需要改变Server配置。
3.4在地址栏进行地址访问 比如当前项目
后端 192.168.0.133:8081
前端 192.168.0.133:8082
遇到问题 nginx: [alert] kill(17451, 1) failed (3: No such process)
解决方案
进入sbin文件执行命令 ./nginx -c /usr/local/nginx/conf/nginx.conf
然后再次执行命令 ./nginx -s reload
请求不到后台的接口
后端遇到:
常见问题:
org.springframework.context.ApplicationContextException: Failed to start bean ‘webServerStartStop’; nested exception is org.springframework.boot.web.server.WebServerException: Unable to start embedded Tomcat server
重启服务器
常用操作
固定 IP地址
访问配置文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens33
进行配置
1 | BOOTPROTO="static" |
进行重启服务器
1 | reboot |