文章目录

  • 设置IP地址和设置IP地址为静态
    • 更改IP和设置IP为静态的方法
  • 其他一些知识点
    • ps命令一点小知识
    • CentOS7可视化页面下设置为中文
    • MySQL部分
      • MySQL错误代码1130
      • linux和linux上的mysql
        • 防火墙的一些操作
    • linux和mysql
      • linux的MySQL启动
  • 项目的手动部署和自动部署
    • 手动部署
    • 自动部署
      • linux安装Git和Maven
        • 安装Git
        • 安装Maven
        • 编写shell脚本
        • 用户授权和运行shell脚本
    • 知道文件名,查看文件所在位置

设置IP地址和设置IP地址为静态

用VM的linux的时候,一定首先要把自己的IP改为静态的,不然下次恢复快照或者重启什么的,可能会导致IP地址变化

更改IP和设置IP为静态的方法

步骤:

  1. 进入这个文件
    /etc/sysconfig/network-scripts/ifcfg-ens33
    命令即
    vim /etc/sysconfig/network-scripts/ifcfg-ens33
  2. 设置IP为静态
    把这个后面的值改为static,表示设置IP为静态
  3. 更改IP
    然后在文件最后面加上四行这个(如果没有的话,如果有则按照下面注释中的提示进行修改值即可)
IPADDR=192.168.78.182//这是自己要改成的IP地址,值是自己要设置的IP地址
GATEWAY=192.168.78.2//网关,值为自己IP地址前三位再加上.2
DNS1=192.168.78.2//DNS,值同上面网关
NETMASK=255.255.255.0//子网掩码,一样就行

注意一点:
在VM左上角菜单里点击编辑,点击里面的虚拟网络编辑器

如果这里的值跟我们设置的ip地址的前三位不一样,则需要在这里修改一下

然后,如下图

这个DHCP服务是一种自动分配ip地址的服务,勾选上的话,每次重启虚拟机或者VM可能会导致分配不同的ip地址,导致下面的子网IP也跟着变化,导致这里的子网IP前三位跟我们设置的IP地址的前三位不同,导致网络出错

  1. 然后调用这个命令重启一下网络就行(这个命令在任何目录下都可调用)
    service network restart

如果还是连不上网,可以修改这里:然后service network restart重启

然后通过ifconfig命令,可以看到自己的ip地址已经变为设置的IP

其他一些知识点

还有一点,在修改了文件后,可以通过sync命令来使文件更新到磁盘里,不然可能在非正常关机的情况下导致文件未真正的修改成功

linux下tomcat的webapps下,不要放过多无关的文件,不然会导致访问页面很慢

ps命令一点小知识

学习网址:菜鸟教程中的linux下的ps教程

  1. ps -A
    列出所有的进程

  2. ps -a
    显示所有终端机下执行的程序,除了阶段作业领导者之外

  3. 可以通过kill -9 PID来杀死对应的进程,这个是强制性的,或者可以通过kill -15 PID,可以温和的杀死进程,若这个无法杀死,建议还是用kill -9 PID

CentOS7可视化页面下设置为中文




MySQL部分

MySQL错误代码1130

当尝试通过ip进行远程连接MySQL,若之前并未修改mysql自带的名为mysql的数据库,开启MySQL
并未给远程连接的用户权限问题。
这样子操作mysql库,即可解决。

在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称’%'即可
mysql -u root -p
mysql;use mysql;
mysql;select ‘host’ from user where user=‘root’;
mysql;update user set host = ‘%’ where user =‘root’;
mysql;flush privileges;
mysql;select ‘host’ from user where user=‘root’;

第一句:以权限用户root登录
第二句:选择mysql库
第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称)
第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址
第五句:刷新MySQL的系统权限相关表
第六句:再重新查看user表时,查看是否修改成功

linux和linux上的mysql

写给我自己的
在阿里云服务器上,把redis解压在了opt下
把redis的命令和使用的配置文件放在了/usr/local/bin下
把tomcat8的压缩包放在了home下,解压在了/usr/local下

在官网上下载资源的选择:

配置环境变量在/etc/profile里面进行配置
使用resource /etc/profile让环境变量立即生效

防火墙的一些操作

linux和mysql

linux的rpm就类似于windows中的执行exe的程序命令一样
rpm是红帽特有的,rpm对应红帽软件包管理器的首字母(Red-Hat Package Manager)
rpm在linux中就是用于安装软件包,跟yum不同,rpm是必须先有程序包才能安装
rpm -qa:用于查看当前系统所安装的所有软件
然后可以通过管道符来查找是否安装了某个指定的软件

管道符简介: 就这么一个符号:|
管道符主要用于多重命令处理,前面命令的打印结果作为后面命令的输入。简单点说就是,就像工厂的流水线一样,进行完一道工序后,继续传送给下一道工序处理…
比如查看是否某个程序是否存在进程(是否运行),或者查看某个软件是否安装

