美文网首页
服务器发布操作

服务器发布操作

作者: s1991721 | 来源:发表于2019-06-14 19:17 被阅读0次

CentOS 目录结构

节选自 https://blog.csdn.net/qq_33858250/article/details/81839619

CentOS的目录大体上可分为四类:管理类、用户类、应用程序类、信息类文件目录。

管理类

  • /boot
    linux的内核及引导系统程序所需要的文件目录
  • /bin
    存放标准 linux 的工具
  • /sbin
    大多是涉及系统管理的命令的存放,是超级权限用户root的可执行命令存放地,普通用户无权限执行这个目录下的命令
  • /var
    这个目录的内容是经常变动的,用来存储经常被修改的文件,如日志、数据文件、邮箱等
  • /etc
    主要存放系统配置方面的文件
  • /dev
    主要存放与设备有关的文件
  • /mnt
    这个目录一般是用于存放挂载储存设备的挂载目录的,比如有cdrom 等目录。可以参看/etc/fstab的定义

用户类

  • /root
    系统管理员目录
  • /home
    主要存放个人数据

应用程序类

  • /lib
    该目录用来存放系统动态链接库,几乎所有的应用程序都会用到该目录下的共享库
  • /tmp
    临时目录,有些linux会定期清理
  • /usr
    存放一些不适合放在/bin 或 /etc 目录下的额外工具,如个人安装的程序或工具
  • /usr/local
    主要存放那些手动安装的软件,
  • /usr/bin
    用于存放程序
  • /usr/share
    用于存放一些共享数据
  • /usr/lib
    存放一些不能直接运行,但却是许多程序运行所必需的一些函数库文件
  • /opt
    主要存放可选程序,直接删除程序不影响系统其设置。安装到/opt目录下的程序,它所有的数据、库文件等等都是放在同个目录下面

信息类

  • /lost+found
    在ext2或ext3文件系统中,当系统意外崩溃或机器意外关机,而产生一些文件碎片放在这里。但当突然停电、或者非正常关机后,有些文件就临时存放在这里。
  • /proc
    操作系统运行时,进程信息及内核信息(比如cpu、硬盘分区、内存信息等)存放在这里

Java环境

安装JDK

官网 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

在官网下载需要的jdk版本

这样获取的下载地址有验证信息,才能够正确下载

cd /usr/local/

创建下载目录

mkdir download

开始下载

mv jdk-8u211-linux-x64.tar.gz\?AuthParam\=1560506772_1dbba8573bc6a8588bd51d95349718d4 jdk-8u211-linux-x64.tar.gz

重命名文件

tar -zxvf jdk-8u211-linux-x64.tar.gz -C /usr/local/

解压到

环境变量

vi /etc/profile

末尾添加

export JAVA_HOME=/usr/local/jdk1.8.0_211
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

保存退出

source /etc/profile 使生效

验证

发布

单模块打包

在项目目录下执行

mvn clean package -Dmaven.test.skip=true

-Dmaven.test.skip=true 跳过单元测试

打包成功后会在项目根路径下生成target目录,依据pom文件设置的项目名<finalName>sell</finalName>生成jar包

服务器创建项目路径

mkdir /opt/javaapps/

将项目jar文件复制到服务器

scp sell.jar root@10.2.26.161:/opt/javaapps/

多模块打包

根项目下pom文件不要<build>标签

顶层模块pom文件配置

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**.*</include>
                    <include>**/*.*</include><!-- i18n能读取到 -->
                    <include>**/*/*.*</include>
                </includes>
            </resource>
        </resources>

        <!-- 为jar包取名 -->
        <finalName>web</finalName>
        <plugins>
            <!-- 热布署 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <!--fork :  如果没有该项配置,这个devtools不会起作用,即应用不会restart -->
                    <fork>true</fork>
                    <mainClass>com.tianyi.ejiantong.EjiantongApplication</mainClass>
                    <layout>ZIP</layout>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal><!--可以把依赖的包都打包到生成的Jar包中-->
                        </goals>
                        <!--可以生成不含依赖包的不可执行Jar包-->
                        <!-- configuration>
                          <classifier>exec</classifier>
                        </configuration> -->
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

底层被依赖模块pom文件不要<build>标签

在根目录下先clean删除target目录,再package生成target

分析:打包时会根据依赖关系逐层查找,所以需要在顶层模块配置build。而根目录下只是声明,所以不配。

防火墙

firewall-cmd --zone=public --add-port=8080/tcp --permanent

--zone=public:表示作用域为公共的;

--add-port=8080/tcp:添加tcp协议的端口8080;

--permanent:永久生效,如果没有此参数,则只能维持当前服务生命周期内,重新启动后失效;

firewall-cmd --reload 重新加载配置
systemctl restart firewalld.service 重启防火墙

80端口默认未开放

启动项目

nohup java -jar -Dserver.port=80 -Dspring.profiles.active=prod sell.jar > /dev/null 2>&1 &

-Dserver.port=80 开启的端口
-Dspring.profiles.active=prod 启动所使用的配置
nohup XXX > /dev/null 2>&1 & 让进程在后台运行

相关文章

网友评论

      本文标题:服务器发布操作

      本文链接:https://www.haomeiwen.com/subject/snupfctx.html