通过管道符来查找是否安装了某个指定的软件
如查看是否安装了mysql:rpm -qa|grep mysql

通过rpm安装mysql
首先准备对应的mysql必备的rpm包
进入mysql下载界面:此时出现的是8以上的版本,点击红色圈住的部分,进入5.7的版本

如下,在两个下拉框中选择linux对应的版本,如果是CentOS7的话跟我下面选择的保持一致即可,CentOS7就是Linux7
其他的根据下拉框中内容选择对应的版本即可

然后我们可以看到下面好多中关于MySQL的供我们下载
最引人注目的应该就是第一个:

这个里面包含了所有MySQL所必须的文件,并且还多了一些拓展的内容:

但是其实,MySQL并不需要这么多的内容,我选择了最小化安装,则只需要这六个即可:

这六个在下面的下载目录中都可以找到,我是一个一个下载下来的。。。。。
注意,下载的时候点击这里:表示不注册或者不登录,直接下载

如果要下载第一个RPM Bundle也可以,随后将其放在linux下,然后通过命令tar -zxvf 下载的Bundle包名进行解压,然后会得到很多个rpm文件,其中就包含下面的几个,然后再按照下面的执行即可

当这些软件包都有了,然后先判断当前linux是否有和MySQL冲突的软件
首先,rpm -qa|grep mysql查看是否已经安装MySQL,然后再rpm -qa|grep mariadb查看是否有红帽自带的数据库管理软件mariadb,这个与MySQL冲突。
如果以上有哪个,则在安装之前,需要进行卸载:rpm -e --nodeps 软件名称

然后,则可执行接下来的安装
先把他们都放在都一个目录下,比如在/usr/local/下建一个mysql文件夹,把他们全放进去,然后按照如下顺序依次安装除了server的程序包,rpm安装命令:rpm -ivh rpm版的程序包

为什么要按照顺序?因为上面的一些包的安装可以需要依赖其他包的存在,所以先把被依赖的包安装上,再安装需要依赖其他包的包
最后再安装server。也是命令:rpm -ivh server包的名称跟上面的一样
但是,这一个命令执行的时候,基本都会给你出点问题,对应的相关解决方式如下:

在通过rpm安装软件包的时候,经常会遇见一个报错error: Failed dependencies:
说我们没有对应的依赖
就比如当我们按照对应的顺序安装mysql的时候,到最后安装server的时候,如果没有安装一个叫net-tools的网络工具,则就会报这样一个错,说需要net-tools,所以我们可以通过yum install net-tools命令来安装这个工具包

如果出现如下错误:则说明缺少libaio,则执行yum install libaio安装一下libaio

如果server还安装不上的,可以尝试安装个perl-Module-Install.noarch
命令:yum install -y perl-Module-Install.noarch

如果又报了其他的错,可以尝试在安装service的命令最后加一个 --forece --nodeps

命令yun update可以升级现有系统的软件和系统内核

linux的MySQL启动

可通过systemctl start/stop mysqld来 启动/停止 MySQL服务
设置MySQL开机启动可使用命令:systemctl enable mysqld
如果前面有安装了小插件net-tools,便可使用netstat命令。如未安装,则可yum install net-tools来进行安装
如查看已经启动的服务:netstat -tunlp。如果服务过多,可通过管道符来进行过滤:netstat -tunlp | grep mysqld。这里使用的是模糊查询,使用netstat -tunlp | grep mysql也能查到
或者通过PS命令查看进程是否启动。ps -ef|grep mysqld。进程比较多,可以使用管道符进行过滤

第一次登录
一开始MySQL会给我们自动生成一个密码,第一次登录我们没有密码,我们得去找一下这个自动生成的密码

MySQL启动后会生成对应的日志,我这里通过rpm默认安装的mySQL,所以日志位置就在默认的/var/log/下,然后通过管道符找出包含password单词的那一行日志,即可找到生成的密码

然后登录即可

然后修改密码:
如果想修改简单的密码,需要设置密码设置的校验规则,不然一般情况下,MySQL不让密码设置的太简单

设置密码结束后,如果需要远程连接这个数据库,则需要开启远程访问权限,如上图
这里需要注意的是,grant all on *.* to 'root'@' %' identified by 'root';这个命令,需要把最后单引号里面的root改成自己设置的密码。
然后通过flush privileges;刷新权限。
然后exit;退出MySQL,再systemctl stop mysqld停止mysql服务,然后再systemctl start mysqld启动mysql服务。即重启服务。
然后记得给linux打开防火墙的3306端口,然后即可远程访问。

linux上一个用于文件上传的小工具
传输文件,我们可以直接在linux上安装一个小工具,如下

然后通过rz命令即可弹出文件上传的窗口,进行文件上传

Windows
使用netstat -ano命令即可查看所有占用端口的进程

1、nohup
后台运行Java程序,并将日志输出到指定的文件

项目的手动部署和自动部署

手动部署

在windows上,通过maven,将程序打包成jar,然后传到linux,然后通过java命令执行发布
我的从windows上传的jar包放在了/usr/local/app/下
执行jar包的命令:java -jar jar包名
通过nohub可以使其在后台执行

自动部署

编写shell脚本来通过Git自动拉取项目,并通过maven自动打包项目,并自动执行程序

linux安装Git和Maven

安装Git

首先通过yum查看是和自己当前Linux版本的Git安装包。命令:yum list git
安装命令: yum install git
通过git,拉取克隆项目
我的是克隆在了 /usr/local/下
先进入要存放的目录,然后使用git命令:git clone 仓库地址

安装Maven

先下载Maven的linux版本
先进入官网:https://maven.apache.org/download.cgi,然后选择如下的,进行下载即可

下载好后,将其上传至linux中,我的放在了/usr/local/下
然后通过命令tar -zxvf maven包名进行解压
然后要想使用起来舒服,则配置maven
首先是环境变量:
命令:vim /etc/profile
进入配置文件,进行修改,在最后面加入如下内容

export MAVEN_HOME=自己maven解压后的名字的路径/自己maven解压后的名字
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH

然后执行source /etc/profile命令,使配置文件生效
然后使用命令mvn -version,查看是否能出现版本信息,若出现,则表示成功

配置Maven的setting文件
经典步骤,设置阿里镜像和maven仓库位置:
我的setting文件内容:(篇幅有限,把多余的注释全给删了)

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>/usr/local/repo</localRepository> <!-- 指定Maven仓库 --><pluginGroups></pluginGroups><proxies></proxies><servers></servers><mirrors><!-- 阿里镜像 --><mirror><id>nexus-aliyun</id><mirrorOf>central</mirrorOf><name>Nexus aliyun</name><url>http://maven.aliyun.com/nexus/content/groups/public</url></mirror></mirrors><profiles></profiles>
</settings>

编写shell脚本

编写shell脚本,创建 文件名.sh文件,然后里面编写shell命令
我不会,就直接找了个模板改了改
其实就是linux命令的集合,都还是能看懂的
我这个sh文件在保存的时候可能保存失败,若保存失败,则把里面的中文去掉或者换成英文即可
内容如下:

#!/bin/sh
echo =================================  # echo等同于Java中的打印日志
echo  自动化部署脚本启动
echo =================================echo 停止原来运行中的工程
APP_NAME=boot_ssmp  #自己项目的名字,叫啥不重要,只需要能通过这个字符串查找到自己项目的进程即可# 根据上面的名字查找进程,若存在,则先停止
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; thenecho 'Stop Process...'kill -15 $tpid  #较温和的杀死进程的命令 即kill -15
fi
sleep 2  #等待两秒
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
# 若进程依旧存在,则通过强硬的命令杀死进程,即kill -9
if [ ${tpid} ]; thenecho 'Kill Process!'kill -9 $tpid
elseecho 'Stop Success!'
fi# 首先进入之前从git克隆下的仓库中,然后执行git命令,进行pull更新项目
echo 准备从Git仓库拉取最新代码
cd /usr/local/boot_ssmpecho 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成# 执行maven的打包命令
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`# 进入taret目录
cd target# 启动项目
echo 启动项目
nohup java -jar boot_ssmp-0.0.1-SNAPSHOT.jar &> boot_ssmp.log &
echo 项目启动完成

用户授权和运行shell脚本

在运行这个文件之前,我们需要先查看自己当前用户是否有执行这个文件的权限,若没有则需要先授权
通过查看当前目录文件的另一个命令:ll可以查看所有用户所拥有的对这个文件的权限。如果要查看所有文件(包括隐藏文件),则通过加参数-a来实现

如图,使用ll命令后,文件最前面会出现一串字符,总共有10个,第一个表示当前文件的类型,d表示文件夹,-表示是文件1,还有其他表示软链接,硬链接什么什么的,这里不用关注太多
主要是后面9个,后面9个按照三个三个一组,如下图中所述

可以看到,当前我们用户对这个sh文件是只读模式
然后通过chmod进行修改权限
如下图,使用数字几其实很好记,可以把---这三个一组的当成一个二进制格式
--r表示二进制的001,即十进制的1,然后进一,即变成-w-,表示二进制的010,即十进制的2
如此即可

非常简单,这里我只想给当前用户给予rwx权限,则等同于二进制的111即十进制的7
所以直接chmod 700 bootStart.sh即可
然后当前用户就有权限了
然后执行我们的sh文件
直接命令文件所在目录/文件.sh即可,若在当前目录,可以./文件,sh执行。
然后项目便能自己部署执行

知道文件名,查看文件所在位置

若想看日志输出
则我们通过命令find / -name boot_ssmp.log查看我们输出的日志文件的位置,然后查看即可

在linux上部署一个web项目的小经验相关推荐

  1. jq写的项目如何部署到静态服务器_如何在阿里云服务器上部署一个Web项目

    准备工作: 1:你得有云服务器! 2:你的云服务器上的tomcat必须正常运行! 如何在云服务器上发布一个Web项目? 1:需要制作好一个Web项目: 2:在本地电脑上tomcat上部署后运行正常: ...

  2. 本篇文档介绍如何手动在ECS实例上部署Java web项目

    本篇文档介绍如何手动在ECS实例上部署Java web项目.适用于刚开始使用阿里云进行建站的个人用户. 项目配置 { .section} 本篇教程在示例步骤中使用了以下版本的软件.操作时,请您以实际软 ...

  3. aws部署php程序,实验1:在AWS上部署一个Web Application应用实践

    Deploying a Web Applicaiton on AWS 实验目标 通过多个AWS的服务去部署一个web application web application是基于PHP 部署在 EC2 ...

  4. 如何在Linux上部署一个简单的Django项目

    参考文章:https://blog.csdn.net/a249900679/article/details/51527200 1.首先,在根目录底下建一个目录,存放python3.6.3版本,linu ...

  5. 在Linux系统上部署java web项目

    将Spring boot项目打成jar包后放在服务器进行运行: 部署命令: nohup java -jar mybatis-0.0.1-SNAPSHOT.jar >output 2>&am ...

  6. 在华为云服务器上部署的web项目,外网不能访问处理方法

    解决方法: 在服务器ping外网可以ping通 外网ping服务器无法ping通,可以判断是网络问题. 在华为云服务器的安全组添加出入站,点默认的default安全组进入编辑页面 分别在入方向规则和出 ...

  7. 在Linux上部署的项目(iwebshop) 不能打开界面

    问题描述:在Linux上部署的php项目(iwebshop)不能打开ui界面,只显示如下: errID:2 errStr:mysql_connect(): Headers and client lib ...

  8. 在Linux上部署第一个web项目

    如何在Linux上部署第一个web项目(未更新完) 一.向服务器中的数据库添加数据(本篇以Mysql为例) 1.通过SQLyog将项目的数据库中的所有数据表导出为sql文件 2.为服务器上的数据库授权 ...

  9. 从零开始学习Linux部署Java web项目

    前言 最近越来越发现需要学习的东西太多了,前几天公司服务器出现问题,需要对服务器硬件进行维护,当然服务器上的服务需要部署到另一个服务器上.这对于我来说是很陌生的,虽然这件工作没有让我去做,但是还是很好 ...

最新文章

  1. python画饼图-python使用Matplotlib画饼图
  2. boost::container实现显式实例化平面集测试程序
  3. laravel中的自定义函数的加载和第三方扩展库加载
  4. 牛客小白月赛11 Rinne Loves Xor
  5. MUI 列表组件:文字居左中右(排版) - 代码篇
  6. hexo -d 部署的时候报错 FATAL Something's wrong Template render error: expected variable
  7. 请写一个java程序实现线程连接池功能_请写一个java程序实现线程连接池功能
  8. Git教程——入门基础
  9. 仿复制粘贴功能,长按弹出tips的实现
  10. [No000014B]Office-PPT设置默认打开视图
  11. 苹果 iPhone 13 内置原生壁纸下载
  12. Django自学笔记之admin中设置App名称为中文
  13. 几何视角下的线性代数(3)---基与特征
  14. table表格标签css固定最后一列方案
  15. 蜂巢的艺术与技术价值 - PostgreSQL PostGIS's hex-grid
  16. 如何制作运营高质量的竞价单页
  17. 地铁车辆主传动系统实时仿真测试平台ETest研究
  18. freeRTOS — 软件定时器的使用
  19. 【openVINO+paddle】CPU部署新冠肺炎CT图像分类识别与病害分割
  20. 【效能工具】记录常用效能工具

热门文章

  1. 怎样才能做好PPT,驼峰设计给大学生的10条建议
  2. unbound prefix
  3. 瑞达利欧的《原则》读后感作文2400字
  4. 大数据和深度学习之间,主要是什么关系?
  5. 关于Go语言..\main.go:4:2: cannot refer to unexported name fmt.println .\main.go:4:2: undefined: fmt.prin
  6. 你要去相信,没有到不了的明天。
  7. Heroku部署vue项目失败:sh: 1: vue-cli-service: not found
  8. Android应用加固原理
  9. 干货 | 携程APP Native/RN内嵌Flutter UI混合开发实践和探索
  10. redis基础和使用篇(一)--简介